Gtk.ApplicationWindow
Description: Reference for Gtk.ApplicationWindow

### Class

# GtkApplicationWindow

#### Description [src]

    class Gtk.ApplicationWindow : Gtk.Window {
      parent_instance: GtkWindow
    }

`GtkApplicationWindow` is a `GtkWindow` subclass that integrates with `GtkApplication`.

Notably, `GtkApplicationWindow` can handle an application menubar.

This class implements the `GActionGroup` and `GActionMap` interfaces, to let you add window-specific actions that will be exported by the associated `GtkApplication`, 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 `GMenuModel`.

Note that widgets that are placed inside a `GtkApplicationWindow` can also activate these actions, if they implement the `GtkActionable` interface.

The settings `GtkSettings:gtk-shell-shows-app-menu` and `GtkSettings: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 `GtkApplicationWindow` will automatically show a menubar for it. This behaviour can be overridden with the `GtkApplicationWindow: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 `GtkPopoverMenu` for information about the XML language used by `GtkBuilder` for menu models.

See also: `gtk_application_set_menubar()`.

## A GtkApplicationWindow with a menubar

The code sample below shows how to set up a `GtkApplicationWindow` with a menu bar defined on the `GtkApplication`:

    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);

#### Ancestors

- GtkWindow
- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- GActionGroup
- GActionMap
- GtkAccessible
- GtkBuildable
- GtkConstraintTarget
- GtkNative
- GtkRoot
- GtkShortcutManager

#### Constructors

###### gtk_application_window_new

Creates a new `GtkApplicationWindow`.

#### Instance methods

###### gtk_application_window_get_help_overlay

Gets the `GtkShortcutsWindow` that is associated with `window`.

###### gtk_application_window_get_id

Returns the unique ID of the window.

###### gtk_application_window_get_show_menubar

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

###### gtk_application_window_set_help_overlay

Associates a shortcuts window with the application window.

###### gtk_application_window_set_show_menubar

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

##### Methods inherited from GtkWindow (54)

###### gtk_window_close

Requests that the window is closed.

###### gtk_window_destroy

Drop the internal reference GTK holds on toplevel windows.

###### gtk_window_fullscreen

Asks to place `window` in the fullscreen state.

###### gtk_window_fullscreen_on_monitor

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

###### gtk_window_get_application

Gets the `GtkApplication` associated with the window.

###### gtk_window_get_child

Gets the child widget of `window`.

###### gtk_window_get_decorated

Returns whether the window has been set to have decorations.

###### gtk_window_get_default_size

Gets the default size of the window.

###### gtk_window_get_default_widget

Returns the default widget for `window`.

###### gtk_window_get_deletable

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

###### gtk_window_get_destroy_with_parent

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

###### gtk_window_get_focus

Retrieves the current focused widget within the window.

###### gtk_window_get_focus_visible

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

###### gtk_window_get_group

Returns the group for `window`.

###### gtk_window_get_handle_menubar_accel

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

Available since: 4.2

###### gtk_window_get_hide_on_close

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

###### gtk_window_get_icon_name

Returns the name of the themed icon for the window.

###### gtk_window_get_mnemonics_visible

Gets whether mnemonics are supposed to be visible.

###### gtk_window_get_modal

Returns whether the window is modal.

###### gtk_window_get_resizable

Gets the value set by `gtk_window_set_resizable()`.

###### gtk_window_get_title

Retrieves the title of the window.

###### gtk_window_get_titlebar

Returns the custom titlebar that has been set with `gtk_window_set_titlebar()`.

###### gtk_window_get_transient_for

Fetches the transient parent for this window.

##### Methods inherited from GtkWidget (159)

###### gtk_widget_action_set_enabled

Enable or disable an action installed with `gtk_widget_class_install_action()`.

###### gtk_widget_activate

For widgets that can be “activated” (buttons, menu items, etc.), this function activates them.

###### gtk_widget_activate_action

Looks up the action in the action groups associated with `widget` and its ancestors, and activates it.

###### gtk_widget_activate_action_variant

Looks up the action in the action groups associated with `widget` and its ancestors, and activates it.

###### gtk_widget_activate_default

Activates the `default.activate` action from `widget`.

###### gtk_widget_add_controller

Adds `controller` to `widget` so that it will receive events.

###### gtk_widget_add_css_class

Adds a style class to `widget`.

###### gtk_widget_add_mnemonic_label

Adds a widget to the list of mnemonic labels for this widget.

###### gtk_widget_add_tick_callback

Queues an animation frame update and adds a callback to be called before each frame.

###### gtk_widget_allocate

This function is only used by `GtkWidget` subclasses, to assign a size, position and (optionally) baseline to their child widgets.

###### gtk_widget_child_focus

Called by widgets as the user moves around the window using keyboard shortcuts.

###### gtk_widget_compute_bounds

Computes the bounds for `widget` in the coordinate space of `target`.

###### gtk_widget_compute_expand

Computes whether a container should give this widget extra space when possible.

###### gtk_widget_compute_point

Translates the given `point` in `widget`‘s coordinates to coordinates relative to `target`’s coordinate system.

###### gtk_widget_compute_transform

Computes a matrix suitable to describe a transformation from `widget`‘s coordinate system into `target`‘s coordinate system.

###### gtk_widget_contains

Tests if the point at (`x`, `y`) is contained in `widget`.

###### gtk_widget_create_pango_context

Creates a new `PangoContext` with the appropriate font map, font options, font description, and base direction for drawing text for this widget.

###### gtk_widget_create_pango_layout

Creates a new `PangoLayout` with the appropriate font map, font description, and base direction for drawing text for this widget.

###### gtk_drag_check_threshold

Checks to see if a drag movement has passed the GTK drag threshold.

###### gtk_widget_error_bell

Notifies the user about an input-related error on this widget.

###### gtk_widget_get_allocated_baseline

Returns the baseline that has currently been allocated to `widget`.

###### gtk_widget_get_allocated_height

Returns the height that has currently been allocated to `widget`.

###### gtk_widget_get_allocated_width

Returns the width that has currently been allocated to `widget`.

##### Methods inherited from GtkAccessible (10)

###### gtk_accessible_get_accessible_role

Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`.

###### gtk_accessible_reset_property

Resets the accessible `property` to its default value.

###### gtk_accessible_reset_relation

Resets the accessible `relation` to its default value.

###### gtk_accessible_reset_state

Resets the accessible `state` to its default value.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states. See the `GtkAccessibleState` documentation for the value types of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

##### Methods inherited from GtkNative (5)

###### gtk_native_get_renderer

Returns the renderer that is used for this `GtkNative`.

###### gtk_native_get_surface

Returns the surface of this `GtkNative`.

###### gtk_native_get_surface_transform

Retrieves the surface transform of `self`.

###### gtk_native_realize

Realizes a `GtkNative`.

###### gtk_native_unrealize

Unrealizes a `GtkNative`.

##### Methods inherited from GtkRoot (3)

###### gtk_root_get_display

Returns the display that this `GtkRoot` is on.

###### gtk_root_get_focus

Retrieves the current focused widget within the root.

###### gtk_root_set_focus

If `focus` is not the current focus widget, and is focusable, sets it as the focus widget for the root.

#### Properties

###### Gtk.ApplicationWindow:show-menubar

If this property is `TRUE`, the window will display a menubar unless it is shown by the desktop shell.

##### Properties inherited from GtkWindow (23)

###### Gtk.Window:application

The `GtkApplication` associated with the window.

###### Gtk.Window:child

The child widget.

###### Gtk.Window:decorated

Whether the window should have a frame (also known as decorations).

###### Gtk.Window:default-height

The default height of the window.

###### Gtk.Window:default-widget

The default widget.

###### Gtk.Window:default-width

The default width of the window.

###### Gtk.Window:deletable

Whether the window frame should have a close button.

###### Gtk.Window:destroy-with-parent

If this window should be destroyed when the parent is destroyed.

###### Gtk.Window:display

The display that will display this window.

###### Gtk.Window:focus-visible

Whether ‘focus rectangles’ are currently visible in this window.

###### Gtk.Window:focus-widget

The focus widget.

###### Gtk.Window:fullscreened

Whether the window is fullscreen.

###### Gtk.Window:handle-menubar-accel

Whether the window frame should handle F10 for activating menubars.

Available since: 4.2

###### Gtk.Window:hide-on-close

If this window should be hidden when the users clicks the close button.

###### Gtk.Window:icon-name

Specifies the name of the themed icon to use as the window icon.

###### Gtk.Window:is-active

Whether the toplevel is the currently active window.

###### Gtk.Window:maximized

Whether the window is maximized.

###### Gtk.Window:mnemonics-visible

Whether mnemonics are currently visible in this window.

###### Gtk.Window:modal

If `TRUE`, the window is modal.

###### Gtk.Window:resizable

If `TRUE`, users can resize the window.

###### Gtk.Window:startup-id

A write-only property for setting window’s startup notification identifier.

###### Gtk.Window:title

The title of the window.

###### Gtk.Window:transient-for

The transient parent of the window.

##### Properties inherited from GtkWidget (34)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on `widget`.

###### Gtk.Widget:height-request

Override for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Override for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

#### Class structure

    struct GtkApplicationWindowClass {
      GtkWindowClass parent_class;

    }

###### Class members

`parent_class` |
    GtkWindowClass
| The parent class.