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 со строкой меню
GtkApplication *app = gtk_application_new ("org.gtk.test", 0);
GtkBuilder *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);
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);Обработка резервного варианта самостоятельно
Формат 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".
"text-direction": строка, используемая для определения GtkTextDirection для использования, когда "display-hint" установлено в "horizontal-buttons". Возможные значения включают "rtl", "ltr" и "none".
При создании подменю используются следующие атрибуты:
"label": отображаемая пользователю строка
"icon": имя отображаемой иконки
Функции
gtk_application_window_new ()
GtkWidget *
gtk_application_window_new (GtkApplication *application); Создаёт новый GtkApplicationWindow.
Параметры
application | приложение GtkApplication |
Возвращаемое значение
новый GtkApplicationWindow
С версии: 3.4
gtk_application_window_set_show_menubar ()
void gtk_application_window_set_show_menubar (GtkApplicationWindow *window,gboolean show_menubar);
Устанавливает, будет ли окно отображать панель меню приложения, если это необходимо.
Параметры
window | окно GtkApplicationWindow | |
show_menubar | отображать ли панель меню, если это необходимо |
С версии: 3.4
gtk_application_window_get_show_menubar ()
gboolean
gtk_application_window_get_show_menubar
(GtkApplicationWindow *window); Возвращает, будет ли окно отображать панель меню приложения, если это необходимо.
Параметры
window | окно GtkApplicationWindow |
Возвращаемое значение
TRUE если window будет отображать панель меню, когда это необходимо
С версии: 3.4
gtk_application_window_get_id ()
guint
gtk_application_window_get_id (GtkApplicationWindow *window); Возвращает уникальный идентификатор окна. Если окно ещё не добавлено в GtkApplication, возвращает 0.
Параметры
window | окно GtkApplicationWindow |
Возвращаемое значение
уникальный идентификатор для 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 .
Параметры
window | окно GtkApplicationWindow | |
help_overlay | окно подсказок GtkShortcutsWindow. | [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 | окно GtkApplicationWindow |
Возвращаемое значение
окно подсказок, связанное с window, или NULL.
[transfer none][nullable]
С версии: 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, окно не будет отображать панель меню независимо от того, отображаются ли меню оболочкой рабочего стола или нет.
Владелец: GtkApplicationWindow
Флаги: Чтение / Запись / Создание
Значение по умолчанию: TRUE
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkApplicationWindow.html