Shell

Instances of this class represent the "windows" which the desktop or "window manager" is managing. Instances that do not have a parent (that is, they are built using the constructor, which takes a <code>Display</code> as the argument) are described as <em>top level</em> shells. Instances that do have a parent are described as <em>secondary</em> or <em>dialog</em> shells. <p> Instances are always displayed in one of the maximized, minimized or normal states: <ul> <li> When an instance is marked as <em>maximized</em>, the window manager will typically resize it to fill the entire visible area of the display, and the instance is usually put in a state where it can not be resized (even if it has style <code>RESIZE</code>) until it is no longer maximized. </li><li> When an instance is in the <em>normal</em> state (neither maximized or minimized), its appearance is controlled by the style constants which were specified when it was created and the restrictions of the window manager (see below). </li><li> When an instance has been marked as <em>minimized</em>, its contents (client area) will usually not be visible, and depending on the window manager, it may be "iconified" (that is, replaced on the desktop by a small simplified representation of itself), relocated to a distinguished area of the screen, or hidden. Combinations of these changes are also possible. </li> </ul> </p><p> The <em>modality</em> of an instance may be specified using style bits. The modality style bits are used to determine whether input is blocked for other shells on the display. The <code>PRIMARY_MODAL</code> style allows an instance to block input to its parent. The <code>APPLICATION_MODAL</code> style allows an instance to block input to every other shell in the display. The <code>SYSTEM_MODAL</code> style allows an instance to block input to all shells, including shells belonging to different applications. </p><p> Note: The styles supported by this class are treated as <em>HINT</em>s, since the window manager for the desktop on which the instance is visible has ultimate control over the appearance and behavior of decorations and modality. For example, some window managers only support resizable windows and will always assume the RESIZE style, even if it is not set. In addition, if a modality style is not supported, it is "upgraded" to a more restrictive modality style that is supported. For example, if <code>PRIMARY_MODAL</code> is not supported, it would be upgraded to <code>APPLICATION_MODAL</code>. A modality style may also be "downgraded" to a less restrictive style. For example, most operating systems no longer support <code>SYSTEM_MODAL</code> because it can freeze up the desktop, so this is typically downgraded to <code>APPLICATION_MODAL</code>. <dl> <dt><b>Styles:</b></dt> <dd>BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE, ON_TOP, TOOL</dd> <dd>APPLICATION_MODAL, MODELESS, PRIMARY_MODAL, SYSTEM_MODAL</dd> <dt><b>Events:</b></dt> <dd>Activate, Close, Deactivate, Deiconify, Iconify</dd> </dl> Class <code>SWT</code> provides two "convenience constants" for the most commonly required style combinations: <dl> <dt><code>SHELL_TRIM</code></dt> <dd> the result of combining the constants which are required to produce a typical application top level shell: (that is, <code>CLOSE | TITLE | MIN | MAX | RESIZE</code>) </dd> <dt><code>DIALOG_TRIM</code></dt> <dd> the result of combining the constants which are required to produce a typical application dialog shell: (that is, <code>TITLE | CLOSE | BORDER</code>) </dd> </dl> </p> <p> Note: Only one of the styles APPLICATION_MODAL, MODELESS, PRIMARY_MODAL and SYSTEM_MODAL may be specified. </p><p> IMPORTANT: This class is not intended to be subclassed. </p>

@see Decorations @see SWT @see <a href="http://www.eclipse.org/swt/snippets/#shell">Shell snippets</a> @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample</a> @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>

Constructors

this
this()

Constructs a new instance of this class. This is equivalent to calling <code>Shell((Display) null)</code>.

this
this(int style)

Constructs a new instance of this class given only the style value describing its behavior and appearance. This is equivalent to calling <code>Shell((Display) null, style)</code>. <p> The style value is either one of the style constants defined in class <code>SWT</code> which is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses. </p>

this
this(Display display)

Constructs a new instance of this class given only the display to create it on. It is created with style <code>SWT.SHELL_TRIM</code>. <p> Note: Currently, null can be passed in for the display argument. This has the effect of creating the shell on the currently active display if there is one. If there is no current display, the shell is created on a "default" display. <b>Passing in null as the display argument is not considered to be good coding style, and may not be supported in a future release of SWT.</b> </p>

this
this(Display display, int style)

Constructs a new instance of this class given the display to create it on and a style value describing its behavior and appearance. <p> The style value is either one of the style constants defined in class <code>SWT</code> which is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses. </p><p> Note: Currently, null can be passed in for the display argument. This has the effect of creating the shell on the currently active display if there is one. If there is no current display, the shell is created on a "default" display. <b>Passing in null as the display argument is not considered to be good coding style, and may not be supported in a future release of SWT.</b> </p>

this
this(Shell parent)

Constructs a new instance of this class given only its parent. It is created with style <code>SWT.DIALOG_TRIM</code>. <p> Note: Currently, null can be passed in for the parent. This has the effect of creating the shell on the currently active display if there is one. If there is no current display, the shell is created on a "default" display. <b>Passing in null as the parent is not considered to be good coding style, and may not be supported in a future release of SWT.</b> </p>

this
this(Shell parent, int style)

Constructs a new instance of this class given its parent and a style value describing its behavior and appearance. <p> The style value is either one of the style constants defined in class <code>SWT</code> which is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses. </p><p> Note: Currently, null can be passed in for the parent. This has the effect of creating the shell on the currently active display if there is one. If there is no current display, the shell is created on a "default" display. <b>Passing in null as the parent is not considered to be good coding style, and may not be supported in a future release of SWT.</b> </p>

Members

Functions

addShellListener
void addShellListener(ShellListener listener)

Adds the listener to the collection of listeners who will be notified when operations are performed on the receiver, by sending the listener one of the messages defined in the <code>ShellListener</code> interface.

close
void close()

Requests that the window manager close the receiver in the same way it would be closed when the user clicks on the "close box" or performs some other platform specific key or mouse combination that indicates the window should be removed.

forceActive
void forceActive()

If the receiver is visible, moves it to the top of the drawing order for the display on which it was created (so that all other shells on that display, which are not the receiver's children will be drawn behind it) and forces the window manager to make the shell active.

getAlpha
int getAlpha()

Returns the receiver's alpha value. The alpha value is between 0 (transparent) and 255 (opaque).

getFullScreen
bool getFullScreen()

Returns <code>true</code> if the receiver is currently in fullscreen state, and false otherwise. <p>

getImeInputMode
int getImeInputMode()

Returns the receiver's input method editor mode. This will be the result of bitwise OR'ing together one or more of the following constants defined in class <code>SWT</code>: <code>NONE</code>, <code>ROMAN</code>, <code>DBCS</code>, <code>PHONETIC</code>, <code>NATIVE</code>, <code>ALPHA</code>.

getMinimumSize
Point getMinimumSize()

Returns a point describing the minimum receiver's size. The x coordinate of the result is the minimum width of the receiver. The y coordinate of the result is the minimum height of the receiver.

getRegion
Region getRegion()

Returns the region that defines the shape of the shell, or null if the shell has the default shape.

getShells
Shell[] getShells()

Returns an array containing all shells which are descendants of the receiver. <p> @return the dialog shells

open
void open()

Moves the receiver to the top of the drawing order for the display on which it was created (so that all other shells on that display, which are not the receiver's children will be drawn behind it), marks it visible, sets the focus and asks the window manager to make the shell active.

removeShellListener
void removeShellListener(ShellListener listener)

Removes the listener from the collection of listeners who will be notified when operations are performed on the receiver.

setActive
void setActive()

If the receiver is visible, moves it to the top of the drawing order for the display on which it was created (so that all other shells on that display, which are not the receiver's children will be drawn behind it) and asks the window manager to make the shell active

setAlpha
void setAlpha(int alpha)

Sets the receiver's alpha value which must be between 0 (transparent) and 255 (opaque). <p> This operation requires the operating system's advanced widgets subsystem which may not be available on some platforms. </p> @param alpha the alpha value

setFullScreen
void setFullScreen(bool fullScreen)

Sets the full screen state of the receiver. If the argument is <code>true</code> causes the receiver to switch to the full screen state, and if the argument is <code>false</code> and the receiver was previously switched into full screen state, causes the receiver to switch back to either the maximmized or normal states. <p> Note: The result of intermixing calls to <code>setFullScreen(true)</code>, <code>setMaximized(true)</code> and <code>setMinimized(true)</code> will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible. </p>

setImeInputMode
void setImeInputMode(int mode)

Sets the input method editor mode to the argument which should be the result of bitwise OR'ing together one or more of the following constants defined in class <code>SWT</code>: <code>NONE</code>, <code>ROMAN</code>, <code>DBCS</code>, <code>PHONETIC</code>, <code>NATIVE</code>, <code>ALPHA</code>.

setMinimumSize
void setMinimumSize(Point size)

Sets the receiver's minimum size to the size specified by the argument. If the new minimum size is larger than the current size of the receiver, the receiver is resized to the new minimum size.

setMinimumSize
void setMinimumSize(int width, int height)

Sets the receiver's minimum size to the size specified by the arguments. If the new minimum size is larger than the current size of the receiver, the receiver is resized to the new minimum size.

setRegion
void setRegion(Region region)

Sets the shape of the shell to the region specified by the argument. When the argument is null, the default shape of the shell is restored. The shell must be created with the style SWT.NO_TRIM in order to specify a region.

Static functions

internal_new
Shell internal_new(Display display, GtkWidget* handle)

Invokes platform specific functionality to allocate a new shell that is not embedded. <p> <b>IMPORTANT:</b> This method is <em>not</em> part of the public API for <code>Shell</code>. It is marked public only so that it can be shared within the packages provided by SWT. It is not available on all platforms, and should never be called from application code. </p>

Inherited Members

From Decorations

getDefaultButton
Button getDefaultButton()

Returns the receiver's default button if one had previously been set, otherwise returns null.

getImage
Image getImage()

Returns the receiver's image if it had previously been set using <code>setImage()</code>. The image is typically displayed by the window manager when the instance is marked as iconified, and may also be displayed somewhere in the trim when the instance is in normal or maximized states. <p> Note: This method will return null if called before <code>setImage()</code> is called. It does not provide access to a window manager provided, "default" image even if one exists. </p>

getImages
Image[] getImages()

Returns the receiver's images if they had previously been set using <code>setImages()</code>. Images are typically displayed by the window manager when the instance is marked as iconified, and may also be displayed somewhere in the trim when the instance is in normal or maximized states. Depending where the icon is displayed, the platform chooses the icon with the "best" attributes. It is expected that the array will contain the same icon rendered at different sizes, with different depth and transparency attributes.

getMaximized
bool getMaximized()

Returns <code>true</code> if the receiver is currently maximized, and false otherwise. <p>

getMenuBar
Menu getMenuBar()

Returns the receiver's menu bar if one had previously been set, otherwise returns null.

getMinimized
bool getMinimized()

Returns <code>true</code> if the receiver is currently minimized, and false otherwise. <p>

getText
String getText()

Returns the receiver's text, which is the string that the window manager will typically display as the receiver's <em>title</em>. If the text has not previously been set, returns an empty string.

setDefaultButton
void setDefaultButton(Button button)

If the argument is not null, sets the receiver's default button to the argument, and if the argument is null, sets the receiver's default button to the first button which was set as the receiver's default button (called the <em>saved default button</em>). If no default button had previously been set, or the saved default button was disposed, the receiver's default button will be set to null. <p> The default button is the button that is selected when the receiver is active and the user presses ENTER. </p>

setImage
void setImage(Image image)

Sets the receiver's image to the argument, which may be null. The image is typically displayed by the window manager when the instance is marked as iconified, and may also be displayed somewhere in the trim when the instance is in normal or maximized states.

setImages
void setImages(Image[] images)

Sets the receiver's images to the argument, which may be an empty array. Images are typically displayed by the window manager when the instance is marked as iconified, and may also be displayed somewhere in the trim when the instance is in normal or maximized states. Depending where the icon is displayed, the platform chooses the icon with the "best" attributes. It is expected that the array will contain the same icon rendered at different sizes, with different depth and transparency attributes.

setMaximized
void setMaximized(bool maximized)

Sets the maximized state of the receiver. If the argument is <code>true</code> causes the receiver to switch to the maximized state, and if the argument is <code>false</code> and the receiver was previously maximized, causes the receiver to switch back to either the minimized or normal states. <p> Note: The result of intermixing calls to <code>setMaximized(true)</code> and <code>setMinimized(true)</code> will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible. </p>

setMenuBar
void setMenuBar(Menu menu)

Sets the receiver's menu bar to the argument, which may be null.

setMinimized
void setMinimized(bool minimized)

Sets the minimized stated of the receiver. If the argument is <code>true</code> causes the receiver to switch to the minimized state, and if the argument is <code>false</code> and the receiver was previously minimized, causes the receiver to switch back to either the maximized or normal states. <p> Note: The result of intermixing calls to <code>setMaximized(true)</code> and <code>setMinimized(true)</code> will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible. </p>

setText
void setText(String string)

Sets the receiver's text, which is the string that the window manager will typically display as the receiver's <em>title</em>, to the argument, which must not be null.

Meta