Spec-Zone.ru › GTK 3.22

GtkAccelLabel

GtkAccelLabel — Метка, отображающая клавишу-акселератор справа от текста

Функции

GtkWidget * gtk_accel_label_new ()
void gtk_accel_label_set_accel_closure ()
GtkWidget * gtk_accel_label_get_accel_widget ()
void gtk_accel_label_set_accel_widget ()
guint gtk_accel_label_get_accel_width ()
void gtk_accel_label_set_accel ()
void gtk_accel_label_get_accel ()
gboolean gtk_accel_label_refetch ()

Свойства

GClosure * accel-closure Чтение / Запись
GtkWidget * accel-widget Чтение / Запись

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

struct GtkAccelLabel

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkMisc
                ╰── GtkLabel
                    ╰── GtkAccelLabel

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

GtkAccelLabel реализует AtkImplementorIface и GtkBuildable.

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

#include <gtk/gtk.h>

Описание

Виджет GtkAccelLabel — подкласс GtkLabel, который также отображает клавишу-акселератор справа от текста метки, например, «Ctl+S». Он часто используется в меню для отображения сочетаний клавиш для команд.

Клавиша-акселератор для отображения обычно не устанавливается явно (хотя это можно сделать с помощью gtk_accel_label_set_accel()). Вместо этого GtkAccelLabel отображает акселераторы, которые были добавлены к определённому виджету. Этот виджет устанавливается с помощью вызова gtk_accel_label_set_accel_widget().

Например, виджет GtkMenuItem может иметь добавленный акселератор, который вызовет сигнал «activate», когда нажата комбинация клавиш «Ctl+S». Создаётся и добавляется к GtkMenuItem виджет GtkAccelLabel, и вызывается gtk_accel_label_set_accel_widget() со вторым аргументом, являющимся GtkMenuItem. Теперь GtkAccelLabel отобразит «Ctl+S» после своего текста.

Обратите внимание, что создание GtkMenuItem с помощью gtk_menu_item_new_with_label() (или одной из аналогичных функций для GtkCheckMenuItem и GtkRadioMenuItem) автоматически добавляет GtkAccelLabel в GtkMenuItem и вызывает gtk_accel_label_set_accel_widget() для настройки.

GtkAccelLabel будет отображать только те акселераторы, для которых установлено GTK_ACCEL_VISIBLE (см. GtkAccelFlags). GtkAccelLabel может отображать несколько акселераторов и даже имена сигналов, хотя обычно используется для отображения только одной клавиши-акселератора.

Создание простого пункта меню с клавишей-акселератором.

CSS-узлы

GtkWidget *save_item;
GtkAccelGroup *accel_group;

// Create a GtkAccelGroup and add it to the window.
accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

// Create the menu item using the convenience function.
save_item = gtk_menu_item_new_with_label ("Save");
gtk_widget_show (save_item);
gtk_container_add (GTK_CONTAINER (menu), save_item);

// Now add the accelerator to the GtkMenuItem. Note that since we
// called gtk_menu_item_new_with_label() to create the GtkMenuItem
// the GtkAccelLabel is automatically set up to display the
// GtkMenuItem accelerators. We just need to make sure we use
// GTK_ACCEL_VISIBLE here.
gtk_widget_add_accelerator (save_item, "activate", accel_group,
                            GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);

Как и GtkLabel, GtkAccelLabel имеет основной CSS-узел с именем label. Он добавляет дочерний узел с именем accelerator.

Функции

gtk_accel_label_new ()

GtkWidget *
gtk_accel_label_new (const gchar *string);

Создаёт новый GtkAccelLabel.

Параметры

строка

строка метки. Должна быть не NULL.

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

новый GtkAccelLabel.

gtk_accel_label_set_accel_closure ()

void
gtk_accel_label_set_accel_closure (GtkAccelLabel *accel_label,
                                   GClosure *accel_closure);

Устанавливает обработчик, который будет отслеживаться этой меткой акселератора. Обработчик должен быть подключён к группе акселераторов; см. gtk_accel_group_connect().

Параметры

accel_label

a GtkAccelLabel

accel_closure

обработчик, который необходимо отслеживать для изменений акселератора.

gtk_accel_label_get_accel_widget ()

GtkWidget *
gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label);

Возвращает виджет, отслеживаемый этой меткой акселератора. См. gtk_accel_label_set_accel_widget().

Параметры

accel_label

a GtkAccelLabel

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

объект, отслеживаемый меткой акселератора, или NULL.

[nullable][transfer none]

gtk_accel_label_set_accel_widget ()

void
gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
                                  GtkWidget *accel_widget);

Устанавливает виджет, который будет отслеживаться этой меткой акселератора.

Параметры

accel_label

a GtkAccelLabel

accel_widget

виджет, который будет отслеживаться.

gtk_accel_label_get_accel_width ()

guint
gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);

Возвращает ширину, необходимую для отображения клавиши(ей) акселератора. Это используется меню для выравнивания всех виджетов GtkMenuItem, и не должно требоваться приложениям.

Параметры

accel_label

a GtkAccelLabel.

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

ширина, необходимая для отображения клавиши(ей) акселератора.

gtk_accel_label_set_accel ()

void
gtk_accel_label_set_accel (GtkAccelLabel *accel_label,
                           guint accelerator_key,
                           GdkModifierType accelerator_mods);

Вручную устанавливает keyval и маску модификаторов в качестве акселератора, отображаемого accel_label.

Если keyval и модификатор явно заданы, эти значения используются независимо от любого связанного accel closure или виджета.

Указание accelerator_key равным 0 удаляет ручную установку.

Параметры

accel_label

a GtkAccelLabel

accelerator_key

keyval или 0

accelerator_mods

маска модификаторов для accel

С: 3.6

gtk_accel_label_get_accel ()

void
gtk_accel_label_get_accel (GtkAccelLabel *accel_label,
                           guint *accelerator_key,
                           GdkModifierType *accelerator_mods);

Получает keyval и маску модификаторов, установленные с помощью gtk_accel_label_set_accel().

Параметры

accel_label

a GtkAccelLabel

accelerator_key

место для возврата keyval.

[out]

accelerator_mods

место для возврата маски модификаторов.

[out]

С: 3.12

gtk_accel_label_refetch ()

gboolean
gtk_accel_label_refetch (GtkAccelLabel *accel_label);

Пересоздаёт строку, представляющую клавиши акселератора. Это не должно быть необходимо, поскольку строка автоматически обновляется всякий раз, когда акселераторы добавляются или удаляются из связанного виджета.

Параметры

accel_label

a GtkAccelLabel.

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

всегда возвращает FALSE.

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

struct GtkAccelLabel

struct GtkAccelLabel;

Структура GtkAccelLabel содержит только внутренние данные и должна быть обработана с помощью перечисленных ниже функций.

Подробное описание свойств

Свойство “accel-closure”

  “accel-closure”            GClosure *

Обработчик, который будет отслеживаться для изменений акселератора.

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

Свойство “accel-widget”

  “accel-widget”             GtkWidget *

Виджет, который будет отслеживаться для изменений акселератора.

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

См. также

GtkAccelGroup

© 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/GtkAccelLabel.html

Spec-Zone.ru

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