Class ApplicationWindow

All Implemented Interfaces:
PointerInterface
Direct Known Subclasses:
ApplicationWindow

public class ApplicationWindow extends Window
`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 [class@Gtk.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 `GMenuModel`.

Note that widgets that are placed inside a `GtkApplicationWindow`
can also activate these actions, if they implement the
[iface@Gtk.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
`GtkApplicationWindow` 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 [class@Gtk.PopoverMenu] for information about the XML language
used by `GtkBuilder` for menu models.

See also: [method@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 [class@Gtk.Application]:

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

https://docs.gtk.org/gtk4/class.ApplicationWindow.html

  • Constructor Details

    • ApplicationWindow

      public ApplicationWindow(PointerContainer pointer)
    • ApplicationWindow

      public ApplicationWindow(@Nonnull Application application)
      Creates a new `GtkApplicationWindow`.
      Parameters:
      application - a `GtkApplication`
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getHelpOverlay

      public ShortcutsWindow getHelpOverlay()
      Gets the `GtkShortcutsWindow` that is associated with @window.

      See [method@Gtk.ApplicationWindow.set_help_overlay].
      Returns:
      the help overlay associated with @window
    • getId

      public int getId()
      Returns the unique ID of the window.

      If the window has not yet been added to a `GtkApplication`, returns `0`.
      Returns:
      the unique ID for @window, or `0` if the window has not yet been added to a `GtkApplication`
    • getShowMenubar

      public boolean getShowMenubar()
      Returns whether the window will display a menubar for the app menu
      and menubar as needed.
      Returns:
      %TRUE if @window will display a menubar when needed
    • setHelpOverlay

      public void setHelpOverlay(@Nullable ShortcutsWindow help_overlay)
      Associates a shortcuts window with the application window.

      Additionally, sets up an action with the name
      `win.show-help-overlay` to present it.

      @window takes responsibility for destroying @help_overlay.
      Parameters:
      help_overlay - a `GtkShortcutsWindow`
    • setShowMenubar

      public void setShowMenubar(boolean show_menubar)
      Sets whether the window will display a menubar for the app menu
      and menubar as needed.
      Parameters:
      show_menubar - whether to show a menubar when needed
    • asActionGroup

      public ActionGroup asActionGroup()
      Implements interface ActionGroup. Call this to get access to interface functions.
      Returns:
      ActionGroup
    • asActionMap

      public ActionMap asActionMap()
      Implements interface ActionMap. Call this to get access to interface functions.
      Returns:
      ActionMap
    • asAccessible

      public Accessible asAccessible()
      Implements interface Accessible. Call this to get access to interface functions.
      Overrides:
      asAccessible in class Window
      Returns:
      Accessible
    • asBuildable

      public Buildable asBuildable()
      Implements interface Buildable. Call this to get access to interface functions.
      Overrides:
      asBuildable in class Window
      Returns:
      Buildable
    • asConstraintTarget

      public ConstraintTarget asConstraintTarget()
      Implements interface ConstraintTarget. Call this to get access to interface functions.
      Overrides:
      asConstraintTarget in class Window
      Returns:
      ConstraintTarget
    • asNative

      public Native asNative()
      Implements interface Native. Call this to get access to interface functions.
      Overrides:
      asNative in class Window
      Returns:
      Native
    • asRoot

      public Root asRoot()
      Implements interface Root. Call this to get access to interface functions.
      Overrides:
      asRoot in class Window
      Returns:
      Root
    • asShortcutManager

      public ShortcutManager asShortcutManager()
      Implements interface ShortcutManager. Call this to get access to interface functions.
      Overrides:
      asShortcutManager in class Window
      Returns:
      ShortcutManager
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()