| |
GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkAccelLabelGtkAccelLabel Метка которая отображает ключ акселератора справа от текста. |
#include <gtk/gtk.h> GtkAccelLabel; GtkWidget* gtk_accel_label_new (const gchar *string); void gtk_accel_label_set_accel_closure (GtkAccelLabel *accel_label, GClosure *accel_closure); GtkWidget* gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label); void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label, GtkWidget *accel_widget); guint gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label); gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label);
GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkMisc +----GtkLabel +----GtkAccelLabel
GtkAccelLabel осуществляет AtkImplementorIface.
"accel-closure" GClosure : Read / Write "accel-widget" GtkWidget : Read / Write
GtkAccelLabel виджет подкласс GtkLabel который также отображает ключ акселератора справа от текста метки, например 'Ctl+S'. Он обычно используется в меню для отображения сочетаний клавиш для быстрого доступа к коммандам.
Отображение акселератора не
устанавливается явно. Вместо этого,
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 может
отображать множество акселераторов и
даже сообщать имена, хотя почти всегда
используется для отображения только
одного акселератора.
Пример 1. Создание простого меню с акселератором.
GtkWidget *save_item; GtkAccelGroup *accel_group; /* Создаём GtkAccelGroup и добавляем к окну. */ accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); /* Создаём пункты меню используя функцию удобства. */ save_item = gtk_menu_item_new_with_label ("Save"); gtk_widget_show (save_item); gtk_container_add (GTK_CONTAINER (menu), save_item); /* Теперь добавляем акселератор к GtkMenuItem. Помните что с тех пор как мы вызвали gtk_menu_item_new_with_label() для создания GtkMenuItem GtkAccelLabel автоматически устанавливается для отображения GtkMenuItem акселераторов. Нам просто нужно удостовериться в использовании GTK_ACCEL_VISIBLE. */ gtk_widget_add_accelerator (save_item, "activate", accel_group, GDK_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
typedef struct _GtkAccelLabel GtkAccelLabel;
GtkAccelLabel структура содержит только закрытые данные и должна использоваться только функциями приведенными ниже.
GtkWidget* gtk_accel_label_new (const gchar *string);
Создаёт новый GtkAccelLabel.
|
Строка метка. Должна быть не- |
Возвращает: |
новый GtkAccelLabel. |
void gtk_accel_label_set_accel_closure (GtkAccelLabel *accel_label, GClosure *accel_closure);
Устанавливает замкнутое выражение
проверяемое этой меткой акселератора.
Замкнутое выражение должно быть
подключено к группе акселератора;
смотрите gtk_accel_group_connect()
.
|
|
|
Замкнутое выражение контролирующее изменение акселератора. |
GtkWidget* gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label);
Извлекает виджет контролируемый меткой
акселератора. Смотрите
gtk_accel_label_set_accel_widget()
.
|
|
Возвращает: |
Объект контролируемый меткой
акселератора, или |
void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label, GtkWidget *accel_widget);
Устанавливает виджет контролируемый меткой акселератора.
|
|
|
Виджет для контроля. |
guint gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);
Возвращает ширину необходимую для отображения ключа акселератора. Это используется в меню для выравнивания всех GtkMenuItem виджетов и не должно быть необходимым для приложений.
|
|
Возвращает: |
Ширину для отображения ключа акселератора. |
gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label);
Пере-создаёт строку представляющую клавиши акселератора. В основном это не нужно, так как строка автоматически обновляется когда акселераторы добавляются или удаляются из связанного с ними виджета.
|
|
Возвращает: |
Всегда возвращается |
accel-closure
""accel-closure" GClosure : Read / Write
Закрытое выражение контролирующее изменение акселератора.
accel-widget
""accel-widget" GtkWidget : Read / Write
Виджет контролируемый изменение акселератора.
Keyboard Accelerators |
Установка и использование клавиатурных short-cuts. |
Простой способ создания меню. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |