gecko-dev/xpfe/appshell/public/nsIXULWindow.idl

107 lines
3.5 KiB
Plaintext

/* -*- 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 <travis@netscape.com>
*/
#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;
/**
Create a new window.
@param aChromeFlags: see nsIWebBrowserChrome
@return the newly minted window
*/
nsIXULWindow createNewWindow(in PRInt32 aChromeFlags);
};