Class ApplicationWindow
- All Implemented Interfaces:
ActionGroup, ActionMap, Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager, Proxy
- Direct Known Subclasses:
ApplicationWindow
A GtkWindow subclass that integrates with GtkApplication.
Notably, GtkApplicationWindow can handle an application menubar.
This class implements the ActionGroup and ActionMap
interfaces, to let you add window-specific actions that will be exported
by the associated 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 menu model.
Note that widgets that are placed inside a GtkApplicationWindow
can also activate these actions, if they implement the
Actionable interface.
The settings Gtk.Settings:gtk-shell-shows-app-menu and
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, it can be shown in
the GtkApplicationWindow by setting the
Gtk.ApplicationWindow:show-menubar property to true. If the
desktop environment does not display the application menu, then it will
automatically be included in the menubar or in the window’s client-side
decorations.
See PopoverMenu for information about the XML language
used by GtkBuilder for menu models.
See also: Application.setMenubar(MenuModel).
A GtkApplicationWindow with a menubar
The code sample below shows how to set up a GtkApplicationWindow
with a menu bar defined on the 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);
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classApplicationWindow.Builder<B extends ApplicationWindow.Builder<B>>Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class Window
Window.ActivateDefaultCallback, Window.ActivateFocusCallback, Window.CloseRequestCallback, Window.EnableDebuggingCallback, Window.KeysChangedCallback, Window.WindowClassNested classes/interfaces inherited from class Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.Widget$Impl, Widget.WidgetClassNested classes/interfaces inherited from class InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface Accessible
Accessible.Accessible$Impl, Accessible.AccessibleInterfaceNested classes/interfaces inherited from interface ActionGroup
ActionGroup.ActionAddedCallback, ActionGroup.ActionEnabledChangedCallback, ActionGroup.ActionGroup$Impl, ActionGroup.ActionGroupInterface, ActionGroup.ActionRemovedCallback, ActionGroup.ActionStateChangedCallbackNested classes/interfaces inherited from interface ActionMap
ActionMap.ActionMap$Impl, ActionMap.ActionMapInterfaceNested classes/interfaces inherited from interface Buildable
Buildable.Buildable$Impl, Buildable.BuildableIfaceNested classes/interfaces inherited from interface ConstraintTarget
ConstraintTarget.ConstraintTarget$Impl, ConstraintTarget.ConstraintTargetInterfaceNested classes/interfaces inherited from interface Native
Native.Native$Impl, Native.NativeInterfaceNested classes/interfaces inherited from interface Root
Root.Root$Impl, Root.RootInterfaceNested classes/interfaces inherited from interface ShortcutManager
ShortcutManager.ShortcutManager$Impl, ShortcutManager.ShortcutManagerInterface -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new ApplicationWindow.ApplicationWindow(MemorySegment address) Create a ApplicationWindow instance for the provided memory address.ApplicationWindow(Application application) Creates a newGtkApplicationWindow. -
Method Summary
Modifier and TypeMethodDescriptionprotected ApplicationWindowasParent()Return this instance as if it were its parent type.static ApplicationWindow.Builder<? extends ApplicationWindow.Builder> builder()AApplicationWindow.Builderobject constructs aApplicationWindowwith the specified properties.@Nullable ShortcutsWindowDeprecated.static MemoryLayoutThe memory layout of the native struct.booleanReturns whether the window will display a menubar for the app menu and menubar as needed.static @Nullable TypegetType()Get the GType of the ApplicationWindow class.intReturns the unique ID of the window.voidsetHelpOverlay(@Nullable ShortcutsWindow helpOverlay) Deprecated.GtkShortcutsWindowwill be removed in GTK 5voidsetShowMenubar(boolean showMenubar) Sets whether the window will display a menubar for the app menu and menubar as needed.Methods inherited from class Window
activateDefault, activateFocus, close, closeRequest, destroy, emitActivateDefault, emitActivateFocus, emitCloseRequest, emitEnableDebugging, emitKeysChanged, enableDebugging, fullscreen, fullscreenOnMonitor, getApplication, getChild, getDecorated, getDefaultIconName, getDefaultSize, getDefaultWidget, getDeletable, getDestroyWithParent, getFocus, getFocusVisible, getGravity, getGroup, getHandleMenubarAccel, getHideOnClose, getIconName, getMnemonicsVisible, getModal, getResizable, getTitle, getTitlebar, getToplevels, getTransientFor, hasGroup, isActive, isFullscreen, isMaximized, isSuspended, keysChanged, listToplevels, maximize, minimize, onActivateDefault, onActivateFocus, onCloseRequest, onEnableDebugging, onKeysChanged, present, presentWithTime, setApplication, setAutoStartupNotification, setChild, setDecorated, setDefaultIconName, setDefaultSize, setDefaultWidget, setDeletable, setDestroyWithParent, setDisplay, setFocus, setFocusVisible, setGravity, setHandleMenubarAccel, setHideOnClose, setIconName, setInteractiveDebugging, setMnemonicsVisible, setModal, setResizable, setStartupId, setTitle, setTitlebar, setTransientFor, unfullscreen, unmaximize, unminimizeMethods inherited from class Widget
actionSetEnabled, activateActionIfExists, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getLimitEvents, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setLimitEvents, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlagsMethods inherited from class GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newv, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withPropertiesMethods inherited from class TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class ProxyInstance
equals, handle, hashCodeMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Accessible
announce, getAccessibleId, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updatePlatformState, updateProperty, updateRelation, updateStateMethods inherited from interface ActionGroup
actionAdded, actionEnabledChanged, actionRemoved, actionStateChanged, activateAction, changeActionState, emitActionAdded, emitActionEnabledChanged, emitActionRemoved, emitActionStateChanged, getActionEnabled, getActionParameterType, getActionState, getActionStateHint, getActionStateType, hasAction, listActions, onActionAdded, onActionEnabledChanged, onActionRemoved, onActionStateChanged, queryActionMethods inherited from interface ActionMap
addAction, addActionEntries, lookupAction, removeAction, removeActionEntriesMethods inherited from interface Buildable
getBuildableIdMethods inherited from interface Native
getRenderer, getSurface, getSurfaceTransform, realize, unrealizeMethods inherited from interface Root
getDisplay, getFocus, setFocus
-
Constructor Details
-
ApplicationWindow
Create a ApplicationWindow instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
ApplicationWindow
Creates a newGtkApplicationWindow.- Parameters:
application- an application
-
ApplicationWindow
public ApplicationWindow()Create a new ApplicationWindow.
-
-
Method Details
-
getType
Get the GType of the ApplicationWindow class.- Returns:
- the GType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Return this instance as if it were its parent type. Comparable to the Javasuperkeyword, but ensures the parent typeclass is also used in native code. -
getHelpOverlay
Deprecated.GtkShortcutsWindowwill be removed in GTK 5Gets the
GtkShortcutsWindowthat is associated withwindow.- Returns:
- the help overlay associated with the window
-
getWindowId
public int getWindowId()Returns the unique ID of the window.
If the window has not yet been added to a
GtkApplication, returns0.- Returns:
- the unique ID for the window, or
0if the window has not yet been added to an application
-
getShowMenubar
public boolean getShowMenubar()Returns whether the window will display a menubar for the app menu and menubar as needed.- Returns:
- True if the window will display a menubar when needed
-
setHelpOverlay
Deprecated.GtkShortcutsWindowwill be removed in GTK 5Associates a shortcuts window with the application window.
Additionally, sets up an action with the name
win.show-help-overlayto present it.The window takes responsibility for destroying the help overlay.
- Parameters:
helpOverlay- a shortcuts window
-
setShowMenubar
public void setShowMenubar(boolean showMenubar) Sets whether the window will display a menubar for the app menu and menubar as needed.- Parameters:
showMenubar- whether to show a menubar when needed
-
builder
AApplicationWindow.Builderobject constructs aApplicationWindowwith the specified properties. Use the variousset...()methods to set properties, and finish construction withApplicationWindow.Builder.build().- Returns:
- the builder object
-
GtkShortcutsWindowwill be removed in GTK 5