GTK+ Reference Manual |
||||
---|---|---|---|---|
Группа акселераторовAccelerator Groups Группа глобальных акселераторов клавиатуры для всего GtkWindow |
#include <gtk/gtk.h>
GtkAccelGroup;
GtkAccelGroup* gtk_accel_group_new (void);
#define gtk_accel_group_ref
#define gtk_accel_group_unref
void gtk_accel_group_connect (GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods,
GtkAccelFlags accel_flags,
GClosure *closure);
void gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group,
const gchar *accel_path,
GClosure *closure);
gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group,
GObject *acceleratable,
guint keyval,
GdkModifierType modifier);
gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key,
GClosure *closure,
gpointer data);
gboolean gtk_accel_group_disconnect (GtkAccelGroup *accel_group,
GClosure *closure);
gboolean gtk_accel_group_disconnect_key (GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods);
GtkAccelGroupEntry* gtk_accel_group_query (GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods,
guint *n_entries);
gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
GQuark accel_quark,
GObject *acceleratable,
guint accel_key,
GdkModifierType accel_mods);
void gtk_accel_group_lock (GtkAccelGroup *accel_group);
void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
GtkAccelGroup* gtk_accel_group_from_accel_closure
(GClosure *closure);
gboolean gtk_accel_groups_activate (GObject *object,
guint accel_key,
GdkModifierType accel_mods);
GSList* gtk_accel_groups_from_object (GObject *object);
GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group,
GtkAccelGroupFindFunc find_func,
gpointer data);
GtkAccelKey;
gboolean gtk_accelerator_valid (guint keyval,
GdkModifierType modifiers);
void gtk_accelerator_parse (const gchar *accelerator,
guint *accelerator_key,
GdkModifierType *accelerator_mods);
gchar* gtk_accelerator_name (guint accelerator_key,
GdkModifierType accelerator_mods);
gchar* gtk_accelerator_get_label (guint accelerator_key,
GdkModifierType accelerator_mods);
void gtk_accelerator_set_default_mod_mask
(GdkModifierType default_mod_mask);
guint gtk_accelerator_get_default_mod_mask
(void);
GObject
+----GtkAccelGroup
"accel-activate"
gboolean user_function (GtkAccelGroup *accel_group,
GObject *acceleratable,
guint keyval,
GdkModifierType modifier,
gpointer user_data) : Has details
"accel-changed"
void user_function (GtkAccelGroup *accel_group,
guint keyval,
GdkModifierType modifier,
GClosure *accel_closure,
gpointer user_data) : Run first / Has details
GtkAccelGroup представляет группу акселераторов клавиатуры, обычно прикреплённых к высшему уровню GtkWindow (с помощью gtk_window_add_accel_group()). Обычно вам не потребуется непосредственное создание GtkAccelGroup; вместо этого используйте GtkItemFactory, GTK+ автоматически установит акселераторы для ваших меню используя производство пунктов в GtkAccelGroup.
Помните, эти акселераторы (accelerators) отличаются от мнемоников (mnemonics). Акселераторы имеют комбинации клавиш для активации пунктов меню; они появляются рядом с пунктом меню для которого предназначены. Например "Ctrl+Q" может появиться рядом с пунктом меню "Quit". Мнемоники имеют комбинации клавиш для элементов GUI таких как ввод текста или кнопка; они появляются как подчеркнутые знаки. Смотрите gtk_label_new_with_mnemonic(). Пункты меню могут иметь и акселераторы и мнемоники.
typedef struct _GtkAccelGroup GtkAccelGroup;Представление объекта и поддержка группы акселераторов.
gtk_accel_group_new ()
GtkAccelGroup* gtk_accel_group_new (void);Создаёт новый GtkAccelGroup.
Возвращает : |
Новый объект GtkAccelGroup |
#define gtk_accel_group_ref g_object_refВнимание
gtk_accel_group_ref устарел, поэтому не нужно его использовать во вновь создаваемом коде.
Используйте эквивалент g_object_ref().
Возвращает : |
Группу акселераторов в которую помещён |
#define gtk_accel_group_unref g_object_unrefВнимание
gtk_accel_group_unref устарел, поэтому не нужно его использовать во вновь создаваемом коде.
Используйте эквивалент g_object_unref().
gtk_accel_group_connect ()
void gtk_accel_group_connect (GtkAccelGroup *accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags, GClosure *closure);
Устанавливает акселератор в группу. Когда accel_group активизируется в ответ на вызов gtk_accel_groups_activate(), closure будет вызван если accel_key и accel_mods из gtk_accel_groups_activate() соответствуют таковым в этом соединении.
Подпись используемая для closure - это GtkAccelGroupActivate.
Отметьте, что, из-за деталей выполнения, единственное закрытие может быть соединено только с одной группой акселераторов.
accel_group : |
Устанавливает акселератор в группу акселераторов |
accel_key : |
Ключевое значение акселератора |
accel_mods : |
Модифицирующая комбинация акселератора |
accel_flags : |
Маска флага для конфигурирования акселератора |
closure : |
Закрытие, которое будет выполнено после активации акселератора |
void gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group,
const gchar *accel_path,
GClosure *closure);
Устанавливает акселератор в эту группу, используя путь акселератора для просмотра соответствующего ключа и модификаторов (смотрите gtk_accel_map_add_entry()). Когда accel_group активизируется в ответ на вызов gtk_accel_groups_activate(), closure будет вызван если accel_key и accel_mods из gtk_accel_groups_activate() будут соответствовать ключу и модификатору в пути.
Подпись используемая для closure - это GtkAccelGroupActivate.
accel_group : |
Устанавливает акселератор в группу акселераторов |
accel_path : |
Путь используемый для определения ключа и модификаторов. |
closure : |
Закрытие, которое будет выполнено после активации акселератора |
gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group,
GObject *acceleratable,
guint keyval,
GdkModifierType modifier);
accel_group : |
|
acceleratable : |
|
keyval : |
|
modifier : |
|
Возвращает : |
gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key,
GClosure *closure,
gpointer data);
key : |
|
closure : |
|
data : |
|
Возвращает : |
Начиная с версии 2.2
gboolean gtk_accel_group_disconnect (GtkAccelGroup *accel_group,
GClosure *closure);
Удаляет акселератор предварительно установленный через gtk_accel_group_connect().
accel_group : |
Группа акселераторов из которой удаляется акселератор. |
closure : |
Закрытие, чтобы удалить из этой группы акселератор |
Возвращает : |
TRUE если закрытие было найдено и отсоединено |
gboolean gtk_accel_group_disconnect_key (GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods);
Удаляет акселератор предварительно установленный через gtk_accel_group_connect().
accel_group : |
Группа акселераторов в которой установлен акселератор |
accel_key : |
Ключевое значение акселератора |
accel_mods : |
Модифицирующая комбинация акселератора |
Возвращает : |
TRUE если акселератор был удален, иначе FALSE |
GtkAccelGroupEntry* gtk_accel_group_query (GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods,
guint *n_entries);
Запрашивает группу акселераторов для всех соответствующих accel_key и accel_mods.
accel_group : |
Запрашиваемая группа акселераторов |
accel_key : |
ключевое значение акселератора |
accel_mods : |
Модифицирующая комбинация акселератора |
n_entries : |
Число найденных записей, или NULL |
Возвращает : |
массив n_entries GtkAccelGroupEntry элементов, или NULL. Массив принадлежит GTK+ и не может быть освобождён. |
gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
GQuark accel_quark,
GObject *acceleratable,
guint accel_key,
GdkModifierType accel_mods);
accel_group : |
|
accel_quark : |
|
acceleratable : |
|
accel_key : |
|
accel_mods : |
|
Возвращает : |
void gtk_accel_group_lock (GtkAccelGroup *accel_group);Замыкает полученную группу акселераторов.
Замыкает группу акселераторов предотвращая изменение включённых акселераторов во время выполнения. Используйте gtk_accel_map_change_entry() для изменения акселераторов во время выполнения.
Если вызвана больше одного раза, accel_group останется замкнутым пока gtk_accel_group_unlock() не будет вызвана соответствующее количество раз.
accel_group : |
void gtk_accel_group_unlock (GtkAccelGroup *accel_group);Уничтожает последний вызов gtk_accel_group_lock() для accel_group.
accel_group : |
GtkAccelGroup* gtk_accel_group_from_accel_closure
(GClosure *closure);
Находит GtkAccelGroup с которым связан closure; смотрите gtk_accel_group_connect().
closure : |
|
Возвращает : |
GtkAccelGroup связанный с closure , или NULL. |
gboolean gtk_accel_groups_activate (GObject *object,
guint accel_key,
GdkModifierType accel_mods);
Находит первый акселератор в любом присоединённом GtkAccelGroup, с соответствующими object, accel_key и accel_mods, и активизирует этот акселератор. Если акселератор активирован и соответствующее нажатие обработано, возвращается TRUE.
object : |
GObject, обычно GtkWindow, чтобы активизировать акселератор. |
accel_key : |
Ключевое значение акселератора из ключевого события |
accel_mods : |
Маска состояния клавиатуры из ключевого события |
Возвращает : |
TRUE если акселератор обработан, иначе FALSE |
GSList* gtk_accel_groups_from_object (GObject *object);Получить список всех групп акселераторов прикреплённых к object.
object : |
|
Возвращает : |
список всех групп акселераторов прикреплённых к object |
GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group,
GtkAccelGroupFindFunc find_func,
gpointer data);
Находит первый вход в группе акселераторов, для которого find_func возвращает TRUE и возвращает его GtkAccelKey.
accel_group : |
|
find_func : |
Функция фильтрации записей в accel_group |
data : |
Данные посылаемые find_func |
Возвращает : |
Ключ первой записи помещенной find_func. Ключ принадлежит GTK+ и неможет быть освобождён. |
typedef struct {
guint accel_key;
GdkModifierType accel_mods;
guint accel_flags : 16;
} GtkAccelKey;
gboolean gtk_accelerator_valid (guint keyval,
GdkModifierType modifiers);
Определяет, составляют ли данное ключевое значение (keyval) и маска модификатора (modifiers) действительный модификатор клавиатуры. Например, ключевое значение GDK_a плюс GDK_CONTROL_MASK, действителен это акселератор "Ctrl+a". Но вы не можете, для ссылки, использовать ключевое значение GDK_Control_L как акселератор.
keyval : |
Ключевое значение GDK |
modifiers : |
Маска модификатора |
Возвращает : |
TRUE, если акселератор действителен |
void gtk_accelerator_parse (const gchar *accelerator,
guint *accelerator_key,
GdkModifierType *accelerator_mods);
Анализирует строку, представляющую акселератор. Формат примерно такой "<Control>a", или "<Shift><Alt>F1", или "<Release>z" (последний для ключевого высвобождения). Анализатор достаточно либерален и позволяет нижний или верхний регистр, или сокращения такие как "<Ctl>" и "<Ctrl>".
Если анализ не удался, accelerator_key и accelerator_mods будут установлены в значение 0 (zero).
accelerator : |
Строка представляющая акселератор |
accelerator_key : |
Размещение возвращаемого ключевого значения акселератора |
accelerator_mods : |
Размещение возвращаемого маски модификатора акселератора |
gchar* gtk_accelerator_name (guint accelerator_key,
GdkModifierType accelerator_mods);
Преобразует ключевое значение и маску модификатора в строку анализируемую gtk_accelerator_parse(). Например, если вы поместили GDK_q и GDK_CONTROL_MASK, эта функция вернёт "<Control>q".
Если вам нужно отобразить акселераторы на интерфейсе пользователя, смотрите gtk_accelerator_get_label().
accelerator_key : |
Ключевое значение акселератора |
accelerator_mods : |
Маска модификатора акселератора |
Возвращает : |
Вновь-размещённое имя акселератора |
gchar* gtk_accelerator_get_label (guint accelerator_key,
GdkModifierType accelerator_mods);
Преобразует ключевое значение акселератора и маску модификатора в строку которая может использоваться для отображения акселератора на пользовательском интерфейсе.
accelerator_key : |
Ключевое значение акселератора |
accelerator_mods : |
Маска модификатора акселератора |
Возвращает : |
Вновь-размещённая строка для отображения акселератора. |
Начиная с версии 2.6
void gtk_accelerator_set_default_mod_mask
(GdkModifierType default_mod_mask);
Устанавливает модификаторы которые будут существенно продуманны для акселераторов клавиатуры. По умолчанию модифицирующая маска GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK, это, Control, Shift и Alt. Другие модификаторы по умолчанию игнорируются GtkAccelGroup. Вы должны включить по крайней мере три модификатора по умолчанию в любое значение переданное этой функции.
По умолчанию модифицирующая маска должна быть изменена при запуске приложения, перед использованием любых групп акселераторов.
default_mod_mask : |
Маска модификации акселератора |
guint gtk_accelerator_get_default_mod_mask
(void);
Устанавливает значение gtk_accelerator_set_default_mod_mask().
Возвращает : |
Маска модификатора по умолчанию |
gboolean user_function (GtkAccelGroup *accel_group,
GObject *acceleratable,
guint keyval,
GdkModifierType modifier,
gpointer user_data) : Has details
Сигнал accel-activate реализует детали GtkAccelGroup и не предполагает использование приложением.
accel_group : |
GtkAccelGroup который получил сигнал |
acceleratable : |
Объект который активизировал акселератор |
keyval : |
Ключевое значение акселератора |
modifier : |
Модифицирующая комбинация для акселератора |
user_data : |
Пользовательские данные установленные подключенным обработчиком сигнала. |
Возвращает : |
TRUE если акселератор активизирован |
void user_function (GtkAccelGroup *accel_group,
guint keyval,
GdkModifierType modifier,
GClosure *accel_closure,
gpointer user_data) : Run first / Has details
Сигнал accel-changed создаётся когда GtkAccelGroupEntry добавляется или удаляется из группы акселераторов.
Виджеты, такие как GtkAccelLabel, которые отображают ассоциированные акселераторы должны подключаться к этому сигналу и восстанавливать их визуальное представление, если accel_closure им соответствует.
accel_group : |
GtkAccelGroup который получил сигнал |
keyval : |
Ключевое значение акселератора |
modifier : |
Модифицирующая комбинация акселератора |
accel_closure : |
Объект GClosure акселератора |
user_data : |
Пользовательские данные установленные когда подключен обработчик сигнала. |
gtk_window_add_accel_group(), gtk_accel_map_change_entry(), gtk_item_factory_new(), gtk_label_new_with_mnemonic()