Spec-Zone.ru › GTK 3.22

GtkApplicationWindow

GtkApplicationWindow — Подкласс GtkWindow с поддержкой GtkApplication

Функции

GtkWidget * gtk_application_window_new ()
void gtk_application_window_set_show_menubar ()
gboolean gtk_application_window_get_show_menubar ()
guint gtk_application_window_get_id ()
void gtk_application_window_set_help_overlay ()
GtkShortcutsWindow * gtk_application_window_get_help_overlay ()

Свойства

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".

  • "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, окно не будет отображать строку меню независимо от того, отображаются ли меню оболочкой рабочего стола или нет.

Флаги: Чтение/Запись/Конструирование

Значение по умолчанию: 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.22/GtkApplicationWindow.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API