/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is the Mozilla browser. * * The Initial Developer of the Original Code is Netscape * Communications, Inc. Portions created by Netscape are * Copyright (C) 1999, Mozilla. All Rights Reserved. * * Contributor(s): * Travis Bogard */ #include "nsISupports.idl" /** * The nsIXULWindow */ interface nsIDocShell; interface nsIDocShellTreeItem; [scriptable, uuid(D9CB00E0-CA39-11d3-B029-00A024FFC08C)] interface nsIXULWindow : nsISupports { /** The docshell owning the XUL for this window. */ readonly attribute nsIDocShell docShell; /** Indicates if this window is instrinsically sized. */ attribute boolean intrinsicallySized; /** This returns the primary content shell. Note that this is a docshell tree item and therefore can not be assured of what object it is. It could be an editor, a docshell, or a browser object. Or down the road any other object that supports being a DocShellTreeItem Query accordingly to determine the capabilities. */ readonly attribute nsIDocShellTreeItem primaryContentShell; /** This returns the content shell specified by the supplied id. Note that this is a docshell tree item and therefore can not be assured of what object it is. It could be an editor, a docshell, or a browser object. Or down the road any other object that supports being a DocShellTreeItem Query accordingly to determine the capabilities. */ nsIDocShellTreeItem getContentShellById(in wstring ID); /** Tell this window that it has picked up or lost a child XUL window @param aChild the child window being added or removed */ void addChildWindow(in nsIXULWindow aChild); void removeChildWindow(in nsIXULWindow aChild); /** Move the window to a centered position. @param aRelative the window relative to which the window is moved. See screen parameter for details. if null, the window is centered relative to the main screen. @param aScreen PR_TRUE to center the window relative to the screen containing aRelative. PR_FALSE to center it relative to aRelative itself. @param aAlert PR_TRUE to move the window to an alert position, generally centered horizontally and 1/3 down from the top. */ void center(in nsIXULWindow aRelative, in boolean aScreen, in boolean aAlert); /** Shows the window as a modal window. That is, ensures that it is visible and runs a local event loop, exiting only once the window has been closed. */ void showModal(); const unsigned long lowestZ = 0; const unsigned long loweredZ = 4; /* "alwaysLowered" attribute */ const unsigned long normalZ = 5; const unsigned long raisedZ = 6; /* "alwaysRaised" attribute */ const unsigned long highestZ = 9; readonly attribute unsigned long zlevel; /** * contextFlags are from nsIWindowCreator2 */ attribute PRUint32 contextFlags; /** Create a new window. @param aChromeFlags: see nsIWebBrowserChrome @return the newly minted window */ nsIXULWindow createNewWindow(in PRInt32 aChromeFlags); };