GtkShortcutController
GtkShortcutController — Контроллер событий для ярлыков
Функции
Свойства
| GdkModifierType | mnemonic-modifiers | Чтение / Запись |
| GListModel * | model | Запись / Только для создания |
| GtkShortcutScope | scope | Чтение / Запись |
Типы и значения
| GtkShortcutController | |
| перечисление | GtkShortcutScope |
| GtkShortcutManager | |
| структура | GtkShortcutManagerInterface |
Иерархия объектов
GInterface ╰── GtkShortcutManager GObject ╰── GtkEventController ╰── GtkShortcutController
Предварительные условия
GtkShortcutManager требует GObject.
Реализованные интерфейсы
GtkShortcutController реализует GListModel и GtkBuildable.
Известные реализации
GtkShortcutManager реализуется в GtkAboutDialog, GtkAppChooserDialog, GtkApplicationWindow, GtkAssistant, GtkColorChooserDialog, GtkDialog, GtkEmojiChooser, GtkFileChooserDialog, GtkFontChooserDialog, GtkMessageDialog, GtkPageSetupUnixDialog, GtkPopover, GtkPopoverMenu, GtkPrintUnixDialog, GtkShortcutsWindow и GtkWindow.
Файлы включения
#include <gtk/gtk.h>
Описание
GtkShortcutController — это контроллер событий, управляющий ярлыками.
Большинство распространённых ярлыков неявно используют этот контроллер, например, добавляя подчёркнутый символ mnemonics к GtkLabel, или устанавливая привязку клавиш с помощью gtk_widget_class_add_binding(), или добавляя акселераторы к глобальным действиям с помощью gtk_application_set_accels_for_action().
Но можно создать свой контроллер ярлыков и добавить в него ярлыки.
GtkShortcutController реализует GListModel для запроса ярлыков, которые были добавлены в него.
GtkShortcutController как GtkBuildable
GtkShortcutControllers могут быть созданы в файлах пользовательского интерфейса для настройки ярлыков в том же месте, что и виджеты.
Пример фрагмента определения пользовательского интерфейса с GtkShortcutController:
<object class='GtkButton'>
<child>
<object class='GtkShortcutController'>
<property name='scope'>managed</property>
<child>
<object class='GtkShortcut'>
<property name='trigger'><Control>k</property>
<property name='action'>activate</property>
</object>
</child>
</object>
</child>
</object>В этом примере создаётся GtkActivateAction для запуска сигнала activate GtkButton. Смотрите gtk_shortcut_action_parse_string() для синтаксиса других типов GtkShortcutAction. Смотрите gtk_shortcut_trigger_parse_string(), чтобы узнать больше о синтаксисе триггеров.
Функции
gtk_shortcut_controller_new ()
GtkEventController *
gtk_shortcut_controller_new (void); Создаёт новый контроллер сочетаний клавиш.
Возвращает
новый созданный контроллер сочетаний клавиш
gtk_shortcut_controller_new_for_model ()
GtkEventController *
gtk_shortcut_controller_new_for_model (GListModel *model); Создаёт новый контроллер сочетаний клавиш, получающий сочетания из заданного списка моделей.
Контроллер, созданный этой функцией, не позволяет добавлять или удалять отдельные сочетания клавиш с помощью API контроллера сочетаний клавиш, но вы можете изменять содержимое модели.
Параметры
model | a GListModel содержащий сочетания клавиш |
Возвращает
новый созданный контроллер сочетаний клавиш
gtk_shortcut_controller_set_mnemonics_modifiers ()
void gtk_shortcut_controller_set_mnemonics_modifiers (GtkShortcutController *self,GdkModifierType modifiers);
Устанавливает контроллер с заданными mnemonics_modifiers.
Модификаторы мнемоники определяют, какие модификаторы необходимо нажать, чтобы активировать сочетания клавиш с триггерами мнемоники.
GTK обычно использует модификатор Alt для мнемоники, за исключением GtkPopoverMenu, где мнемоника может быть активирована без каких-либо модификаторов. Изменять это значение нужно очень редко, и это вероятно повлияет на другие сочетания клавиш.
Это значение актуально только для локальных контроллеров сочетаний клавиш. Глобальные и управляемые контроллеры сочетаний клавиш будут активировать сочетания клавиш из других мест, у которых есть свои собственные модификаторы для активации мнемоники.
Параметры
self | ||
modifiers | новые модификаторы мнемоники для использования |
gtk_shortcut_controller_get_mnemonics_modifiers ()
GdkModifierType
gtk_shortcut_controller_get_mnemonics_modifiers
(GtkShortcutController *self); Получает модификаторы мнемоники для активации сочетаний клавиш этим контроллером. Подробнее см. gtk_shortcut_controller_set_mnemonics_modifiers().
Параметры
self |
Возвращает
модификаторы мнемоники контроллера
gtk_shortcut_controller_set_scope ()
void gtk_shortcut_controller_set_scope (GtkShortcutController *self,GtkShortcutScope scope);
Устанавливает контроллер с указанным scope.
Область действия позволяет активировать сочетания клавиш за пределами обычной передачи событий. В частности, это позволяет устанавливать глобальные сочетания клавиш, которые могут быть активированы даже когда виджет не имеет фокуса.
С GTK_SHORTCUT_SCOPE_LOCAL, сочетания клавиш будут активированы только когда виджет имеет фокус.
Параметры
self | ||
scope | новая область действия для использования |
gtk_shortcut_controller_get_scope ()
GtkShortcutScope
gtk_shortcut_controller_get_scope (GtkShortcutController *self); Получает область действия для активации сочетаний клавиш этим контроллером. Подробности см. в gtk_shortcut_controller_set_scope().
Параметры
self |
Возвращает
область действия контроллера
gtk_shortcut_controller_add_shortcut ()
void gtk_shortcut_controller_add_shortcut (GtkShortcutController *self,GtkShortcut *shortcut);
Добавляет shortcut в список сочетаний клавиш, обрабатываемых self.
Если этот контроллер использует внешний список сочетаний клавиш, эта функция ничего не делает.
Параметры
self | контроллер | |
shortcut | a GtkShortcut. | [transfer full] |
gtk_shortcut_controller_remove_shortcut ()
void gtk_shortcut_controller_remove_shortcut (GtkShortcutController *self,GtkShortcut *shortcut);
Удаляет shortcut из списка сочетаний клавиш, обрабатываемых self.
Если shortcut не был добавлен в controller или этот контроллер использует внешний список сочетаний клавиш, эта функция ничего не делает.
Параметры
self | контроллер | |
shortcut |
Типы и значения
GtkShortcutController
typedef struct _GtkShortcutController GtkShortcutController;
перечисление GtkShortcutScope
Описывает, где GtkСочетанияКлавиш добавленные в GtkShortcutController обрабатываются.
Элементы
GTK_SHORTCUT_SCOPE_LOCAL | Сочетания клавиш обрабатываются внутри виджета, к которому принадлежит контроллер. | |
GTK_SHORTCUT_SCOPE_MANAGED | Сочетания клавиш обрабатываются первым предком, который является GtkShortcutManager | |
GTK_SHORTCUT_SCOPE_GLOBAL | Сочетания клавиш обрабатываются корневым виджетом. |
GtkShortcutManager
typedef struct _GtkShortcutManager GtkShortcutManager;
Этот объект используется для реализации поддержки GtkShortcutScopes. Каждый виджет, реализующий GtkShortcutManager, будет использоваться как GTK_SHORTCUT_SCOPE_MANAGED.
struct GtkShortcutManagerInterface
struct GtkShortcutManagerInterface {
void (* add_controller) (GtkShortcutManager *self,
GtkShortcutController *controller);
void (* remove_controller) (GtkShortcutManager *self,
GtkShortcutController *controller);
};
Список функций, которые можно реализовать для интерфейса GtkShortcutManager.
Обратите внимание, что реализация ни одной функции не является обязательной, стандартная реализация будет работать нормально.
Подробности свойств
Свойство “mnemonic-modifiers”
“mnemonic-modifiers” GdkModifierType
Модификаторы, которые нужно нажать, чтобы активировать мнемонику.
Владелец: GtkShortcutController
Флаги: Чтение / Запись
Значение по умолчанию: GDK_ALT_MASK
Свойство “model”
“model” GListModel *
Модель списка для получения сочетаний клавиш
Владелец: GtkShortcutController
Флаги: Запись / Только для создания
Свойство “scope”
“scope” GtkShortcutScope
Область действия, в которой будут обрабатываться сочетания клавиш.
Владелец: GtkShortcutController
Флаги: Чтение / Запись
Значение по умолчанию: GTK_SHORTCUT_SCOPE_LOCAL
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkShortcutController.html