краткое описание#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
отображает акселераторы которые были
добавлены к отдельному виджету. этот
виджет устанавливается вызовом
например, gtkmenuitem
виджет может добавить акселератор для
издания сигнала "activate" когда нажата
ключевая комбинация 'ctl+s'. gtkaccellabel
создаётся и добавляется к gtkmenuitem,
а помните что создаваемый gtkmenuitem
с помощью 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);деталиgtkaccellabeltypedef struct _gtkaccellabel gtkaccellabel; gtkaccellabel структура содержит только закрытые данные и должна использоваться только функциями приведенными ниже. gtk_accel_label_new ()gtkwidget* gtk_accel_label_new (const gchar *string); создаёт новый gtkaccellabel.
gtk_accel_label_set_accel_closure ()void gtk_accel_label_set_accel_closure
(gtkaccellabel *accel_label,
gclosure *accel_closure);
устанавливает замкнутое выражение
проверяемое этой меткой акселератора.
замкнутое выражение должно быть
подключено к группе акселератора;
смотрите
gtk_accel_label_get_accel_widget ()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);устанавливает виджет контролируемый меткой акселератора.
gtk_accel_label_get_accel_width ()guint gtk_accel_label_get_accel_width (gtkaccellabel *accel_label); возвращает ширину необходимую для отображения ключа акселератора. это используется в меню для выравнивания всех gtkmenuitem виджетов и не должно быть необходимым для приложений.
gtk_accel_label_refetch ()gboolean gtk_accel_label_refetch (gtkaccellabel *accel_label); пере-создаёт строку представляющую клавиши акселератора. в основном это не нужно, так как строка автоматически обновляется когда акселераторы добавляются или удаляются из связанного с ними виджета.
детали свойствсвойство "
| ||||||||||||||||||||||||||||||||||||||||
|
keyboard accelerators |
установка и использование клавиатурных short-cuts. |
|
простой способ создания меню. |