The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Signals

Группа акселераторов

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(). Пункты меню могут иметь и акселераторы и мнемоники.

Детали

GtkAccelGroup

typedef struct _GtkAccelGroup GtkAccelGroup;

Представление объекта и поддержка группы акселераторов.


gtk_accel_group_new ()

GtkAccelGroup* gtk_accel_group_new          (void);

Создаёт новый GtkAccelGroup.

Возвращает :

Новый объект GtkAccelGroup


gtk_accel_group_ref

#define gtk_accel_group_ref     g_object_ref

Внимание

gtk_accel_group_ref устарел, поэтому не нужно его использовать во вновь создаваемом коде.

Используйте эквивалент g_object_ref().

Возвращает :

Группу акселераторов в которую помещён


gtk_accel_group_unref

#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 :

Закрытие, которое будет выполнено после активации акселератора


gtk_accel_group_connect_by_path ()

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 :

Закрытие, которое будет выполнено после активации акселератора


GtkAccelGroupActivate ()

gboolean    (*GtkAccelGroupActivate)        (GtkAccelGroup *accel_group,
                                             GObject *acceleratable,
                                             guint keyval,
                                             GdkModifierType modifier);

accel_group :

acceleratable :

keyval :

modifier :

Возвращает :


GtkAccelGroupFindFunc ()

gboolean    (*GtkAccelGroupFindFunc)        (GtkAccelKey *key,
                                             GClosure *closure,
                                             gpointer data);

key :

closure :

data :

Возвращает :

Начиная с версии 2.2


gtk_accel_group_disconnect ()

gboolean    gtk_accel_group_disconnect      (GtkAccelGroup *accel_group,
                                             GClosure *closure);

Удаляет акселератор предварительно установленный через gtk_accel_group_connect().

accel_group :

Группа акселераторов из которой удаляется акселератор.

closure :

Закрытие, чтобы удалить из этой группы акселератор

Возвращает :

TRUE если закрытие было найдено и отсоединено


gtk_accel_group_disconnect_key ()

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


gtk_accel_group_query ()

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+ и не может быть освобождён.


gtk_accel_group_activate ()

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 :

Возвращает :


gtk_accel_group_lock ()

void        gtk_accel_group_lock            (GtkAccelGroup *accel_group);

Замыкает полученную группу акселераторов.

Замыкает группу акселераторов предотвращая изменение включённых акселераторов во время выполнения. Используйте gtk_accel_map_change_entry() для изменения акселераторов во время выполнения.

Если вызвана больше одного раза, accel_group останется замкнутым пока gtk_accel_group_unlock() не будет вызвана соответствующее количество раз.

accel_group :

GtkAccelGroup


gtk_accel_group_unlock ()

void        gtk_accel_group_unlock          (GtkAccelGroup *accel_group);

Уничтожает последний вызов gtk_accel_group_lock() для accel_group.

accel_group :

GtkAccelGroup


gtk_accel_group_from_accel_closure ()

GtkAccelGroup* gtk_accel_group_from_accel_closure
                                            (GClosure *closure);

Находит GtkAccelGroup с которым связан closure; смотрите gtk_accel_group_connect().

closure :

GClosure

Возвращает :

GtkAccelGroup связанный с closure , или NULL.


gtk_accel_groups_activate ()

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


gtk_accel_groups_from_object ()

GSList*     gtk_accel_groups_from_object    (GObject *object);

Получить список всех групп акселераторов прикреплённых к object.

object :

GObject, обычно GtkWindow

Возвращает :

список всех групп акселераторов прикреплённых к object


gtk_accel_group_find ()

GtkAccelKey* gtk_accel_group_find           (GtkAccelGroup *accel_group,
                                             GtkAccelGroupFindFunc find_func,
                                             gpointer data);

Находит первый вход в группе акселераторов, для которого find_func возвращает TRUE и возвращает его GtkAccelKey.

accel_group :

GtkAccelGroup

find_func :

Функция фильтрации записей в accel_group

data :

Данные посылаемые find_func

Возвращает :

Ключ первой записи помещенной find_func. Ключ принадлежит GTK+ и неможет быть освобождён.


GtkAccelKey

typedef struct {
  guint           accel_key;
  GdkModifierType accel_mods;
  guint           accel_flags : 16;
} GtkAccelKey;

gtk_accelerator_valid ()

gboolean    gtk_accelerator_valid           (guint keyval,
                                             GdkModifierType modifiers);

Определяет, составляют ли данное ключевое значение (keyval) и маска модификатора (modifiers) действительный модификатор клавиатуры. Например, ключевое значение GDK_a плюс GDK_CONTROL_MASK, действителен это акселератор "Ctrl+a". Но вы не можете, для ссылки, использовать ключевое значение GDK_Control_L как акселератор.

keyval :

Ключевое значение GDK

modifiers :

Маска модификатора

Возвращает :

TRUE, если акселератор действителен


gtk_accelerator_parse ()

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 :

Размещение возвращаемого маски модификатора акселератора


gtk_accelerator_name ()

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 :

Маска модификатора акселератора

Возвращает :

Вновь-размещённое имя акселератора


gtk_accelerator_get_label ()

gchar*      gtk_accelerator_get_label       (guint accelerator_key,
                                             GdkModifierType accelerator_mods);

Преобразует ключевое значение акселератора и маску модификатора в строку которая может использоваться для отображения акселератора на пользовательском интерфейсе.

accelerator_key :

Ключевое значение акселератора

accelerator_mods :

Маска модификатора акселератора

Возвращает :

Вновь-размещённая строка для отображения акселератора.

Начиная с версии 2.6


gtk_accelerator_set_default_mod_mask ()

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 :

Маска модификации акселератора


gtk_accelerator_get_default_mod_mask ()

guint       gtk_accelerator_get_default_mod_mask
                                            (void);

Устанавливает значение gtk_accelerator_set_default_mod_mask().

Возвращает :

Маска модификатора по умолчанию

Детали сигналов

Сигнал "accel-activate"

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 если акселератор активизирован


Сигнал "accel-changed"

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()




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру