Spec-Zone.ru › GTK 4.0

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
            ╰── GtkWindow
                ╰── GtkApplicationWindow

Реализованные интерфейсы

GtkApplicationWindow реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkNative, GtkShortcutManager, GtkRoot, GActionGroup и GActionMap.

Файлы заголовков

#include <gtk/gtk.h>

Описание

GtkApplicationWindow — это подкласс GtkWindow, предоставляющий дополнительные возможности для лучшей интеграции с функциями GtkApplication. В частности, он может обрабатывать системное меню приложения. См. 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 автоматически отобразит системное меню. Это поведение можно переопределить свойством “show-menubar”. Если среда рабочего стола не отображает меню приложения, то оно будет автоматически включено в системное меню или в украшения клиентской стороны окна.

См. GtkPopoverMenu для получения информации о языке XML, используемом GtkBuilder для моделей меню.

GtkApplicationWindow с системным меню

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);

Функции

gtk_application_window_new ()

GtkWidget *
gtk_application_window_new (GtkApplication *application);

Создаёт новую GtkApplicationWindow.

Параметры

application

приложение GtkApplication

Возвращаемое значение

новосозданная GtkApplicationWindow

gtk_application_window_set_show_menubar ()

void
gtk_application_window_set_show_menubar
                               (GtkApplicationWindow *window,
                                gboolean show_menubar);

Устанавливает, будет ли окно отображать панель меню для меню приложения и панели меню по мере необходимости.

Параметры

window

окно GtkApplicationWindow

show_menubar

отображать ли панель меню при необходимости

gtk_application_window_get_show_menubar ()

gboolean
gtk_application_window_get_show_menubar
                               (GtkApplicationWindow *window);

Возвращает, будет ли окно отображать панель меню для меню приложения и панели меню по мере необходимости.

Параметры

window

окно GtkApplicationWindow

Возвращаемое значение

TRUE если window будет отображать панель меню при необходимости

gtk_application_window_get_id ()

guint
gtk_application_window_get_id (GtkApplicationWindow *window);

Возвращает уникальный идентификатор окна. Если окно ещё не добавлено в GtkApplication, возвращает 0.

Параметры

window

окно GtkApplicationWindow

Возвращаемое значение

уникальный идентификатор для window, или 0 если окно ещё не добавлено в GtkApplication

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]

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]

Типы и значения

struct GtkApplicationWindow

struct GtkApplicationWindow;

struct GtkApplicationWindowClass

struct GtkApplicationWindowClass {
  GtkWindowClass parent_class;
};

Члены

Подробности свойств

Свойство “show-menubar”

  “show-menubar”             gboolean

Если это свойство TRUE, окно будет отображать панель меню, если она не отображается оболочкой рабочего стола. См. gtk_application_set_menubar().

Если FALSE, окно не будет отображать панель меню независимо от того, отображает ли её оболочка рабочего стола или нет.

Владелец: GtkApplicationWindow

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

Значение по умолчанию: FALSE

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkApplicationWindow.html

Spec-Zone.ru

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