GtkAccelLabel
GtkAccelLabel — метка, отображающая сочетание клавиш справа от текста
Функции
Свойства
| 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». Создается виджет GtkAccelLabel и добавляется в GtkMenuItem, а затем вызывается 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.
Параметры
строка | строка метки. Должна быть отличной от |
Возвращает
новый 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 | объект 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 | объект GtkAccelLabel |
gtk_accel_label_set_accel_widget ()
void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,GtkWidget *accel_widget);
Устанавливает объект, который будет отслеживаться данным ярлыком ускорителя.
Параметры
accel_label | объект GtkAccelLabel | |
accel_widget | объект для отслеживания. |
gtk_accel_label_get_accel_width ()
guint
gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label); Возвращает ширину, необходимую для отображения клавиши(ей) ускорителя. Используется меню для выравнивания всех объектов GtkMenuItem, и не должна потребоваться приложениям.
Параметры
accel_label | объект GtkAccelLabel. |
Возвращает
ширину, необходимую для отображения клавиши(ей) ускорителя.
gtk_accel_label_set_accel ()
void gtk_accel_label_set_accel (GtkAccelLabel *accel_label,guint accelerator_key,GdkModifierType accelerator_mods);
Вручную устанавливает ключ и маску модификаторов в качестве ускорителя, отображаемого accel_label.
Если явно заданы ключ и модификаторы, эти значения используются независимо от связанного обработчика или объекта.
Установление accelerator_key в 0 удаляет ручную установку.
Параметры
accel_label | объект GtkAccelLabel | |
accelerator_key | код клавиши или 0 | |
accelerator_mods | маска модификаторов для ускорителя |
С: 3.6
gtk_accel_label_get_accel ()
void gtk_accel_label_get_accel (GtkAccelLabel *accel_label,guint *accelerator_key,GdkModifierType *accelerator_mods);
Получает ключ и маску модификаторов, установленные с помощью gtk_accel_label_set_accel().
Параметры
accel_label | объект GtkAccelLabel | |
accelerator_key | место для хранения кода клавиши. | [out] |
accelerator_mods | место для хранения маски модификаторов. | [out] |
С: 3.12
gtk_accel_label_refetch ()
gboolean
gtk_accel_label_refetch (GtkAccelLabel *accel_label); Пересоздаёт строку, представляющую клавиши ускорителя. Это не должно потребоваться, так как строка автоматически обновляется при добавлении или удалении ускорителей из связанного объекта.
Параметры
accel_label | объект GtkAccelLabel. |
Возвращает
всегда возвращает FALSE.
Типы и значения
struct GtkAccelLabel
struct GtkAccelLabel;
Структура GtkAccelLabel содержит только внутренние данные и должна обрабатываться с помощью функций ниже.
Подробные сведения о свойствах
Свойство “accel-closure”
“accel-closure” GClosure *
Обработчик событий для отслеживания изменений ускорителей.
Флаги: Чтение / Запись
Свойство “accel-widget”
“accel-widget” GtkWidget *
Объект для отслеживания изменений ускорителей.
Флаги: Чтение / Запись
См. также
© 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/GtkAccelLabel.html