Class ApplicationWindow
- All Implemented Interfaces:
Proxy
,ActionGroup
,ActionMap
,Accessible
,Buildable
,ConstraintTarget
,Native
,Root
,ShortcutManager
- Direct Known Subclasses:
ApplicationWindow
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 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
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, then
GtkApplicationWindow
will automatically show a menubar for it.
This behaviour can be overridden with the
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 PopoverMenu
for information about the XML language
used by GtkBuilder
for menu models.
See also: Application.setMenubar(org.gnome.gio.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
Modifier and TypeClassDescriptionstatic class
static class
ApplicationWindow.Builder<B extends ApplicationWindow.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.gnome.gtk.Window
Window.ActivateDefaultCallback, Window.ActivateFocusCallback, Window.CloseRequestCallback, Window.EnableDebuggingCallback, Window.KeysChangedCallback, Window.WindowClass
Nested classes/interfaces inherited from class org.gnome.gtk.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.WidgetClass, Widget.WidgetImpl
Nested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClass
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
Nested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.AccessibleImpl, Accessible.AccessibleInterface
Nested classes/interfaces inherited from interface org.gnome.gio.ActionGroup
ActionGroup.ActionAddedCallback, ActionGroup.ActionEnabledChangedCallback, ActionGroup.ActionGroupImpl, ActionGroup.ActionGroupInterface, ActionGroup.ActionRemovedCallback, ActionGroup.ActionStateChangedCallback
Nested classes/interfaces inherited from interface org.gnome.gio.ActionMap
ActionMap.ActionMapImpl, ActionMap.ActionMapInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.BuildableIface, Buildable.BuildableImpl
Nested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTargetImpl, ConstraintTarget.ConstraintTargetInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Native
Native.NativeImpl, Native.NativeInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Root
Root.RootImpl, Root.RootInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.ShortcutManager
ShortcutManager.ShortcutManagerImpl, ShortcutManager.ShortcutManagerInterface
-
Constructor Summary
ConstructorDescriptionApplicationWindow
(MemorySegment address) Create a ApplicationWindow proxy instance for the provided memory address.ApplicationWindow
(Application application) Creates a newGtkApplicationWindow
. -
Method Summary
Modifier and TypeMethodDescriptionprotected ApplicationWindow
asParent()
Returns this instance as if it were its parent type.static ApplicationWindow.Builder
<? extends ApplicationWindow.Builder> builder()
AApplicationWindow.Builder
object constructs aApplicationWindow
with the specified properties.Gets theGtkShortcutsWindow
that is associated with this ApplicationWindow.static MemoryLayout
The memory layout of the native struct.boolean
Returns whether the window will display a menubar for the app menu and menubar as needed.static Type
getType()
Get the GType of the ApplicationWindow classint
Returns the unique ID of the window.void
setHelpOverlay
(@Nullable ShortcutsWindow helpOverlay) Associates a shortcuts window with the application window.void
setShowMenubar
(boolean showMenubar) Sets whether the window will display a menubar for the app menu and menubar as needed.Methods inherited from class org.gnome.gtk.Window
activateDefault, activateFocus, close, closeRequest, destroy, emitActivateDefault, emitActivateFocus, emitCloseRequest, emitEnableDebugging, emitKeysChanged, enableDebugging, fullscreen, fullscreenOnMonitor, getApplication, getChild, getDecorated, getDefaultIconName, getDefaultSize, getDefaultWidget, getDeletable, getDestroyWithParent, getFocus, getFocusVisible, 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, setHandleMenubarAccel, setHideOnClose, setIconName, setInteractiveDebugging, setMnemonicsVisible, setModal, setResizable, setStartupId, setTitle, setTitlebar, setTransientFor, unfullscreen, unmaximize, unminimize
Methods inherited from class org.gnome.gtk.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, 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, 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, unsetStateFlags
Methods inherited from class org.gnome.gobject.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, 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, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gio.ActionGroup
actionAdded, actionEnabledChanged, actionRemoved, actionStateChanged, activateAction, changeActionState, emitActionAdded, emitActionEnabledChanged, emitActionRemoved, emitActionStateChanged, getActionEnabled, getActionParameterType, getActionState, getActionStateHint, getActionStateType, hasAction, listActions, onActionAdded, onActionEnabledChanged, onActionRemoved, onActionStateChanged, queryAction
Methods inherited from interface org.gnome.gio.ActionMap
addAction, addActionEntries, lookupAction, removeAction, removeActionEntries
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
Methods inherited from interface org.gnome.gtk.Native
getRenderer, getSurface, getSurfaceTransform, realize, unrealize
Methods inherited from interface org.gnome.gtk.Root
getDisplay, getFocus, setFocus
-
Constructor Details
-
ApplicationWindow
Create a ApplicationWindow proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
ApplicationWindow
Creates a newGtkApplicationWindow
.- Parameters:
application
- aGtkApplication
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
getHelpOverlay
Gets theGtkShortcutsWindow
that is associated with this ApplicationWindow.- Returns:
- the help overlay associated with this ApplicationWindow
-
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 this ApplicationWindow, or
0
if the window has not yet been added to aGtkApplication
-
getShowMenubar
public boolean getShowMenubar()Returns whether the window will display a menubar for the app menu and menubar as needed.- Returns:
true
if this ApplicationWindow will display a menubar when needed
-
setHelpOverlay
Associates a shortcuts window with the application window.Additionally, sets up an action with the name
win.show-help-overlay
to present it.this ApplicationWindow takes responsibility for destroying
helpOverlay
.- Parameters:
helpOverlay
- aGtkShortcutsWindow
-
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.Builder
object constructs aApplicationWindow
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withApplicationWindow.Builder.build()
.
-