Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
berry::Window Class Reference

#include <berryWindow.h>

Inheritance diagram for berry::Window:
Collaboration diagram for berry::Window:

Classes

struct  IExceptionHandler
 

Public Member Functions

 berryObjectMacro (Window, IShellProvider)
 
virtual bool Close ()
 
virtual void Create ()
 
int GetReturnCode ()
 
Shell::Pointer GetShell () const override
 
WindowManager * GetWindowManager ()
 
MenuManagerGetMenuBarManager () const
 
int Open ()
 
void SetBlockOnOpen (bool shouldBlock)
 
void SetWindowManager (WindowManager *manager)
 
- Public Member Functions inherited from berry::IShellProvider
 berryObjectMacro (berry::IShellProvider, Object)
 
 ~IShellProvider () override
 
- Public Member Functions inherited from berry::Object
virtual QString GetClassName () const
 
virtual Reflection::TypeInfo GetTypeInfo () const
 
virtual QList< Reflection::TypeInfoGetSuperclasses () const
 
virtual void Delete ()
 
QDebug Print (QDebug os, Indent Indent=0) const
 
virtual QString ToString () const
 
virtual uint HashCode () const
 
virtual bool operator< (const Object *) const
 
void Register () const
 
void UnRegister (bool del=true) const
 
int GetReferenceCount () const
 
void SetReferenceCount (int)
 
void AddDestroyListener (const MessageAbstractDelegate<> &delegate) const
 
void RemoveDestroyListener (const MessageAbstractDelegate<> &delegate) const
 
virtual bool operator== (const Object *) const
 

Static Public Member Functions

static QIcon GetDefaultImage ()
 
static QList< QIcon > GetDefaultImages ()
 
static void SetDefaultImage (const QIcon &image)
 
static void SetDefaultImages (const QList< QIcon > &images)
 
static void SetExceptionHandler (IExceptionHandler::Pointer handler)
 
static void SetDefaultModalParent (IShellProvider::Pointer provider)
 
- Static Public Member Functions inherited from berry::Object
static const char * GetStaticClassName ()
 
static Reflection::TypeInfo GetStaticTypeInfo ()
 
static QList< Reflection::TypeInfoGetStaticSuperclasses ()
 

Static Public Attributes

static const int OK
 
static const int CANCEL
 
static QList< QIcon > defaultImages
 

Protected Member Functions

 Window (Shell::Pointer parentShell)
 
 Window (IShellProvider::Pointer shellProvider)
 
 ~Window () override
 
QRect GetConstrainedShellBounds (const QRect &preferredSize)
 
virtual void Init ()
 
virtual bool CanHandleShellCloseEvent ()
 
virtual void ConfigureShell (Shell::Pointer newShell)
 
virtual QWidget * CreateContents (Shell::Pointer parent)
 
virtual Shell::Pointer CreateShell ()
 
virtual QWidget * GetContents ()
 
virtual QPoint GetInitialLocation (const QPoint &initialSize)
 
virtual QPoint GetInitialSize ()
 
Shell::Pointer GetParentShell ()
 
virtual IShellListenerGetShellListener ()
 
int GetShellStyle ()
 
virtual void HandleShellCloseEvent ()
 
virtual void InitializeBounds ()
 
void SetParentShell (Shell::Pointer newParentShell)
 
void SetReturnCode (int code)
 
void SetShellStyle (int newShellStyle)
 
void AddMenuBar ()
 
virtual SmartPointer< MenuManagerCreateMenuManager ()
 
virtual void CreateTrimWidgets (SmartPointer< Shell > shell)
 
- Protected Member Functions inherited from berry::Object
 Object ()
 
virtual ~Object ()
 
virtual QDebug PrintSelf (QDebug os, Indent indent) const
 
virtual QDebug PrintHeader (QDebug os, Indent indent) const
 
virtual QDebug PrintTrailer (QDebug os, Indent indent) const
 

Additional Inherited Members

- Public Types inherited from berry::Object
typedef Object Self
 
typedef berry::SmartPointer< SelfPointer
 
typedef berry::SmartPointer< const SelfConstPointer
 
typedef berry::WeakPointer< SelfWeakPtr
 
typedef berry::WeakPointer< const SelfConstWeakPtr
 
- Protected Attributes inherited from berry::Object
QAtomicInt m_ReferenceCount
 
QMutex m_ReferenceCountLock
 

Detailed Description

A JFace window is an object that has no visual representation (no widgets) until it is told to open.

Creating a window involves the following steps:

  • creating an instance of a concrete subclass of Window
  • creating the window's shell and widget tree by calling create (optional)
  • assigning the window to a window manager using WindowManager.add (optional)
  • opening the window by calling open

Opening the window will create its shell and widget tree if they have not already been created. When the window is closed, the shell and widget tree are disposed of and are no longer referenced, and the window is automatically removed from its window manager. A window may be reopened.

The JFace window framework (this package) consists of this class, Window, the abstract base of all windows, and one concrete window classes (ApplicationWindow) which may also be subclassed. Clients may define additional window subclasses as required.

The Window class provides methods that subclasses may override to configure the window, including:

  • close- extend to free other SWT resources
  • configureShell- extend or reimplement to set shell properties before window opens
  • createContents- extend or reimplement to create controls before window opens
  • getInitialSize- reimplement to give the initial size for the shell
  • getInitialLocation- reimplement to give the initial location for the shell
  • getShellListener- extend or reimplement to receive shell events
  • handleFontChange- reimplement to respond to font changes
  • handleShellCloseEvent- extend or reimplement to handle shell closings

Definition at line 82 of file berryWindow.h.

Constructor & Destructor Documentation

◆ Window() [1/2]

berry::Window::Window ( Shell::Pointer  parentShell)
protected

Creates a window instance, whose shell will be created under the given parent shell. Note that the window will have no visual representation until it is told to open. By default, open does not block.

Parameters
parentShellthe parent shell, or null to create a top-level shell. Try passing "(Shell)null" to this method instead of "null" if your compiler complains about an ambiguity error.
See also
SetBlockOnOpen

◆ Window() [2/2]

berry::Window::Window ( IShellProvider::Pointer  shellProvider)
protected

Creates a new window which will create its shell as a child of whatever the given shellProvider returns.

Parameters
shellProviderobject that will return the current parent shell. Not null.

◆ ~Window()

berry::Window::~Window ( )
overrideprotected

Member Function Documentation

◆ AddMenuBar()

void berry::Window::AddMenuBar ( )
protected

Configures this window to have a menu bar. Does nothing if it already has one. This method must be called before this window's shell is created.

◆ berryObjectMacro()

berry::Window::berryObjectMacro ( Window  ,
IShellProvider   
)

◆ CanHandleShellCloseEvent()

virtual bool berry::Window::CanHandleShellCloseEvent ( )
protectedvirtual

Determines if the window should handle the close event or do nothing.

The default implementation of this framework method returns true, which will allow the handleShellCloseEvent method to be called. Subclasses may extend or reimplement.

Returns
whether the window should handle the close event.

◆ Close()

virtual bool berry::Window::Close ( )
virtual

Closes this window, disposes its shell, and removes this window from its window manager (if it has one).

This framework method may be extended (super.close must be called).

Note that in order to prevent recursive calls to this method it does not call Shell::close(). As a result ShellListeners will not receive a shellClosed event.

Returns
true if the window is (or was already) closed, and false if it is still open

◆ ConfigureShell()

virtual void berry::Window::ConfigureShell ( Shell::Pointer  newShell)
protectedvirtual

Configures the given shell in preparation for opening this window in it.

The default implementation of this framework method sets the shell's image and gives it a grid layout. Subclasses may extend or reimplement.

Parameters
newShellthe shell

◆ Create()

virtual void berry::Window::Create ( )
virtual

Creates this window's widgetry in a new top-level shell.

The default implementation of this framework method creates this window's shell (by calling createShell), and its controls (by calling createContents), then initializes this window's shell bounds (by calling initializeBounds).

◆ CreateContents()

virtual QWidget* berry::Window::CreateContents ( Shell::Pointer  parent)
protectedvirtual

Creates and returns this window's contents. Subclasses may attach any number of children to the parent. As a convenience, the return value of this method will be remembered and returned by subsequent calls to getContents(). Subclasses may modify the parent's layout if they overload getLayout() to return null.

It is common practice to create and return a single composite that contains the entire window contents.

The default implementation of this framework method creates an instance of Composite. Subclasses may override.

Parameters
parentthe parent composite for the controls in this window. The type of layout used is determined by getLayout()
Returns
the control that will be returned by subsequent calls to getContents()

◆ CreateMenuManager()

virtual SmartPointer<MenuManager> berry::Window::CreateMenuManager ( )
protectedvirtual

Returns a new menu manager for the window.

Subclasses may override this method to customize the menu manager.

Returns
a menu manager

◆ CreateShell()

virtual Shell::Pointer berry::Window::CreateShell ( )
protectedvirtual

Creates and returns this window's shell.

The default implementation of this framework method creates a new shell and configures it using configureShell. Rather than override this method, subclasses should instead override configureShell.

Returns
the shell

◆ CreateTrimWidgets()

virtual void berry::Window::CreateTrimWidgets ( SmartPointer< Shell shell)
protectedvirtual

Creates the trim widgets around the content area.

Parameters
shellthe shell

◆ GetConstrainedShellBounds()

QRect berry::Window::GetConstrainedShellBounds ( const QRect &  preferredSize)
protected

Given the desired position of the window, this method returns an adjusted position such that the window is no larger than its monitor, and does not extend beyond the edge of the monitor. This is used for computing the initial window position, and subclasses can use this as a utility method if they want to limit the region in which the window may be moved.

Parameters
preferredSizethe preferred position of the window
Returns
a rectangle as close as possible to preferredSize that does not extend outside the monitor

◆ GetContents()

virtual QWidget* berry::Window::GetContents ( )
protectedvirtual

Returns the top level control for this window. The parent of this control is the shell.

Returns
the top level control, or null if this window's control has not been created yet

◆ GetDefaultImage()

static QIcon berry::Window::GetDefaultImage ( )
static

Returns the default image. This is the image that will be used for windows that have no shell image at the time they are opened. There is no default image unless one is installed via setDefaultImage.

Returns
the default image, or null if none
See also
SetDefaultImage

◆ GetDefaultImages()

static QList<QIcon> berry::Window::GetDefaultImages ( )
static

Returns the array of default images to use for newly opened windows. It is expected that the array will contain the same icon rendered at different resolutions.

See also
org.blueberry.swt.widgets.Decorations::setImages(org.blueberry.swt.graphics.Image[])
Returns
the array of images to be used when a new window is opened
See also
SetDefaultImages
Since
3.0

◆ GetInitialLocation()

virtual QPoint berry::Window::GetInitialLocation ( const QPoint &  initialSize)
protectedvirtual

Returns the initial location to use for the shell. The default implementation centers the shell horizontally (1/2 of the difference to the left and 1/2 to the right) and vertically (1/3 above and 2/3 below) relative to the parent shell, or display bounds if there is no parent shell.

Parameters
initialSizethe initial size of the shell, as returned by getInitialSize.
Returns
the initial location of the shell

◆ GetInitialSize()

virtual QPoint berry::Window::GetInitialSize ( )
protectedvirtual

Returns the initial size to use for the shell. The default implementation returns the preferred size of the shell, using Shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).

Returns
the initial size of the shell

◆ GetMenuBarManager()

MenuManager* berry::Window::GetMenuBarManager ( ) const

Returns the menu bar manager for this window (if it has one).

Returns
the menu bar manager, or null if this window does not have a menu bar
See also
AddMenuBar()

◆ GetParentShell()

Shell::Pointer berry::Window::GetParentShell ( )
protected

Returns parent shell, under which this window's shell is created.

Returns
the parent shell, or null if there is no parent shell

◆ GetReturnCode()

int berry::Window::GetReturnCode ( )

Returns this window's return code. A window's return codes are window-specific, although two standard return codes are predefined: OK and CANCEL.

Returns
the return code

◆ GetShell()

Shell::Pointer berry::Window::GetShell ( ) const
overridevirtual

Returns this window's shell.

Returns
this window's shell, or null if this window's shell has not been created yet

Implements berry::IShellProvider.

◆ GetShellListener()

virtual IShellListener* berry::Window::GetShellListener ( )
protectedvirtual

Returns a shell listener. This shell listener gets registered with this window's shell.

The default implementation of this framework method returns a new listener that makes this window the active window for its window manager (if it has one) when the shell is activated, and calls the framework method handleShellCloseEvent when the shell is closed. Subclasses may extend or reimplement.

Returns
a shell listener

◆ GetShellStyle()

int berry::Window::GetShellStyle ( )
protected

Returns the shell style bits.

The default value is SWT.CLOSE|SWT.MIN|SWT.MAX|SWT.RESIZE. Subclassers should call setShellStyle to change this value, rather than overriding this method.

Returns
the shell style bits

◆ GetWindowManager()

WindowManager* berry::Window::GetWindowManager ( )

Returns the window manager of this window.

Returns
the WindowManager, or null if none

◆ HandleShellCloseEvent()

virtual void berry::Window::HandleShellCloseEvent ( )
protectedvirtual

Notifies that the window's close button was pressed, the close menu was selected, or the ESCAPE key pressed.

The default implementation of this framework method sets the window's return code to CANCEL and closes the window using close. Subclasses may extend or reimplement.

◆ Init()

virtual void berry::Window::Init ( )
protectedvirtual

Initializes this windows variables

◆ InitializeBounds()

virtual void berry::Window::InitializeBounds ( )
protectedvirtual

Initializes the location and size of this window's SWT shell after it has been created.

This framework method is called by the create framework method. The default implementation calls getInitialSize and getInitialLocation and passes the results to Shell.setBounds. This is only done if the bounds of the shell have not already been modified. Subclasses may extend or reimplement.

◆ Open()

int berry::Window::Open ( )

Opens this window, creating it first if it has not yet been created.

If this window has been configured to block on open ( setBlockOnOpen), this method waits until the window is closed by the end user, and then it returns the window's return code; otherwise, this method returns immediately. A window's return codes are window-specific, although two standard return codes are predefined: OK and CANCEL.

Returns
the return code
See also
Create()

◆ SetBlockOnOpen()

void berry::Window::SetBlockOnOpen ( bool  shouldBlock)

Sets whether the open method should block until the window closes.

Parameters
shouldBlocktrue if the open method should not return until the window closes, and false if the open method should return immediately

◆ SetDefaultImage()

static void berry::Window::SetDefaultImage ( const QIcon &  image)
static

Sets the default image. This is the image that will be used for windows that have no shell image at the time they are opened. There is no default image unless one is installed via this method.

Parameters
imagethe default image, or null if none

◆ SetDefaultImages()

static void berry::Window::SetDefaultImages ( const QList< QIcon > &  images)
static

Sets the array of default images to use for newly opened windows. It is expected that the array will contain the same icon rendered at different resolutions.

See also
org.blueberry.swt.widgets.Decorations::setImages(org.blueberry.swt.graphics.Image[])
Parameters
imagesthe array of images to be used when this window is opened
Since
3.0

◆ SetDefaultModalParent()

static void berry::Window::SetDefaultModalParent ( IShellProvider::Pointer  provider)
static

Sets the default parent for modal Windows. This will be used to locate the parent for any modal Window constructed with a null parent.

Parameters
providershell provider that will be used to locate the parent shell whenever a Window is created with a null parent
Since
3.1

◆ SetExceptionHandler()

static void berry::Window::SetExceptionHandler ( IExceptionHandler::Pointer  handler)
static

Sets the exception handler for this application.

Note that the handler may only be set once. Subsequent calls to this method will be ignored.

Parameters
handlerthe exception handler for the application.

◆ SetParentShell()

void berry::Window::SetParentShell ( Shell::Pointer  newParentShell)
protected

Changes the parent shell. This is only safe to use when the shell is not yet realized (i.e., created). Once the shell is created, it must be disposed (i.e., closed) before this method can be called.

Parameters
newParentShellThe new parent shell; this value may be null if there is to be no parent.
Since
3.1

◆ SetReturnCode()

void berry::Window::SetReturnCode ( int  code)
protected

Sets this window's return code. The return code is automatically returned by open if block on open is enabled. For non-blocking opens, the return code needs to be retrieved manually using getReturnCode.

Parameters
codethe return code

◆ SetShellStyle()

void berry::Window::SetShellStyle ( int  newShellStyle)
protected

Sets the shell style bits. This method has no effect after the shell is created.

The shell style bits are used by the framework method createShell when creating this window's shell.

Parameters
newShellStylethe new shell style bits

◆ SetWindowManager()

void berry::Window::SetWindowManager ( WindowManager *  manager)

Sets the window manager of this window.

Note that this method is used by WindowManager to maintain a backpointer. Clients must not call the method directly.

Parameters
managerthe window manager, or null if none

Member Data Documentation

◆ CANCEL

const int berry::Window::CANCEL
static

Standard return code constant (value 1) indicating that the window was canceled.

See also
Open

Definition at line 103 of file berryWindow.h.

◆ defaultImages

QList<QIcon> berry::Window::defaultImages
static

An array of images to be used for the window. It is expected that the array will contain the same icon rendered at different resolutions.

Definition at line 109 of file berryWindow.h.

◆ OK

const int berry::Window::OK
static

Standard return code constant (value 0) indicating that the window was opened.

See also
Open

Definition at line 95 of file berryWindow.h.


The documentation for this class was generated from the following file: