ApplicationWindow

gtk.application_window.ApplicationWindow is a gtk.window.Window subclass that integrates with gtk.application.Application.

Notably, gtk.application_window.ApplicationWindow can handle an application menubar.

This class implements the gio.action_group.ActionGroup and gio.action_map.ActionMap interfaces, to let you add window-specific actions that will be exported by the associated gtk.application.Application, together with its application-wide actions. Window-specific actions are prefixed with the “win.” prefix and application-wide actions are prefixed with the “app.” prefix. Actions must be addressed with the prefixed name when referring to them from a gio.menu_model.MenuModel.

Note that widgets that are placed inside a gtk.application_window.ApplicationWindow can also activate these actions, if they implement the gtk.actionable.Actionable interface.

The settings property@Gtk.Settings:gtk-shell-shows-app-menu and property@Gtk.Settings:gtk-shell-shows-menubar tell GTK whether the desktop environment is showing the application menu and menubar models outside the application as part of the desktop shell. For instance, on OS X, both menus will be displayed remotely; on Windows neither will be.

If the desktop environment does not display the menubar, then gtk.application_window.ApplicationWindow will automatically show a menubar for it. This behaviour can be overridden with the property@Gtk.ApplicationWindow:show-menubar property. If the desktop environment does not display the application menu, then it will automatically be included in the menubar or in the windows client-side decorations.

See gtk.popover_menu.PopoverMenu for information about the XML language used by gtk.builder.Builder for menu models.

See also: gtk.application.Application.setMenubar.

A GtkApplicationWindow with a menubar

The code sample below shows how to set up a gtk.application_window.ApplicationWindow with a menu bar defined on the gtk.application.Application:

GtkApplication *app = gtk_application_new ("org.gtk.test", 0);

GtkBuilder *builder = gtk_builder_new_from_string (
    "<interface>"
    "  <menu id='menubar'>"
    "    <submenu>"
    "      <attribute name='label' translatable='yes'>_Edit</attribute>"
    "      <item>"
    "        <attribute name='label' translatable='yes'>_Copy</attribute>"
    "        <attribute name='action'>win.copy</attribute>"
    "      </item>"
    "      <item>"
    "        <attribute name='label' translatable='yes'>_Paste</attribute>"
    "        <attribute name='action'>win.paste</attribute>"
    "      </item>"
    "    </submenu>"
    "  </menu>"
    "</interface>",
    -1);

GMenuModel *menubar = G_MENU_MODEL (gtk_builder_get_object (builder, "menubar"));
gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
g_object_unref (builder);

// ...

GtkWidget *window = gtk_application_window_new (app);

Constructors

this
this(gtk.application.Application application)

Creates a new gtk.application_window.ApplicationWindow.

Members

Functions

getHelpOverlay
gtk.shortcuts_window.ShortcutsWindow getHelpOverlay()

Gets the gtk.shortcuts_window.ShortcutsWindow that is associated with window.

getId
uint getId()

Returns the unique ID of the window.

getShowMenubar
bool getShowMenubar()

Returns whether the window will display a menubar for the app menu and menubar as needed.

setHelpOverlay
void setHelpOverlay(gtk.shortcuts_window.ShortcutsWindow helpOverlay)

Associates a shortcuts window with the application window.

setShowMenubar
void setShowMenubar(bool showMenubar)

Sets whether the window will display a menubar for the app menu and menubar as needed.

Mixed In Members

From mixin ActionGroupT!()

actionAdded
void actionAdded(string actionName)

Emits the #GActionGroup::action-added signal on action_group.

actionEnabledChanged
void actionEnabledChanged(string actionName, bool enabled)

Emits the #GActionGroup::action-enabled-changed signal on action_group.

actionRemoved
void actionRemoved(string actionName)

Emits the #GActionGroup::action-removed signal on action_group.

actionStateChanged
void actionStateChanged(string actionName, glib.variant.VariantG state)

Emits the #GActionGroup::action-state-changed signal on action_group.

activateAction
void activateAction(string actionName, glib.variant.VariantG parameter)

Activate the named action within action_group.

changeActionState
void changeActionState(string actionName, glib.variant.VariantG value)

Request for the state of the named action within action_group to be changed to value.

getActionEnabled
bool getActionEnabled(string actionName)

Checks if the named action within action_group is currently enabled.

getActionParameterType
glib.variant_type.VariantType getActionParameterType(string actionName)

Queries the type of the parameter that must be given when activating the named action within action_group.

getActionState
glib.variant.VariantG getActionState(string actionName)

Queries the current state of the named action within action_group.

getActionStateHint
glib.variant.VariantG getActionStateHint(string actionName)

Requests a hint about the valid range of values for the state of the named action within action_group.

getActionStateType
glib.variant_type.VariantType getActionStateType(string actionName)

Queries the type of the state of the named action within action_group.

hasAction
bool hasAction(string actionName)

Checks if the named action exists within action_group.

listActions
string[] listActions()

Lists the actions contained within action_group.

queryAction
bool queryAction(string actionName, bool enabled, glib.variant_type.VariantType parameterType, glib.variant_type.VariantType stateType, glib.variant.VariantG stateHint, glib.variant.VariantG state)

Queries all aspects of the named action within an action_group.

connectActionAdded
ulong connectActionAdded(string detail, T callback, Flag!"After" after)

Connect to ActionAdded signal.

connectActionEnabledChanged
ulong connectActionEnabledChanged(string detail, T callback, Flag!"After" after)

Connect to ActionEnabledChanged signal.

connectActionRemoved
ulong connectActionRemoved(string detail, T callback, Flag!"After" after)

Connect to ActionRemoved signal.

connectActionStateChanged
ulong connectActionStateChanged(string detail, T callback, Flag!"After" after)

Connect to ActionStateChanged signal.

From mixin ActionMapT!()

addAction
void addAction(gio.action.Action action)

Adds an action to the action_map.

lookupAction
gio.action.Action lookupAction(string actionName)

Looks up the action with the name action_name in action_map.

removeAction
void removeAction(string actionName)

Removes the named action from the action map.

Inherited Members

From Window

getDefaultIconName
string getDefaultIconName()

Returns the fallback icon name for windows.

getToplevels
gio.list_model.ListModel getToplevels()

Returns a list of all existing toplevel windows.

listToplevels
gtk.widget.Widget[] listToplevels()

Returns a list of all existing toplevel windows.

setAutoStartupNotification
void setAutoStartupNotification(bool setting)

Sets whether the window should request startup notification.

setDefaultIconName
void setDefaultIconName(string name)

Sets an icon to be used as fallback.

setInteractiveDebugging
void setInteractiveDebugging(bool enable)

Opens or closes the interactive debugger.

close
void close()

Requests that the window is closed.

destroy
void destroy()

Drop the internal reference GTK holds on toplevel windows.

fullscreen
void fullscreen()

Asks to place window in the fullscreen state.

fullscreenOnMonitor
void fullscreenOnMonitor(gdk.monitor.MonitorG monitor)

Asks to place window in the fullscreen state on the given monitor.

getApplication
gtk.application.Application getApplication()

Gets the gtk.application.Application associated with the window.

getChild
gtk.widget.Widget getChild()

Gets the child widget of window.

getDecorated
bool getDecorated()

Returns whether the window has been set to have decorations.

getDefaultSize
void getDefaultSize(int width, int height)

Gets the default size of the window.

getDefaultWidget
gtk.widget.Widget getDefaultWidget()

Returns the default widget for window.

getDeletable
bool getDeletable()

Returns whether the window has been set to have a close button.

getDestroyWithParent
bool getDestroyWithParent()

Returns whether the window will be destroyed with its transient parent.

getFocus
gtk.widget.Widget getFocus()

Retrieves the current focused widget within the window.

getFocusVisible
bool getFocusVisible()

Gets whether “focus rectangles” are supposed to be visible.

getGroup
gtk.window_group.WindowGroup getGroup()

Returns the group for window.

getHandleMenubarAccel
bool getHandleMenubarAccel()

Returns whether this window reacts to F10 key presses by activating a menubar it contains.

getHideOnClose
bool getHideOnClose()

Returns whether the window will be hidden when the close button is clicked.

getIconName
string getIconName()

Returns the name of the themed icon for the window.

getMnemonicsVisible
bool getMnemonicsVisible()

Gets whether mnemonics are supposed to be visible.

getModal
bool getModal()

Returns whether the window is modal.

getResizable
bool getResizable()

Gets the value set by gtk.window.Window.setResizable.

getTitle
string getTitle()

Retrieves the title of the window.

getTitlebar
gtk.widget.Widget getTitlebar()

Returns the custom titlebar that has been set with gtk.window.Window.setTitlebar.

getTransientFor
gtk.window.Window getTransientFor()

Fetches the transient parent for this window.

hasGroup
bool hasGroup()

Returns whether window has an explicit window group.

isActive
bool isActive()

Returns whether the window is part of the current active toplevel.

isFullscreen
bool isFullscreen()

Retrieves the current fullscreen state of window.

isMaximized
bool isMaximized()

Retrieves the current maximized state of window.

isSuspended
bool isSuspended()

Retrieves the current suspended state of window.

maximize
void maximize()

Asks to maximize window, so that it fills the screen.

minimize
void minimize()

Asks to minimize the specified window.

present
void present()

Presents a window to the user.

presentWithTime
void presentWithTime(uint timestamp)

Presents a window to the user in response to an user interaction.

setApplication
void setApplication(gtk.application.Application application)

Sets or unsets the gtk.application.Application associated with the window.

setChild
void setChild(gtk.widget.Widget child)

Sets the child widget of window.

setDecorated
void setDecorated(bool setting)

Sets whether the window should be decorated.

setDefaultSize
void setDefaultSize(int width, int height)

Sets the default size of a window.

setDefaultWidget
void setDefaultWidget(gtk.widget.Widget defaultWidget)

Sets the default widget.

setDeletable
void setDeletable(bool setting)

Sets whether the window should be deletable.

setDestroyWithParent
void setDestroyWithParent(bool setting)

If setting is true, then destroying the transient parent of window will also destroy window itself.

setDisplay
void setDisplay(gdk.display.Display display)

Sets the gdk.display.Display where the window is displayed.

setFocus
void setFocus(gtk.widget.Widget focus)

Sets the focus widget.

setFocusVisible
void setFocusVisible(bool setting)

Sets whether “focus rectangles” are supposed to be visible.

setHandleMenubarAccel
void setHandleMenubarAccel(bool handleMenubarAccel)

Sets whether this window should react to F10 key presses by activating a menubar it contains.

setHideOnClose
void setHideOnClose(bool setting)

If setting is true, then clicking the close button on the window will not destroy it, but only hide it.

setIconName
void setIconName(string name)

Sets the icon for the window from a named themed icon.

setMnemonicsVisible
void setMnemonicsVisible(bool setting)

Sets whether mnemonics are supposed to be visible.

setModal
void setModal(bool modal)

Sets a window modal or non-modal.

setResizable
void setResizable(bool resizable)

Sets whether the user can resize a window.

setStartupId
void setStartupId(string startupId)

Sets the startup notification ID.

setTitle
void setTitle(string title)

Sets the title of the gtk.window.Window.

setTitlebar
void setTitlebar(gtk.widget.Widget titlebar)

Sets a custom titlebar for window.

setTransientFor
void setTransientFor(gtk.window.Window parent)

Dialog windows should be set transient for the main application window they were spawned from. This allows window managers to e.g. keep the dialog on top of the main window, or center the dialog over the main window. gtk.dialog.Dialog.newWithButtons and other convenience functions in GTK will sometimes call gtk.window.Window.setTransientFor on your behalf.

unfullscreen
void unfullscreen()

Asks to remove the fullscreen state for window, and return to its previous state.

unmaximize
void unmaximize()

Asks to unmaximize window.

unminimize
void unminimize()

Asks to unminimize the specified window.

connectActivateDefault
ulong connectActivateDefault(T callback, Flag!"After" after)

Connect to ActivateDefault signal.

connectActivateFocus
ulong connectActivateFocus(T callback, Flag!"After" after)

Connect to ActivateFocus signal.

connectCloseRequest
ulong connectCloseRequest(T callback, Flag!"After" after)

Connect to CloseRequest signal.

connectEnableDebugging
ulong connectEnableDebugging(T callback, Flag!"After" after)

Connect to EnableDebugging signal.

connectKeysChanged
ulong connectKeysChanged(T callback, Flag!"After" after)

Connect to KeysChanged signal.

From ActionGroup

actionAdded
void actionAdded(string actionName)

Emits the #GActionGroup::action-added signal on action_group.

actionEnabledChanged
void actionEnabledChanged(string actionName, bool enabled)

Emits the #GActionGroup::action-enabled-changed signal on action_group.

actionRemoved
void actionRemoved(string actionName)

Emits the #GActionGroup::action-removed signal on action_group.

actionStateChanged
void actionStateChanged(string actionName, glib.variant.VariantG state)

Emits the #GActionGroup::action-state-changed signal on action_group.

activateAction
void activateAction(string actionName, glib.variant.VariantG parameter)

Activate the named action within action_group.

changeActionState
void changeActionState(string actionName, glib.variant.VariantG value)

Request for the state of the named action within action_group to be changed to value.

getActionEnabled
bool getActionEnabled(string actionName)

Checks if the named action within action_group is currently enabled.

getActionParameterType
glib.variant_type.VariantType getActionParameterType(string actionName)

Queries the type of the parameter that must be given when activating the named action within action_group.

getActionState
glib.variant.VariantG getActionState(string actionName)

Queries the current state of the named action within action_group.

getActionStateHint
glib.variant.VariantG getActionStateHint(string actionName)

Requests a hint about the valid range of values for the state of the named action within action_group.

getActionStateType
glib.variant_type.VariantType getActionStateType(string actionName)

Queries the type of the state of the named action within action_group.

hasAction
bool hasAction(string actionName)

Checks if the named action exists within action_group.

listActions
string[] listActions()

Lists the actions contained within action_group.

queryAction
bool queryAction(string actionName, bool enabled, glib.variant_type.VariantType parameterType, glib.variant_type.VariantType stateType, glib.variant.VariantG stateHint, glib.variant.VariantG state)

Queries all aspects of the named action within an action_group.

connectActionAdded
ulong connectActionAdded(string detail, T callback, Flag!"After" after)

Connect to ActionAdded signal.

connectActionEnabledChanged
ulong connectActionEnabledChanged(string detail, T callback, Flag!"After" after)

Connect to ActionEnabledChanged signal.

connectActionRemoved
ulong connectActionRemoved(string detail, T callback, Flag!"After" after)

Connect to ActionRemoved signal.

connectActionStateChanged
ulong connectActionStateChanged(string detail, T callback, Flag!"After" after)

Connect to ActionStateChanged signal.

From ActionMap

addAction
void addAction(gio.action.Action action)

Adds an action to the action_map.

lookupAction
gio.action.Action lookupAction(string actionName)

Looks up the action with the name action_name in action_map.

removeAction
void removeAction(string actionName)

Removes the named action from the action map.