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 структура содержит только закрытые данные и должна использоваться только функциями приведенными ниже.
gtk_accel_label_new ()
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. |
Простой способ создания меню. |