краткое описание#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. |
простой способ создания меню. |