Class Shell

All Implemented Interfaces:
Drawable

public class Shell extends Decorations
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 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_MOVE, NO_TRIM, RESIZE, TITLE, ON_TOP, TOOL, SHEET
APPLICATION_MODAL, MODELESS, PRIMARY_MODAL, SYSTEM_MODAL
Events:
Activate, Close, Deactivate, Deiconify, Iconify

Class 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:
  • Field Details

    • shellHandle

      long shellHandle
    • tooltipsHandle

      long tooltipsHandle
    • tooltipWindow

      long tooltipWindow
    • group

      long group
    • modalGroup

      long modalGroup
    • mapped

      boolean mapped
    • moved

      boolean moved
    • resized

      boolean resized
    • opened

      boolean opened
    • fullScreen

      boolean fullScreen
    • showWithParent

      boolean showWithParent
    • modified

      boolean modified
    • center

      boolean center
    • oldX

      int oldX
    • oldY

      int oldY
    • oldWidth

      int oldWidth
    • oldHeight

      int oldHeight
    • geometry

    • lastActive

      Control lastActive
    • toolTips

      ToolTip[] toolTips
    • ignoreFocusOut

      boolean ignoreFocusOut
    • ignoreFocusIn

      boolean ignoreFocusIn
    • ignoreFocusOutAfterGrab

      boolean ignoreFocusOutAfterGrab
    • grabbedFocus

      boolean grabbedFocus
    • originalRegion

      Region originalRegion
    • MAXIMUM_TRIM

      static final int MAXIMUM_TRIM
      See Also:
    • BORDER

      static final int BORDER
      See Also:
    • SHELL_TO_MONITOR_RATIO

      static final double SHELL_TO_MONITOR_RATIO
      See Also:
  • Constructor Details

    • Shell

      public Shell()
      Constructs a new instance of this class. This is equivalent to calling Shell((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
    • 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 calling Shell((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 the int "|" operator) two or more of those SWT 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

      public Shell(Display display)
      Constructs a new instance of this class given only the display to create it on. It is created with style SWT.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

      public Shell(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.

      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 the int "|" operator) two or more of those SWT 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 on
      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

      Shell(Display display, Shell parent, int style, long handle, boolean embedded)
    • Shell

      public Shell(Shell parent)
      Constructs a new instance of this class given only its parent. It is created with style SWT.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

      public Shell(Shell parent, int style)
      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 the int "|" operator) two or more of those SWT 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 instance
      style - 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

    • gtk_new

      public static Shell gtk_new(Display display, long handle)
      Invokes platform specific functionality to allocate a new shell that is embedded.

      IMPORTANT: This method is not part of the public API for Shell. 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.

      Parameters:
      display - the display for the shell
      handle - the handle for the shell
      Returns:
      a new shell object containing the specified display and handle
    • internal_new

      public static Shell internal_new(Display display, long handle)
      Invokes platform specific functionality to allocate a new shell that is not embedded.

      IMPORTANT: This method is not part of the public API for Shell. 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.

      Parameters:
      display - the display for the shell
      handle - the handle for the shell
      Returns:
      a new shell object containing the specified display and handle
      Since:
      3.3
    • checkStyle

      static int checkStyle(Shell parent, int style)
    • addShellListener

      public 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 ShellListener 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:
    • addToolTip

      void addToolTip(ToolTip toolTip)
    • adjustTrim

      void adjustTrim(int widthHint, int heightHint)
      Resize the shell based on the trim width and height. Trim width and height adjustments are read from '$HOME/.swt/trims.prefs' for each trim style. If such a file does not exist then the trim values are queried from GTK. Note that we are trying to resize the shell which is already open. Shell already has width and height, Which is either set by setSize()/setBounds() or size is calculated based on layout and content of the shell. Without setting bounds/layout shell won't display content which is created on it.
      Parameters:
      widthHint - Current width of the shell that is already open.
      heightHint - Current height of the shell that is already open.
    • bringToTop

      void bringToTop(boolean force)
    • center

      void center()
    • checkBorder

      void checkBorder()
      Overrides:
      checkBorder in class Control
    • checkOpen

      void checkOpen()
      Overrides:
      checkOpen in class Widget
    • 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:
    • closeWidget

      void closeWidget()
    • computeTrimInPixels

      Rectangle computeTrimInPixels(int x, int y, int width, int height)
      Overrides:
      computeTrimInPixels in class Scrollable
    • createHandle

      void createHandle(int index)
      Overrides:
      createHandle in class Composite
    • filterProc

      long filterProc(long xEvent, long gdkEvent, long data2)
      Overrides:
      filterProc in class Widget
    • findBackgroundControl

      Control findBackgroundControl()
      Overrides:
      findBackgroundControl in class Control
    • findDeferredControl

      Composite findDeferredControl()
      Overrides:
      findDeferredControl in class Composite
    • getToolBar

      public ToolBar getToolBar()
      Returns a ToolBar object representing the tool bar that can be shown in the receiver's trim. This will return null if the platform does not support tool bars that are not part of the content area of the shell, or if the Shell's style does not support having a tool bar.
      Returns:
      a ToolBar object representing the Shell'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:
      3.7
    • hasBorder

      boolean hasBorder()
      Overrides:
      hasBorder in class Composite
    • hookEvents

      void hookEvents()
      Overrides:
      hookEvents in class Composite
    • isEnabled

      public boolean isEnabled()
      Description copied from class: Control
      Returns true 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.
      Overrides:
      isEnabled in class Control
      Returns:
      the receiver's enabled state
      See Also:
    • isUndecorated

      boolean isUndecorated()
    • isCustomResize

      boolean isCustomResize()
      Determines whether a Shell has both SWT.RESIZE and SWT.ON_TOP set without SWT.NO_TRIM.
      Returns:
      true if this Shell has both SWT.RESIZE and SWT.ON_TOP set without SWT.NO_TRIM, false otherwise.
    • isVisible

      public boolean isVisible()
      Description copied from class: Control
      Returns true if the receiver is visible and all ancestors up to and including the receiver's nearest ancestor shell are visible. Otherwise, false is returned.
      Overrides:
      isVisible in class Control
      Returns:
      the receiver's visibility state
      See Also:
    • isMappedToPopup

      boolean isMappedToPopup()
      Determines whether a Shell's parent is a popup window. See bug 534554.
      Returns:
      true if the parent of this Shell has style SWT.ON_TOP, false otherwise.
    • register

      void register()
      Overrides:
      register in class Composite
    • releaseParent

      void releaseParent()
      Overrides:
      releaseParent in class Control
    • requestLayout

      public void requestLayout()
      Description copied from class: Control
      Requests that this control and all of its ancestors be repositioned by their layouts at the earliest opportunity. This should be invoked after modifying the control in order to inform any dependent layouts of the change.

      The control will not be repositioned synchronously. This method is fast-running and only marks the control for future participation in a deferred layout.

      Invoking this method multiple times before the layout occurs is an inexpensive no-op.

      Overrides:
      requestLayout in class Control
    • topHandle

      long topHandle()
      Overrides:
      topHandle in class Scrollable
    • paintHandle

      long paintHandle()
      Overrides:
      paintHandle in class Control
    • fixActiveShell

      void fixActiveShell()
    • fixShell

      void fixShell(Shell newShell, Control control)
    • fixStyle

      void fixStyle(long handle)
      Overrides:
      fixStyle in class Control
    • forceResize

      void forceResize()
      Overrides:
      forceResize in class Control
    • forceResize

      void forceResize(int width, int height)
    • getAlpha

      public int getAlpha()
      Returns the receiver's alpha value. The alpha value is between 0 (transparent) and 255 (opaque).
      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:
      3.4
    • getResizeMode

      int getResizeMode(double x, double y)
    • getFullScreen

      public boolean getFullScreen()
      Returns true 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:
      3.4
    • getLocationInPixels

      Point getLocationInPixels()
      Overrides:
      getLocationInPixels in class Control
    • getMaximized

      public boolean getMaximized()
      Description copied from class: Decorations
      Returns true if the receiver is currently maximized, and false otherwise.
      Overrides:
      getMaximized in class Decorations
      Returns:
      the maximized state
      See Also:
    • getMinimumSize

      public 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.
      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:
      3.1
    • getMaximumSize

      public Point getMaximumSize()
      Returns a point describing the maximum receiver's size. The x coordinate of the result is the maximum width of the receiver. The y coordinate of the result is the maximum 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:
      3.116
    • getModalShell

      Shell getModalShell()
    • getModified

      public boolean getModified()
      Gets the receiver's modified state.
      Returns:
      true if the receiver is marked as modified, or false otherwise
      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:
      3.5
    • getSizeInPixels

      Point getSizeInPixels()
      Overrides:
      getSizeInPixels in class Control
    • getVisible

      public boolean getVisible()
      Description copied from class: Control
      Returns true if the receiver is visible, and false otherwise.

      If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, this method may still indicate that it is considered visible even though it may not actually be showing.

      Overrides:
      getVisible in class Control
      Returns:
      the receiver's visibility state
    • getRegion

      public Region getRegion()
      Returns the region that defines the shape of the shell, or null if the shell has the default shape.
      Overrides:
      getRegion in class Control
      Returns:
      the region that defines the shape of the shell, 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:
      3.0
    • getImeInputMode

      public 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 SWT: NONE, ROMAN, DBCS, PHONETIC, NATIVE, ALPHA.
      Returns:
      the IME mode
      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:
    • _getShell

      Shell _getShell()
      Overrides:
      _getShell in class Control
    • getShells

      public Shell[] getShells()
      Returns an array containing all shells which are descendants 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
    • gtk_button_press_event

      long gtk_button_press_event(long widget, long event)
      Overrides:
      gtk_button_press_event in class Canvas
    • gtk_configure_event

      long gtk_configure_event(long widget, long event)
      Overrides:
      gtk_configure_event in class Widget
    • gtk_close_request

      long gtk_close_request(long widget)
      Overrides:
      gtk_close_request in class Widget
    • gtk_delete_event

      long gtk_delete_event(long widget, long event)
      Overrides:
      gtk_delete_event in class Widget
    • gtk_enter_notify_event

      long gtk_enter_notify_event(long widget, long event)
      Overrides:
      gtk_enter_notify_event in class Control
    • gtk_draw

      long gtk_draw(long widget, long cairo)
      Overrides:
      gtk_draw in class Canvas
    • gtk_focus

      long gtk_focus(long widget, long directionType)
      Overrides:
      gtk_focus in class Composite
    • gtk_focus_in_event

      long gtk_focus_in_event(long widget, long event)
      Overrides:
      gtk_focus_in_event in class Canvas
    • gtk_focus_out_event

      long gtk_focus_out_event(long widget, long event)
      Overrides:
      gtk_focus_out_event in class Canvas
    • gtk_leave_notify_event

      long gtk_leave_notify_event(long widget, long event)
      Overrides:
      gtk_leave_notify_event in class Control
    • gtk_map

      long gtk_map(long widget)
      Overrides:
      gtk_map in class Composite
    • gtk_move_focus

      long gtk_move_focus(long widget, long directionType)
      Overrides:
      gtk_move_focus in class Widget
    • gtk_motion_notify_event

      long gtk_motion_notify_event(long widget, long event)
      Overrides:
      gtk_motion_notify_event in class Control
    • gtk3_key_press_event

      long gtk3_key_press_event(long widget, long event)
      Overrides:
      gtk3_key_press_event in class Composite
    • gtk_size_allocate

      long gtk_size_allocate(long widget, long allocation)
      Overrides:
      gtk_size_allocate in class Widget
    • updateDecorations

      private void updateDecorations(long gdkResource)
    • gtk_realize

      long gtk_realize(long widget)
      Overrides:
      gtk_realize in class Composite
    • gtk_window_state_event

      long gtk_window_state_event(long widget, long event)
      Overrides:
      gtk_window_state_event in class Widget
    • notifyState

      long notifyState(long object, long arg0)
      Overrides:
      notifyState in class Widget
    • 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:
    • print

      public boolean print(GC gc)
      Description copied from class: Control
      Prints the receiver and all children.
      Overrides:
      print in class Control
      Parameters:
      gc - the gc where the drawing occurs
      Returns:
      true if the operation was successful and false otherwise
    • removeShellListener

      public void removeShellListener(ShellListener listener)
      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:
    • removeTooTip

      void removeTooTip(ToolTip toolTip)
    • reskinChildren

      void reskinChildren(int flags)
      Overrides:
      reskinChildren in class Decorations
    • 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
      Since:
      2.0
      See Also:
    • setActiveControl

      void setActiveControl(Control control)
    • setActiveControl

      void setActiveControl(Control control, int type)
    • setAlpha

      public void setAlpha(int alpha)
      Sets the receiver's alpha value which must be between 0 (transparent) and 255 (opaque).

      This operation requires the operating system's advanced widgets subsystem which 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:
      3.4
    • resizeBounds

      void resizeBounds(int width, int height, boolean notify)
    • setBounds

      int setBounds(int x, int y, int width, int height, boolean move, boolean resize)
      Overrides:
      setBounds in class Canvas
    • setCursor

      void setCursor(long cursor)
      Overrides:
      setCursor in class Control
    • setEnabled

      public void setEnabled(boolean enabled)
      Description copied from class: Control
      Enables the receiver if the argument is true, 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 class Control
      Parameters:
      enabled - the new enabled state
    • setFullScreen

      public void setFullScreen(boolean fullScreen)
      Sets the full screen state of the receiver. If the argument is true causes the receiver to switch to the full screen state, and if the argument is false 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), setMinimized(true) and setMaximumSize 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:
      3.4
    • setImeInputMode

      public 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 SWT: NONE, ROMAN, DBCS, PHONETIC, NATIVE, ALPHA.
      Parameters:
      mode - the new IME mode
      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:
    • setInitialBounds

      void setInitialBounds()
      Overrides:
      setInitialBounds in class Control
    • setMaximized

      public void setMaximized(boolean maximized)
      Description copied from class: Decorations
      Sets the maximized state of the receiver. If the argument is true causes the receiver to switch to the maximized state, and if the argument is false and the receiver was previously maximized, causes the receiver to switch back to either the minimized or normal states.

      Note: The result of intermixing calls to setMaximized(true) and setMinimized(true) will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible.

      Overrides:
      setMaximized in class Decorations
      Parameters:
      maximized - the new maximized state
      See Also:
    • setMenuBar

      public void setMenuBar(Menu menu)
      Description copied from class: Decorations
      Sets the receiver's menu bar to the argument, which may be null.
      Overrides:
      setMenuBar in class Decorations
      Parameters:
      menu - the new menu bar
    • setMinimized

      public void setMinimized(boolean minimized)
      Description copied from class: Decorations
      Sets the minimized stated of the receiver. If the argument is true causes the receiver to switch to the minimized state, and if the argument is false and the receiver was previously minimized, causes the receiver to switch back to either the maximized or normal states.

      Note: The result of intermixing calls to setMaximized(true) and setMinimized(true) will vary by platform. Typically, the behavior will match the platform user's expectations, but not always. This should be avoided if possible.

      Overrides:
      setMinimized in class Decorations
      Parameters:
      minimized - the new minimized state
      See Also:
    • 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 receiver
      height - 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:
      3.1
    • setMinimumSize

      public 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.
      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:
      3.1
    • setMaximumSize

      public void setMaximumSize(int width, int height)
      Sets the receiver's maximum size to the size specified by the arguments. If the new maximum size is smaller than the current size of the receiver, the receiver is resized to the new maximum size.

      Note: The result of intermixing calls to setMaximumSize and setFullScreen(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:
      width - the new maximum width for the receiver
      height - the new maximum 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:
      3.116
    • setMaximumSize

      public void setMaximumSize(Point size)
      Sets the receiver's maximum size to the size specified by the argument. If the new maximum size is smaller than the current size of the receiver, the receiver is resized to the new maximum size.

      Note: The result of intermixing calls to setMaximumSize and setFullScreen(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:
      size - the new maximum 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:
      3.116
    • 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:
      3.5
    • setRegion

      public 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.

      NOTE: This method also sets the size of the shell. Clients should not call Control.setSize(Point) or setBounds(int, int, int, int, boolean, boolean) on this shell. Furthermore, the passed region should not be modified any more.

      Overrides:
      setRegion in class Control
      Parameters:
      region - the region that defines the shape of the shell (or null)
      Throws:
      IllegalArgumentException -
      • ERROR_INVALID_ARGUMENT - if the region has been disposed
      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:
      3.0
    • gdk_region_get_rectangles

      static void gdk_region_get_rectangles(long region, long[] rectangles, int[] n_rectangles)
    • mirrorRegion

      static Region mirrorRegion(Region region)
    • setRelations

      void setRelations()
      Overrides:
      setRelations in class Control
    • setText

      public void setText(String string)
      Description copied from class: Decorations
      Sets the receiver's text, which is the string that the window manager will typically display as the receiver's title, to the argument, which must not be null.

      Note: If control characters like '\n', '\t' etc. are used in the string, then the behavior is platform dependent.

      Overrides:
      setText in class Decorations
      Parameters:
      string - the new text
    • setVisible

      public void setVisible(boolean visible)
      Description copied from class: Control
      Marks the receiver as visible if the argument is true, 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 class Control
      Parameters:
      visible - the new visibility state
    • setZOrder

      void setZOrder(Control sibling, boolean above, boolean fixRelations)
      Overrides:
      setZOrder in class Control
    • shellMapProc

      long shellMapProc(long handle, long arg0, long user_data)
      Overrides:
      shellMapProc in class Widget
    • showWidget

      void showWidget()
      Overrides:
      showWidget in class Composite
    • sizeAllocateProc

      long sizeAllocateProc(long handle, long arg0, long user_data)
      Overrides:
      sizeAllocateProc in class Widget
    • sizeRequestProc

      long sizeRequestProc(long handle, long arg0, long user_data)
      Overrides:
      sizeRequestProc in class Widget
    • traverseEscape

      boolean traverseEscape()
      Overrides:
      traverseEscape in class Control
    • trimHeight

      int trimHeight()
    • trimWidth

      int trimWidth()
    • updateModal

      void updateModal()
    • updateMinimized

      void updateMinimized(boolean minimized)
    • deregister

      void deregister()
      Overrides:
      deregister in class Composite
    • requiresUngrab

      boolean requiresUngrab()
    • checkAndUngrabFocus

      void checkAndUngrabFocus()
      SWT.ON_TOP shells on Wayland requires gdk_seat_grab to grab keyboard/input focus, the grabbed focus need to be removed when Shell is disposed/hidden.
    • dispose

      public void dispose()
      Description copied from class: Widget
      Disposes of the operating system resources associated with the receiver and all its descendants. After this method has been invoked, the receiver and all descendants will answer true when sent the message isDisposed(). Any internal connections between the widgets in the tree will have been removed to facilitate garbage collection. This method does nothing if the widget is already disposed.

      NOTE: This method is not called recursively on the descendants of the receiver. This means that, widget implementers can not detect when a widget is being disposed of by re-implementing this method, but should instead listen for the Dispose event.

      Overrides:
      dispose in class Widget
      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:
      2.0
      See Also:
    • getBoundsInPixels

      Rectangle getBoundsInPixels()
      Overrides:
      getBoundsInPixels in class Control
    • releaseHandle

      void releaseHandle()
      Overrides:
      releaseHandle in class Decorations
    • releaseChildren

      void releaseChildren(boolean destroy)
      Overrides:
      releaseChildren in class Decorations
    • releaseWidget

      void releaseWidget()
      Overrides:
      releaseWidget in class Decorations
    • getWindowOrigin

      Point getWindowOrigin()
      Description copied from class: Control
      Gets the position of the top left corner of the control in root window (display) coordinates. GTK3 only, do not call on GTK4.
      Overrides:
      getWindowOrigin in class Control
      Returns:
      the origin
    • getSurfaceOrigin

      Point getSurfaceOrigin()
      Description copied from class: Control
      Gets the position of the top left corner of the control in root window (display) coordinates. GTK4 only, do not call on GTK3.
      Overrides:
      getSurfaceOrigin in class Control
      Returns:
      the origin