GtkApplicationWindow
GtkApplicationWindow — Подкласс GtkWindow с поддержкой GtkApplication
Функции
Свойства
| gboolean | show-menubar | Чтение/Запись/Создание |
Типы и значения
| struct | GtkApplicationWindow |
| struct | GtkApplicationWindowClass |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkWindow ╰── GtkApplicationWindow
Реализованные интерфейсы
GtkApplicationWindow реализует AtkImplementorIface, GtkBuildable, GActionGroup и GActionMap.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkApplicationWindow — это подкласс GtkWindow, который предлагает некоторые дополнительные возможности для лучшей интеграции с возможностями GtkApplication. В частности, он может обрабатывать как приложение меню, так и строку меню. См. gtk_application_set_app_menu() и gtk_application_set_menubar().
Этот класс реализует интерфейсы GActionGroup и GActionMap, чтобы позволить вам добавлять действия, специфичные для окна, которые будут экспортированы связанным GtkApplication, вместе с действиями приложения. Действия, специфичные для окна, имеют префикс «win.», а действия приложения — префикс «app.». При обращении к ним из GMenuModel необходимо указывать полное имя с префиксом.
Обратите внимание, что виджеты, помещённые внутри GtkApplicationWindow, также могут активировать эти действия, если они реализуют интерфейс GtkActionable.
Как и в случае с GtkApplication, блокировка GDK будет получена при обработке действий, поступающих из других процессов, и поэтому должна быть удерживаться при активации действий локально (если включены потоки GDK).
Настройки «gtk-shell-shows-app-menu» и «gtk-shell-shows-menubar» сообщают GTK+, отображает ли среда рабочего стола меню приложения и строку меню за пределами приложения в качестве части оболочки рабочего стола. Например, на OS X оба меню будут отображаться удалённо; на Windows — нет. gnome-shell (начиная с версии 3.4) будет отображать меню приложения, но не строку меню.
Если среда рабочего стола не отображает строку меню, то GtkApplicationWindow автоматически отобразит GtkMenuBar. Это поведение можно переопределить с помощью свойства «show-menubar». Если среда рабочего стола не отображает меню приложения, то оно автоматически будет включено в строку меню или в декорации окна.
GtkApplicationWindow со строкой меню
app =gtk_application_new(); builder =gtk_builder_new_from_string( "<interface>" " <menu id='menubar'>" " <submenu label='_Edit'>" " <item label='_Copy' action='win.copy'/>" " <item label='_Paste' action='win.paste'/>" " </submenu>" " </menu>" "</interface>", -1); menubar =G_MENU_MODEL(gtk_builder_get_object(builder, "menubar")); gtk_application_set_menubar(G_APPLICATION(app), menubar); g_object_unref(builder); ... window =gtk_application_window_new(app);
Обработка обратного вызова самостоятельно
Формат XML, понятный GtkBuilder для GMenuModel, состоит из верхнего <menu> элемента, который содержит один или несколько <item> элементов. Каждый <item> элемент содержит <attribute> и <link> элементы с обязательным атрибутом name. <link> элементы имеют тот же модель содержания, что и <menu>. Вместо <link name="submenu> или <link name="section">, вы можете использовать <submenu> или <section> элементы.
Значения атрибутов можно перевести с помощью gettext, как и другое содержимое GtkBuilder. <attribute> элементы могут быть помечены для перевода с помощью атрибута translatable="yes". Также можно указать контекст сообщения и комментарии переводчика, используя атрибуты context и comments. Для этого GtkBuilder должен был получить домен gettext.
При построении пунктов меню используются следующие атрибуты:
"label": отображаемый текст
"action": имя действия для запуска (с префиксом)
"target": параметр для активации действия
"icon" и "verb-icon": имена иконок
"submenu-action": имя действия для определения возможности открытия подменю
"hidden-when": строка для определения скрытия. Возможные значения: "action-disabled", "action-missing", "macos-menubar".
При построении разделов используются следующие атрибуты:
"label": текст для заголовка раздела
"display-hint": строка для определения специального форматирования. Возможные значения: "horizontal-buttons".
При построении подменю используются следующие атрибуты:
"label": отображаемый текст
"icon": имя иконки
Функции
gtk_application_window_new ()
GtkWidget *
gtk_application_window_new (GtkApplication *application); Создаёт новый GtkApplicationWindow.
Параметры
application |
Возвращаемое значение
новый созданный GtkApplicationWindow
С: 3.4
gtk_application_window_set_show_menubar ()
void gtk_application_window_set_show_menubar (GtkApplicationWindow *window,gboolean show_menubar);
Устанавливает, будет ли отображаться в окне строка меню для приложения, если необходимо.
Параметры
window | ||
show_menubar | отображать ли строку меню, когда необходимо |
С: 3.4
gtk_application_window_get_show_menubar ()
gboolean
gtk_application_window_get_show_menubar
(GtkApplicationWindow *window); Возвращает, будет ли отображаться в окне строка меню для приложения, если необходимо.
Параметры
window |
Возвращаемое значение
TRUE, если window отобразит строку меню при необходимости
С: 3.4
gtk_application_window_get_id ()
guint
gtk_application_window_get_id (GtkApplicationWindow *window); Возвращает уникальный идентификатор окна. Если окно ещё не добавлено в GtkApplication, возвращает 0.
Параметры
window |
Возвращаемое значение
уникальный идентификатор для window, или 0 если окно ещё не добавлено в GtkApplication
С: 3.6
gtk_application_window_set_help_overlay ()
void gtk_application_window_set_help_overlay (GtkApplicationWindow *window,GtkShortcutsWindow *help_overlay);
Связывает окно подсказок с окном приложения и устанавливает действие с именем win.show-help-overlay для его отображения.
Параметры
window | ||
help_overlay | [nullable] |
С: 3.20
gtk_application_window_get_help_overlay ()
GtkShortcutsWindow *
gtk_application_window_get_help_overlay
(GtkApplicationWindow *window); Получает GtkShortcutsWindow, который был установлен с помощью предыдущего вызова gtk_application_window_set_help_overlay().
Параметры
window |
С: 3.20
Типы и значения
struct GtkApplicationWindow
struct GtkApplicationWindow;
struct GtkApplicationWindowClass
struct GtkApplicationWindowClass {
GtkWindowClass parent_class;
};
Члены
Подробное описание свойств
Свойство “show-menubar”
“show-menubar” gboolean
Если это свойство равно TRUE, окно будет отображать строку меню, включающую меню приложения и строку меню, если они не отображаются оболочкой рабочего стола. См. gtk_application_set_app_menu() и gtk_application_set_menubar().
Если FALSE, окно не будет отображать строку меню, независимо от того, отображает ли оболочка рабочего стола меню или нет.
Флаги: Чтение/Запись/Конструирование
Значение по умолчанию: ИСТИНА
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkApplicationWindow.html