## wxTopLevelWindow

wxTopLevelWindow is a common base class for wxDialog and wxFrame. It is an abstract base class meaning that you never work with objects of this class directly, but all of its methods are also applicable for the two classes above.

Derived from

wxWindow
wxEvtHandler
wxObject

Include files

<wx/toplevel.h>

Members

wxTopLevelWindow::CanSetTransparent
wxTopLevelWindow::EnableCloseButton
wxTopLevelWindow::GetDefaultItem
wxTopLevelWindow::GetIcon
wxTopLevelWindow::GetIcons
wxTopLevelWindow::GetTitle
wxTopLevelWindow::HandleSettingChange
wxTopLevelWindow::IsActive
wxTopLevelWindow::IsAlwaysMaximized
wxTopLevelWindow::Iconize
wxTopLevelWindow::IsFullScreen
wxTopLevelWindow::IsIconized
wxTopLevelWindow::IsMaximized
wxTopLevelWindow::IsUsingNativeDecorations
wxTopLevelWindow::Maximize
wxTopLevelWindow::RequestUserAttention
wxTopLevelWindow::SetDefaultItem
wxTopLevelWindow::SetIcon
wxTopLevelWindow::SetIcons
wxTopLevelWindow::SetLeftMenu
wxTopLevelWindow::SetMaxSize
wxTopLevelWindow::SetMinSize
wxTopLevelWindow::SetSizeHints
wxTopLevelWindow::SetRightMenu
wxTopLevelWindow::SetShape
wxTopLevelWindow::SetTitle
wxTopLevelWindow::SetTransparent
wxTopLevelWindow::ShouldPreventAppExit
wxTopLevelWindow::ShowFullScreen
wxTopLevelWindow::UseNativeDecorations
wxTopLevelWindow::UseNativeDecorationsByDefault

### wxTopLevelWindow::CanSetTransparent

virtual bool CanSetTransparent()

Returns `true` if the platform supports making the window translucent.

See also

wxTopLevelWindow::SetTransparent

### wxTopLevelWindow::EnableCloseButton

bool EnableCloseButton(bool enable = true)

Enables or disables the Close button (most often in the right upper corner of a dialog) and the Close entry of the system menu (most often in the left upper corner of the dialog). Currently only implemented for wxMSW and wxGTK. Returns true if operation was successful. This may be wrong on X11 (including GTK+) where the window manager may not support this operation and there is no way to find out.

### wxTopLevelWindow::GetDefaultItem

wxWindow * GetDefaultItem() const

Returns a pointer to the button which is the default for this window, or `NULL`. The default button is the one activated by pressing the Enter key.

### wxTopLevelWindow::GetIcon

const wxIcon& GetIcon() const

Returns the standard icon of the window. The icon will be invalid if it hadn't been previously set by SetIcon.

See also

GetIcons

### wxTopLevelWindow::GetIcons

const wxIconBundle& GetIcons() const

Returns all icons associated with the window, there will be none of them if neither SetIcon nor SetIcons had been called before.

Use GetIcon to get the main icon of the window.

See also

wxIconBundle

### wxTopLevelWindow::GetTitle

wxString GetTitle() const

Gets a string containing the window title.

See also

wxTopLevelWindow::SetTitle

### wxTopLevelWindow::HandleSettingChange

virtual bool HandleSettingChange(WXWPARAM wParam, WXLPARAM lParam)

Unique to the wxWinCE port. Responds to showing/hiding SIP (soft input panel) area and resize window accordingly. Override this if you want to avoid resizing or do additional operations.

### wxTopLevelWindow::IsActive

bool IsActive() const

Returns `true` if this window is currently active, i.e. if the user is currently working with it.

### wxTopLevelWindow::IsAlwaysMaximized

virtual bool IsAlwaysMaximized() const

Returns `true` if this window is expected to be always maximized, either due to platform policy or due to local policy regarding particular class.

### wxTopLevelWindow::Iconize

void Iconize(bool iconize)

Iconizes or restores the window.

Parameters

iconize

If `true`, iconizes the window; if `false`, shows and restores it.

See also

wxTopLevelWindow::IsIconized, wxTopLevelWindow::Maximize.

### wxTopLevelWindow::IsFullScreen

bool IsFullScreen()

Returns `true` if the window is in fullscreen mode.

See also

wxTopLevelWindow::ShowFullScreen

### wxTopLevelWindow::IsIconized

bool IsIconized() const

Returns `true` if the window is iconized.

### wxTopLevelWindow::IsMaximized

bool IsMaximized() const

Returns `true` if the window is maximized.

### wxTopLevelWindow::IsUsingNativeDecorations

bool IsUsingNativeDecorations() const

`This method is specific to wxUniversal port`

Returns `true` if this window is using native decorations, `false` if we draw them ourselves.

See also

UseNativeDecorations,
UseNativeDecorationsByDefault

### wxTopLevelWindow::Maximize

void Maximize(bool maximize)

Maximizes or restores the window.

Parameters

maximize

If `true`, maximizes the window, otherwise it restores it.

See also

wxTopLevelWindow::Iconize

### wxTopLevelWindow::RequestUserAttention

void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO)

Use a system-dependent way to attract users attention to the window when it is in background.

flags may have the value of either `wxUSER_ATTENTION_INFO` (default) or `wxUSER_ATTENTION_ERROR` which results in a more drastic action. When in doubt, use the default value.

Note that this function should normally be only used when the application is not already in foreground.

This function is currently implemented for Win32 where it flashes the window icon in the taskbar, and for wxGTK with task bars supporting it.

### wxTopLevelWindow::SetDefaultItem

void SetDefaultItem(wxWindow *win)

Changes the default item for the panel, usually win is a button.

See also

GetDefaultItem

### wxTopLevelWindow::SetIcon

void SetIcon(const wxIcon& icon)

Sets the icon for this window.

Parameters

icon

The icon to associate with this window.

Remarks

The window takes a 'copy' of icon, but since it uses reference counting, the copy is very quick. It is safe to delete icon after calling this function.

See also wxIcon.

### wxTopLevelWindow::SetIcons

void SetIcons(const wxIconBundle& icons)

Sets several icons of different sizes for this window: this allows to use different icons for different situations (e.g. task switching bar, taskbar, window title bar) instead of scaling, with possibly bad looking results, the only icon set by SetIcon.

Parameters

icons

The icons to associate with this window.

See also

wxIconBundle.

### wxTopLevelWindow::SetLeftMenu

void SetLeftMenu(int id = wxID_ANY, const wxString& label = wxEmptyString, wxMenu * subMenu = NULL)

Sets action or menu activated by pressing left hardware button on the smart phones. Unavailable on full keyboard machines.

Parameters

id

Identifier for this button.

label

Text to be displayed on the screen area dedicated to this hardware button.

subMenu

The menu to be opened after pressing this hardware button.

See also

wxTopLevelWindow::SetRightMenu.

### wxTopLevelWindow::SetMaxSize

void SetMaxSize(const wxSize& size)

A simpler interface for setting the size hints than SetSizeHints.

### wxTopLevelWindow::SetMinSize

void SetMinSize(const wxSize& size)

A simpler interface for setting the size hints than SetSizeHints.

### wxTopLevelWindow::SetSizeHints

virtual void SetSizeHints(int minW, int minH, int maxW=-1, int maxH=-1, int incW=-1, int incH=-1)

void SetSizeHints(const wxSize& minSize, const wxSize& maxSize=wxDefaultSize, const wxSize& incSize=wxDefaultSize)

Allows specification of minimum and maximum window sizes, and window size increments. If a pair of values is not set (or set to -1), the default values will be used.

incW

Specifies the increment for sizing the width (Motif/Xt only).

incH

Specifies the increment for sizing the height (Motif/Xt only).

incSize

Increment size (Motif/Xt only).

Remarks

If this function is called, the user will not be able to size the window outside the given bounds. The resizing increments are only significant under Motif or Xt.

### wxTopLevelWindow::SetRightMenu

void SetRightMenu(int id = wxID_ANY, const wxString& label = wxEmptyString, wxMenu * subMenu = NULL)

Sets action or menu activated by pressing right hardware button on the smart phones. Unavailable on full keyboard machines.

Parameters

id

Identifier for this button.

label

Text to be displayed on the screen area dedicated to this hardware button.

subMenu

The menu to be opened after pressing this hardware button.

See also

wxTopLevelWindow::SetLeftMenu.

### wxTopLevelWindow::SetShape

bool SetShape(const wxRegion& region)

If the platform supports it, sets the shape of the window to that depicted by region. The system will not display or respond to any mouse event for the pixels that lie outside of the region. To reset the window to the normal rectangular shape simply call SetShape again with an empty region. Returns true if the operation is successful.

### wxTopLevelWindow::SetTitle

virtual void SetTitle(const wxString& title)

Sets the window title.

Parameters

title

The window title.

See also

wxTopLevelWindow::GetTitle

### wxTopLevelWindow::SetTransparent

virtual bool SetTransparent(int alpha)

If the platform supports it will set the window to be translucent

Parameters

alpha

Determines how opaque or transparent the window will be, if the platform supports the opreration. A value of 0 sets the window to be fully transparent, and a value of 255 sets the window to be fully opaque.

Returns `true` if the transparency was successfully changed.

### wxTopLevelWindow::ShouldPreventAppExit

virtual bool ShouldPreventAppExit() const

This virtual function is not meant to be called directly but can be overridden to return `false` (it returns `true` by default) to allow the application to close even if this, presumably not very important, window is still opened. By default, the application stays alive as long as there are any open top level windows.

### wxTopLevelWindow::ShowFullScreen

bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL)

Depending on the value of show parameter the window is either shown full screen or restored to its normal state. style is a bit list containing some or all of the following values, which indicate what elements of the window to hide in full-screen mode:

- wxFULLSCREEN_NOMENUBAR
- wxFULLSCREEN_NOTOOLBAR
- wxFULLSCREEN_NOSTATUSBAR
- wxFULLSCREEN_NOBORDER
- wxFULLSCREEN_NOCAPTION
- wxFULLSCREEN_ALL (all of the above)

This function has not been tested with MDI frames.

Note that showing a window full screen also actually Show()s if it hadn't been shown yet.

See also

wxTopLevelWindow::IsFullScreen

### wxTopLevelWindow::UseNativeDecorations

void UseNativeDecorations(bool native = `true`)

`This method is specific to wxUniversal port`

Use native or custom-drawn decorations for this window only. Notice that to have any effect this method must be called before really creating the window, i.e. two step creation must be used:

        MyFrame *frame = new MyFrame;           // use default ctor
        frame->UseNativeDecorations(false);     // change from default "true"
        frame->Create(parent, title, ...);      // really create the frame

See also

UseNativeDecorationsByDefault,
IsUsingNativeDecorations

### wxTopLevelWindow::UseNativeDecorationsByDefault

void UseNativeDecorationsByDefault(bool native = `true`)

`This method is specific to wxUniversal port`

Top level windows in wxUniversal port can use either system-provided window decorations (i.e. title bar and various icons, buttons and menus in it) or draw the decorations themselves. By default the system decorations are used if they are available, but this method can be called with native set to `false` to change this for all windows created after this point.

Also note that if `WXDECOR` environment variable is set, then custom decorations are used by default and so it may make sense to call this method with default argument if the application can't use custom decorations at all for some reason.

See also

UseNativeDecorations