Class Shell
Display
as the argument) are described
as top level shells. Instances that do have
a parent are described as secondary or
dialog shells.
Instances are always displayed in one of the maximized, minimized or normal states:
-
When an instance is marked as maximized, 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
RESIZE
) until it is no longer maximized. - When an instance is in the normal 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).
- When an instance has been marked as minimized, 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.
The modality 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 PRIMARY_MODAL
style allows an instance to block
input to its parent. The APPLICATION_MODAL
style
allows an instance to block input to every other shell in the
display. The SYSTEM_MODAL
style allows an instance
to block input to all shells, including shells belonging to
different applications.
Note: The styles supported by this class are treated
as HINTs, 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 PRIMARY_MODAL
is not supported,
it would be upgraded to APPLICATION_MODAL
.
A modality style may also be "downgraded" to a less
restrictive style. For example, most operating systems
no longer support SYSTEM_MODAL
because
it can freeze up the desktop, so this is typically
downgraded to APPLICATION_MODAL
.
- Styles:
- BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE, ON_TOP, TOOL, SHEET
- APPLICATION_MODAL, MODELESS, PRIMARY_MODAL, SYSTEM_MODAL
- Events:
- Activate, Close, Deactivate, Deiconify, Iconify
SWT
provides two "convenience constants"
for the most commonly required style combinations:
SHELL_TRIM
-
the result of combining the constants which are required
to produce a typical application top level shell: (that
is,
CLOSE | TITLE | MIN | MAX | RESIZE
) DIALOG_TRIM
-
the result of combining the constants which are required
to produce a typical application dialog shell: (that
is,
TITLE | CLOSE | BORDER
)
Note: Only one of the styles APPLICATION_MODAL, MODELESS, PRIMARY_MODAL and SYSTEM_MODAL may be specified.
IMPORTANT: This class is not intended to be subclassed.
- See Also:
-
Constructor Summary
ConstructorDescriptionShell()
Constructs a new instance of this class.Shell
(int style) Constructs a new instance of this class given only the style value describing its behavior and appearance.Constructs a new instance of this class given only the display to create it on.Constructs a new instance of this class given the display to create it on and a style value describing its behavior and appearance.Constructs a new instance of this class given only its parent.Constructs a new instance of this class given its parent and a style value describing its behavior and appearance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 theShellListener
interface.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.computeTrim
(int x, int y, int width, int height) Given a desired client area for the receiver (as described by the arguments), returns the bounding rectangle which would be required to produce that client area.void
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.<T> T
getAdapter
(Class<T> adapter) Implementation of theAdaptable
interface.int
getAlpha()
Returns the receiver's alpha value.int
Returns the receiver's border width.Returns a rectangle which describes the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings").boolean
Returnstrue
if the receiver is currently in fullscreen state, and false otherwise.boolean
Returnstrue
if the receiver is currently maximized, and false otherwise.boolean
Returnstrue
if the receiver is currently minimized, and false otherwise.Returns a point describing the minimum receiver's size.boolean
Gets the receiver's modified state.Shell[]
Returns an array containing all shells which are descendents of the receiver.Returns the instance of the ToolBar object representing the tool bar that can appear on the trim of the shell.boolean
Returnstrue
if the receiver is enabled and all ancestors up to and including the receiver's nearest ancestor shell are enabled.boolean
Returnstrue
if the receiver is visible and all ancestors up to and including the receiver's nearest ancestor shell are visible.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.void
removeShellListener
(ShellListener listener) Removes the listener from the collection of listeners who will be notified when operations are performed on the receiver.void
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 activevoid
setAlpha
(int alpha) Sets the receiver's alpha value.void
Sets the receiver's size and location to the rectangular area specified by the argument.void
setEnabled
(boolean enabled) Enables the receiver if the argument istrue
, and disables it otherwise.void
setFullScreen
(boolean fullScreen) Sets the full screen state of the receiver.void
setMaximized
(boolean maximized) Sets the maximized state of the receiver.void
setMinimized
(boolean minimized) Sets the minimized stated of the receiver.void
setMinimumSize
(int width, int height) Sets the receiver's minimum size to the size specified by the arguments.void
setMinimumSize
(Point size) Sets the receiver's minimum size to the size specified by the argument.void
setModified
(boolean modified) Sets the receiver's modified state as specified by the argument.void
setVisible
(boolean visible) Marks the receiver as visible if the argument istrue
, and marks it invisible otherwise.Methods inherited from class org.eclipse.swt.widgets.Decorations
getDefaultButton, getImage, getImages, getMenuBar, getText, isReparentable, setDefaultButton, setImage, setImages, setMenuBar, setText
Methods inherited from class org.eclipse.swt.widgets.Canvas
addPaintListener, removePaintListener
Methods inherited from class org.eclipse.swt.widgets.Composite
changed, computeSize, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
Methods inherited from class org.eclipse.swt.widgets.Scrollable
getHorizontalBar, getVerticalBar
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addTouchListener, addTraverseListener, computeSize, forceFocus, getAccessible, getBackground, getBackgroundImage, getBounds, getCursor, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getShell, getSize, getToolTipText, getTouchEnabled, getVisible, isFocusControl, moveAbove, moveBelow, pack, pack, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setCursor, setData, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setSize, setSize, setToolTipText, setTouchEnabled, toControl, toControl, toDisplay, toDisplay, update
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkSubclass, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, toString
-
Constructor Details
-
Shell
public Shell()Constructs a new instance of this class. This is equivalent to callingShell((Display) null)
.- Throws:
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
- Since:
- 1.3
-
Shell
public Shell(int style) Constructs a new instance of this class given only the style value describing its behavior and appearance. This is equivalent to callingShell((Display) null, style)
.The style value is either one of the style constants defined in class
SWT
which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using theint
"|" operator) two or more of thoseSWT
style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.- Parameters:
style
- the style of control to construct- Throws:
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
- See Also:
-
Shell
Constructs a new instance of this class given only the display to create it on. It is created with styleSWT.SHELL_TRIM
.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. 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.
- Parameters:
display
- the display to create the shell on- Throws:
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
-
Shell
Constructs a new instance of this class given the display to create it on and a style value describing its behavior and appearance.The style value is either one of the style constants defined in class
SWT
which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using theint
"|" operator) two or more of thoseSWT
style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.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. 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.
- Parameters:
display
- the display to create the shell onstyle
- the style of control to construct- Throws:
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
- See Also:
-
Shell
Constructs a new instance of this class given only its parent. It is created with styleSWT.DIALOG_TRIM
.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. 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.
- Parameters:
parent
- a shell which will be the parent of the new instance- Throws:
IllegalArgumentException
-- ERROR_INVALID_ARGUMENT - if the parent is disposed
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
-
Shell
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.The style value is either one of the style constants defined in class
SWT
which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using theint
"|" operator) two or more of thoseSWT
style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.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. 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.
- Parameters:
parent
- a shell which will be the parent of the new instancestyle
- the style of control to construct- Throws:
IllegalArgumentException
-- ERROR_INVALID_ARGUMENT - if the parent is disposed
SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
- See Also:
-
-
Method Details
-
getShells
Returns an array containing all shells which are descendents of the receiver.- Returns:
- the dialog shells
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
setActive
public 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- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
forceActive
public 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.- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.2
- See Also:
-
getClientArea
Description copied from class:Scrollable
Returns a rectangle which describes the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings").- Overrides:
getClientArea
in classScrollable
- Returns:
- the client area
- See Also:
-
computeTrim
Description copied from class:Scrollable
Given a desired client area for the receiver (as described by the arguments), returns the bounding rectangle which would be required to produce that client area.In other words, it returns a rectangle such that, if the receiver's bounds were set to that rectangle, the area of the receiver which is capable of displaying data (that is, not covered by the "trimmings") would be the rectangle described by the arguments (relative to the receiver's parent).
- Overrides:
computeTrim
in classScrollable
- Parameters:
x
- the desired x coordinate of the client areay
- the desired y coordinate of the client areawidth
- the desired width of the client areaheight
- the desired height of the client area- Returns:
- the required bounds to produce the given client area
- See Also:
-
getBorderWidth
public int getBorderWidth()Description copied from class:Control
Returns the receiver's border width. Note: When the theming defines different border widths for the four edges, this method returns the maximum border width.- Overrides:
getBorderWidth
in classControl
- Returns:
- the border width
-
getAdapter
Description copied from class:Widget
Implementation of theAdaptable
interface.IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.
- Specified by:
getAdapter
in interfaceAdaptable
- Overrides:
getAdapter
in classDecorations
- Parameters:
adapter
- the lookup class- Returns:
- an object that can be cast to the given class or
null
if there is no adapter associated with the given class.
-
setEnabled
public void setEnabled(boolean enabled) Description copied from class:Control
Enables the receiver if the argument istrue
, and disables it otherwise. A disabled control is typically not selectable from the user interface and draws with an inactive or "grayed" look.- Overrides:
setEnabled
in classControl
- Parameters:
enabled
- the new enabled state
-
isEnabled
public boolean isEnabled()Description copied from class:Control
Returnstrue
if the receiver is enabled and all ancestors up to and including the receiver's nearest ancestor shell are enabled. Otherwise,false
is returned. A disabled control is typically not selectable from the user interface and draws with an inactive or "grayed" look. -
isVisible
public boolean isVisible()Description copied from class:Control
Returnstrue
if the receiver is visible and all ancestors up to and including the receiver's nearest ancestor shell are visible. Otherwise,false
is returned. -
setVisible
public void setVisible(boolean visible) Description copied from class:Control
Marks the receiver as visible if the argument istrue
, and marks it invisible otherwise.If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, marking it visible may not actually cause it to be displayed.
- Overrides:
setVisible
in classControl
- Parameters:
visible
- the new visibility state
-
open
public 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.- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
close
public 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.- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
setAlpha
public void setAlpha(int alpha) Sets the receiver's alpha value.This operation may not be available on some platforms.
- Parameters:
alpha
- the alpha value- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.1
-
getAlpha
public int getAlpha()Returns the receiver's alpha value.- Returns:
- the alpha value
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.1
-
setModified
public void setModified(boolean modified) Sets the receiver's modified state as specified by the argument.- Parameters:
modified
- the new modified state for the receiver
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
-
getModified
public boolean getModified()Gets the receiver's modified state.- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
setMinimumSize
public 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.- Parameters:
width
- the new minimum width for the receiverheight
- the new minimum height for the receiver- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
setMinimumSize
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.- Parameters:
size
- the new minimum size for the receiver- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the point is null
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
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.- Returns:
- the receiver's size
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
setBounds
Description copied from class:Control
Sets the receiver's size and location to the rectangular area specified by the argument. Thex
andy
fields of the rectangle are relative to the receiver's parent (or its display if its parent is null).Note: Attempting to set the width or height of the receiver to a negative number will cause that value to be set to zero instead.
-
getToolBar
Returns the instance of the ToolBar object representing the tool bar that can appear on the trim of the shell. This will returnnull
if the platform does not support tool bars that not part of the content area of the shell, or if the style of the shell does not support a tool bar.- Returns:
- a ToolBar object representing the window's tool bar or null.
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.4
-
addShellListener
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 theShellListener
interface.- Parameters:
listener
- the listener which should be notified- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the listener is null
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
removeShellListener
Removes the listener from the collection of listeners who will be notified when operations are performed on the receiver.- Parameters:
listener
- the listener which should no longer be notified- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the listener is null
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
setMinimized
public void setMinimized(boolean minimized) Sets the minimized stated of the receiver. If the argument istrue
causes the receiver to switch to the minimized state, and if the argument isfalse
and the receiver was previously minimized, causes the receiver to switch back to either the maximized or normal states.- Parameters:
minimized
- the new maximized state- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
setMaximized
public void setMaximized(boolean maximized) Sets the maximized state of the receiver. If the argument istrue
causes the receiver to switch to the maximized state, and if the argument isfalse
and the receiver was previously maximized, causes the receiver to switch back to either the minimized or normal states.- Parameters:
maximized
- the new maximized state- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
getMinimized
public boolean getMinimized()Returnstrue
if the receiver is currently minimized, and false otherwise.- Returns:
- the minimized state
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
getMaximized
public boolean getMaximized()Returnstrue
if the receiver is currently maximized, and false otherwise.- Returns:
- the maximized state
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
-
setFullScreen
public void setFullScreen(boolean fullScreen) Sets the full screen state of the receiver. If the argument istrue
causes the receiver to switch to the full screen state, and if the argument isfalse
and the receiver was previously switched into full screen state, causes the receiver to switch back to either the maximized or normal states.Note: The result of intermixing calls to
setFullScreen(true)
,setMaximized(true)
andsetMinimized(true)
will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible.- Parameters:
fullScreen
- the new fullscreen state- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3
-
getFullScreen
public boolean getFullScreen()Returnstrue
if the receiver is currently in fullscreen state, and false otherwise.- Returns:
- the fullscreen state
- Throws:
SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- Since:
- 1.3