Spec-Zone.ru › GTK 3.24

Группы Ускорителей

Группы Ускорителей — Группы глобальных клавишных ускорителей для всего GtkWindow

Функции

GtkAccelGroup * gtk_accel_group_new ()
void gtk_accel_group_connect ()
void gtk_accel_group_connect_by_path ()
gboolean (*GtkAccelGroupActivate) ()
gboolean (*GtkAccelGroupFindFunc) ()
gboolean gtk_accel_group_disconnect ()
gboolean gtk_accel_group_disconnect_key ()
gboolean gtk_accel_group_activate ()
void gtk_accel_group_lock ()
void gtk_accel_group_unlock ()
gboolean gtk_accel_group_get_is_locked ()
GtkAccelGroup * gtk_accel_group_from_accel_closure ()
GdkModifierType gtk_accel_group_get_modifier_mask ()
gboolean gtk_accel_groups_activate ()
GSList * gtk_accel_groups_from_object ()
GtkAccelKey * gtk_accel_group_find ()
gboolean gtk_accelerator_valid ()
void gtk_accelerator_parse ()
gchar * gtk_accelerator_name ()
gchar * gtk_accelerator_get_label ()
void gtk_accelerator_parse_with_keycode ()
gchar * gtk_accelerator_name_with_keycode ()
gchar * gtk_accelerator_get_label_with_keycode ()
void gtk_accelerator_set_default_mod_mask ()
GdkModifierType gtk_accelerator_get_default_mod_mask ()

Свойства

gboolean is-locked Чтение
GdkModifierType modifier-mask Чтение

Сигналы

gboolean accel-activate Содержит подробности
void accel-changed Содержит подробности

Типы и Значения

struct GtkAccelGroup
struct GtkAccelGroupClass
перечисление GtkAccelFlags
struct GtkAccelKey

Иерархия Объектов

    GObject
    ╰── GtkAccelGroup

Файлы

#include <gtk/gtk.h>

Описание

Класс GtkAccelGroup представляет собой группу клавиатурных акселератров, обычно прикреплённых к главному окну GtkWindow (с помощью gtk_window_add_accel_group()). Обычно вам не нужно создавать GtkAccelGroup напрямую; вместо этого, при использовании GtkUIManager, GTK+ автоматически настраивает акселераторы для ваших меню в GtkAccelGroup менеджера пользовательского интерфейса.

Обратите внимание, что «акселераторы» отличаются от «мнемоник». Акселераторы — это сочетания клавиш для активации пункта меню; они отображаются рядом с пунктом меню, для которого они являются сокращением. Например, «Ctrl+Q» может отображаться рядом с пунктом меню «Выход». Мнемоники — это сочетания клавиш для элементов пользовательского интерфейса, таких как текстовые поля или кнопки; они отображаются как подчеркнутые символы. См. gtk_label_new_with_mnemonic(). Пункты меню, конечно, могут иметь и акселераторы, и мнемоники.

Функции

gtk_accel_group_new ()

GtkAccelGroup *
gtk_accel_group_new (void);

Создаёт новую GtkAccelGroup.

Возвращает

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

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_path будет сохранена в GQuark. Поэтому, если вы передаёте статическую строку, вы можете сэкономить память, предварительно интернировав её с помощью g_intern_static_string()

Параметры

accel_group

группа ускорителей, в которой нужно установить ускоритель

accel_path

путь, используемый для определения клавиши и модификаторов

closure

замыкатель, который будет выполнен при активации ускорителя

GtkAccelGroupActivate ()

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

GtkAccelGroupFindFunc ()

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

Параметры

data

.

[closure]

С момента: 2.2

gtk_accel_group_disconnect ()

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

Удаляет ускоритель, установленный ранее с помощью gtk_accel_group_connect().

Начиная с 2.20, closure может быть NULL

Параметры

accel_group

группа ускорителей, из которой нужно удалить ускоритель

closure

замыкатель для удаления из этой группы ускорителей, или NULL для удаления всех замыкателей.

[allow-none]

Возвращает

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

gboolean
gtk_accel_group_activate (GtkAccelGroup *accel_group,
                          GQuark accel_quark,
                          GObject *acceleratable,
                          guint accel_key,
                          GdkModifierType accel_mods);

Ищет первый ускоритель в accel_group, который соответствует accel_key и accel_mods, и активирует его.

Параметры

accel_group

a GtkAccelGroup

accel_quark

квирк для имени ускорителя

acceleratable

объект GObject, обычно GtkWindow, на котором нужно активировать ускоритель

accel_key

значение клавиши ускорителя из события нажатия клавиши

accel_mods

маска состояния клавиатуры из события нажатия клавиши

Возвращает

TRUE если ускоритель был активирован и обработал это нажатие клавиши

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

a GtkAccelGroup

gtk_accel_group_unlock ()

void
gtk_accel_group_unlock (GtkAccelGroup *accel_group);

Отменяет последний вызов gtk_accel_group_lock() для этого accel_group.

Параметры

accel_group

a GtkAccelGroup

gtk_accel_group_get_is_locked ()

gboolean
gtk_accel_group_get_is_locked (GtkAccelGroup *accel_group);

Блокировки добавляются и удаляются с помощью gtk_accel_group_lock() и gtk_accel_group_unlock().

Параметры

accel_group

a GtkAccelGroup

Возвращает

TRUE если на accel_group есть одна или более блокировок, FALSE в противном случае.

Since: 2.14

gtk_accel_group_from_accel_closure ()

GtkAccelGroup *
gtk_accel_group_from_accel_closure (GClosure *closure);

Находит GtkAccelGroup, к которому подключен closure; см. gtk_accel_group_connect().

Параметры

closure

a GClosure

Возвращает

GtkAccelGroup, к которому подключен closure, или NULL.

[nullable][transfer none]

gtk_accel_group_get_modifier_mask ()

GdkModifierType
gtk_accel_group_get_modifier_mask (GtkAccelGroup *accel_group);

Получает GdkModifierType, представляющий маску для этой accel_group . Например, GDK_CONTROL_MASK, GDK_SHIFT_MASK и т. д.

Параметры

accel_group

a GtkAccelGroup

Возвращает

маску модификаторов для этой группы ускорителей.

Since: 2.14

gtk_accel_groups_activate ()

gboolean
gtk_accel_groups_activate (GObject *object,
                           guint accel_key,
                           GdkModifierType accel_mods);

Находит первый ускоритель в любой GtkAccelGroup, прикрепленной к object, который соответствует accel_key и accel_mods , и активирует этот ускоритель.

Параметры

object

the GObject, обычно GtkWindow, для активации ускорителя

accel_key

ключ ускорителя keyval из события нажатия клавиши

accel_mods

маска состояния клавиатуры из события нажатия клавиши

Возвращает

TRUE если ускоритель был активирован и обработал это нажатие клавиши

gtk_accel_groups_from_object ()

GSList *
gtk_accel_groups_from_object (GObject *object);

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

Параметры

object

a GObject, обычно GtkWindow

Возвращает

список всех групп ускорителей, прикрепленных к object .

[element-type GtkAccelGroup][transfer none]

gtk_accel_group_find ()

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

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

Параметры

accel_group

a GtkAccelGroup

find_func

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

[scope call]

data

данные для передачи в find_func

Возвращает

ключ первой записи, удовлетворяющей find_func . Ключ принадлежит GTK+ и не должен освобождаться.

[transfer none]

gtk_accelerator_valid ()

gboolean
gtk_accelerator_valid (guint keyval,
                       GdkModifierType modifiers);

Определяет, является ли заданная keyval и маска модификаторов допустимым ускорителем клавиатуры. Например, keyval GDK_KEY_a и GDK_CONTROL_MASK допустимы — это ускоритель “Ctrl+a”. Но вы не можете, например, использовать GDK_KEY_Control_L в качестве ускорителя.

Параметры

keyval

a GDK keyval

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>”. Имена клавиш парсятся с помощью gdk_keyval_from_name(). Для символьных клавиш имя не является символом, а строчным именем, например, необходимо использовать “<Ctrl>minus” вместо “<Ctrl>-”.

Если разбор не удался, accelerator_key и accelerator_mods будут установлены в 0 (ноль).

Параметры

accelerator

строка, представляющая ускоритель

accelerator_key

место для возврата keyval ускорителя, или NULL.

[out][allow-none]

accelerator_mods

место для возврата маски модификаторов ускорителя, NULL.

[out][allow-none]

gtk_accelerator_name ()

gchar *
gtk_accelerator_name (guint accelerator_key,
                      GdkModifierType accelerator_mods);

Преобразует комбинацию клавиш (keyval) и модификаторов (modifier mask) в строку, парсируемую функцией gtk_accelerator_parse(). Например, если передать GDK_KEY_q и GDK_CONTROL_MASK, функция вернёт «<Control>q».

Если вам нужно отобразить комбинации клавиш в пользовательском интерфейсе, обратитесь к gtk_accelerator_get_label().

Параметры

accelerator_key

значение клавиши (keyval)

accelerator_mods

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

Возвращаемое значение

новый динамически выделенный строковый объект с именем комбинации клавиш.

gtk_accelerator_get_label ()

gchar *
gtk_accelerator_get_label (guint accelerator_key,
                           GdkModifierType accelerator_mods);

Преобразует комбинацию клавиш (keyval) и модификаторы (modifier mask) в строку, которая может быть использована для представления комбинации клавиш пользователю.

Параметры

accelerator_key

значение клавиши (keyval)

accelerator_mods

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

Возвращаемое значение

новый динамически выделенный строковый объект, представляющий комбинацию клавиш.

С: 2.6

gtk_accelerator_parse_with_keycode ()

void
gtk_accelerator_parse_with_keycode (const gchar *accelerator,
                                    guint *accelerator_key,
                                    guint **accelerator_codes,
                                    GdkModifierType *accelerator_mods);

Парсит строку, представляющую комбинацию клавиш, подобно gtk_accelerator_parse(), но также обрабатывает коды клавиш. Эта функция полезна только для компонентов системного уровня, приложения должны использовать gtk_accelerator_parse().

Если accelerator_codes указан, и полученное в нём значение не NULL, то оно должно быть освобождено с помощью g_free().

Если в комбинации клавиш присутствует код клавиши, и accelerator_codes не указан, то парсинг завершится ошибкой.

Если парсинг завершился ошибкой, accelerator_key, accelerator_mods и accelerator_codes будут установлены в 0.

Параметры

accelerator

строка, представляющая комбинацию клавиш

accelerator_key

место для возврата значения клавиши (keyval), или NULL.

[out][allow-none]

accelerator_codes

место для возврата кодов клавиш, или NULL.

[out][array нуль-терминированный=1][transfer full][allow-none]

accelerator_mods

место для возврата маски модификаторов, NULL.

[out][allow-none]

С: 3.4

gtk_accelerator_name_with_keycode ()

gchar *
gtk_accelerator_name_with_keycode (GdkDisplay *display,
                                   guint accelerator_key,
                                   guint keycode,
                                   GdkModifierType accelerator_mods);

Преобразует комбинацию клавиш (keyval) и модификаторы (modifier mask) в строку, парсируемую gtk_accelerator_parse_with_keycode(), аналогично gtk_accelerator_name(), но обрабатывая коды клавиш. Эта функция полезна только для компонентов системного уровня, приложения должны использовать gtk_accelerator_parse().

Параметры

display

объект GdkDisplay или NULL для использования по умолчанию.

[allow-none]

accelerator_key

значение клавиши (keyval)

keycode

код клавиши

accelerator_mods

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

Возвращаемое значение

новый динамически выделенный строковый объект с именем комбинации клавиш.

С: 3.4

gtk_accelerator_get_label_with_keycode ()

gchar *
gtk_accelerator_get_label_with_keycode
                               (GdkDisplay *display,
                                guint accelerator_key,
                                guint keycode,
                                GdkModifierType accelerator_mods);

Преобразует комбинацию клавиш (keyval) и модификаторы (modifier mask) в (возможно, переведённую) строку, которая может быть отображена пользователю, аналогично gtk_accelerator_get_label(), но обрабатывая коды клавиш.

Эта функция полезна только для компонентов системного уровня, приложения должны использовать gtk_accelerator_parse().

Параметры

display

объект GdkDisplay или NULL для использования по умолчанию.

[allow-none]

accelerator_key

значение клавиши (keyval)

keycode

код клавиши

accelerator_mods

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

Возвращаемое значение

новый динамически выделенный строковый объект, представляющий комбинацию клавиш.

С: 3.4

gtk_accelerator_set_default_mod_mask ()

void
gtk_accelerator_set_default_mod_mask (GdkModifierType default_mod_mask);

Устанавливает модификаторы, которые будут рассматриваться как значимые для комбинаций клавиш. Маска модификаторов по умолчанию зависит от используемого бэкенда GDK, но обычно включает GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK | GDK_HYPER_MASK | GDK_META_MASK. Другими словами, Control, Shift, Alt, Super, Hyper и Meta. Другие модификаторы по умолчанию будут игнорироваться GtkAccelGroup.

Вы должны включить как минимум три модификатора (Control, Shift и Alt) в любом значении, которое вы передаёте в эту функцию.

Маску модификаторов по умолчанию необходимо изменить при запуске приложения, перед использованием любых групп комбинаций клавиш.

Параметры

default_mod_mask

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

gtk_accelerator_get_default_mod_mask ()

GdkModifierType
gtk_accelerator_get_default_mod_mask (void);

Получение маски модификаторов.

Маска модификаторов определяет, какие модификаторы считаются значимыми для клавиатурных акселераторов. См. gtk_accelerator_set_default_mod_mask().

Возвращаемое значение

стандартная маска модификаторов акселератора

Типы и значения

struct GtkAccelGroup

struct GtkAccelGroup;

Объект, представляющий и управляющий группой акселераторов.

struct GtkAccelGroupClass

struct GtkAccelGroupClass {
  GObjectClass parent_class;

  void (*accel_changed) (GtkAccelGroup *accel_group,
				 guint           keyval,
				 GdkModifierType modifier,
				 GClosure       *accel_closure);
};

Члены

accel_changed ()

Сигнал, генерируемый при добавлении или удалении записи из группы акселераторов.

перечисление GtkAccelFlags

Флаги акселераторов, используемые с gtk_accel_group_connect().

Члены

GTK_ACCEL_VISIBLE

Акселератор виден

GTK_ACCEL_LOCKED

Акселератор не удаляемый

GTK_ACCEL_MASK

Маска

struct GtkAccelKey

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

Члены

guint accel_key;

Значение клавиши акселератора

GdkModifierType accel_mods;

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

guint accel_flags : 16;

Флаги акселератора

Подробное описание свойств

Свойство “is-locked”

  “is-locked”                gboolean

Заблокирована ли группа акселераторов.

Владелец: GtkAccelGroup

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “modifier-mask”

  “modifier-mask”            GdkModifierType

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

Владелец: GtkAccelGroup

Флаги: Чтение

Подробное описание сигналов

Сигнал “accel-activate”

gboolean
user_function (GtkAccelGroup  *accel_group,
               GObject        *acceleratable,
               guint           keyval,
               GdkModifierType modifier,
               gpointer        user_data)

Сигнал 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)

Сигнал accel-changed генерируется при добавлении или удалении записи в группу акселераторов.

Виджеты, такие как GtkAccelLabel, которые отображают связанный акселератор, должны подключиться к этому сигналу и перестроить своё визуальное представление, если accel_closure принадлежит им.

Параметры

accel_group

группа GtkAccelGroup, получившая сигнал

keyval

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

modifier

комбинация модификаторов акселератора

accel_closure

закрытие GClosure акселератора

user_data

данные пользователя, заданные при подключении обработчика сигнала.

Флаги: Содержит подробности

См. также

gtk_window_add_accel_group(), gtk_accel_map_change_entry(), gtk_label_new_with_mnemonic()

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/gtk3-Keyboard-Accelerators.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API