Class
Gtk.Application
Description [src]
class Gtk.Application : Gio.Application {
parent_instance: GApplication
}
GtkApplication
is a high-level API for writing applications.
It supports many aspects of writing a GTK application in a convenient fashion, without enforcing a one-size-fits-all model.
Currently, GtkApplication
handles GTK initialization, application
uniqueness, session management, provides some basic scriptability and
desktop shell integration by exporting actions and menus and manages a
list of toplevel windows whose life-cycle is automatically tied to the
life-cycle of your application.
While GtkApplication
works fine with plain GtkWindow
s, it is
recommended to use it together with GtkApplicationWindow
.
Automatic resources
GtkApplication
will automatically load menus from the GtkBuilder
resource located at “gtk/menus.ui”, relative to the application’s
resource base path (see g_application_set_resource_base_path()
).
The menu with the ID “menubar” is taken as the application’s
menubar. Additional menus (most interesting submenus) can be named
and accessed via gtk_application_get_menu_by_id()
which allows for
dynamic population of a part of the menu structure.
It is also possible to provide the menubar manually using
gtk_application_set_menubar()
.
GtkApplication
will also automatically setup an icon search path for
the default icon theme by appending “icons” to the resource base
path. This allows your application to easily store its icons as
resources. See gtk_icon_theme_add_resource_path()
for more information.
If there is a resource located at “gtk/help-overlay.ui” which
defines a GtkShortcutsWindow
with ID “help_overlay” then
GtkApplication
associates an instance of this shortcuts window with
each GtkApplicationWindow
and sets up the keyboard accelerator
Control+? to open it. To create a menu item that
displays the shortcuts window, associate the item with the action
win.show-help-overlay
.
A simple application
A simple example is available in the GTK source code repository
GtkApplication
optionally registers with a session manager of the
users session (if you set the GtkApplication:register-session
property) and offers various functionality related to the session life-cycle.
An application can block various ways to end the session with
the gtk_application_inhibit()
function. Typical use cases for
this kind of inhibiting are long-running, uninterruptible operations,
such as burning a CD or performing a disk backup. The session
manager may not honor the inhibitor, but it can be expected to
inform the user about the negative consequences of ending the
session while inhibitors are present.
See Also
HowDoI: Using GtkApplication, Getting Started with GTK: Basics
Constructors
gtk_application_new
Creates a new GtkApplication
instance.
Instance methods
gtk_application_add_window
Adds a window to application
.
gtk_application_get_accels_for_action
Gets the accelerators that are currently associated with the given action.
gtk_application_get_actions_for_accel
Returns the list of actions (possibly empty) that accel
maps to.
gtk_application_get_active_window
Gets the “active” window for the application.
gtk_application_get_menu_by_id
Gets a menu from automatically loaded resources.
gtk_application_get_menubar
Returns the menu model that has been set with
gtk_application_set_menubar()
.
gtk_application_get_window_by_id
Returns the GtkApplicationWindow
with the given ID.
gtk_application_get_windows
Gets a list of the GtkWindow
instances associated with application
.
gtk_application_inhibit
Inform the session manager that certain types of actions should be inhibited.
gtk_application_list_action_descriptions
Lists the detailed action names which have associated accelerators.
gtk_application_remove_window
Remove a window from application
.
gtk_application_set_accels_for_action
Sets zero or more keyboard accelerators that will trigger the given action.
gtk_application_set_menubar
Sets or unsets the menubar for windows of application
.
gtk_application_uninhibit
Removes an inhibitor that has been previously established.
Properties
Gtk.Application:active-window
The currently focused window of the application.
Gtk.Application:menubar
The GMenuModel
to be used for the application’s menu bar.
Gtk.Application:register-session
Set this property to TRUE
to register with the session manager.
Gtk.Application:screensaver-active
This property is TRUE
if GTK believes that the screensaver is
currently active.
Signals
Gtk.Application::query-end
Emitted when the session manager is about to end the session.
Gtk.Application::window-added
Emitted when a GtkWindow
is added to application
through
gtk_application_add_window()
.
Gtk.Application::window-removed
Emitted when a GtkWindow
is removed from application
.
Class structure
struct GtkApplicationClass {
GApplicationClass parent_class;
void (* window_added) (
GtkApplication* application,
GtkWindow* window
);
void (* window_removed) (
GtkApplication* application,
GtkWindow* window
);
}
Class members
parent_class |
|
The parent class. |
|
window_added |
|
No description available. | |
window_removed |
|
No description available. |