GtkPadController
GtkPadController — Контроллер для рисования планшетов
Функции
Свойства
| GActionGroup * | action-group | Чтение / Запись / Только для создания |
| GdkDevice * | pad | Чтение / Запись / Только для создания |
Типы и значения
| GtkPadController | |
| перечисление | GtkPadActionType |
| структура | GtkPadActionEntry |
Иерархия объектов
GObject
╰── GtkEventController
╰── GtkPadController
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkPadController — это контроллер событий для планшетов, входящих в состав планшетных устройств (набор кнопок и сенсорных датчиков, часто расположенных вокруг области, чувствительной к стилусу).
Эти кнопки и сенсоры не имеют неявного значения и по умолчанию не выполняют никаких действий. Этот контроллер событий предназначен для сопоставления их с объектами GAction, тем самым позволяя приложению придать им более семантическое значение.
Кнопки и датчики не ограничены срабатыванием одной единственной команды; некоторые устройства с поддержкой планшетного ввода имеют несколько «режимов». Все эти элементы ввода имеют один текущий режим, который может определять окончательное срабатывание команды. Устройства планшетного ввода часто делят кнопки и датчики на группы. Все элементы в группе используют один и тот же текущий режим, но разные группы могут иметь разные режимы. См. gdk_device_pad_get_n_groups() и gdk_device_pad_get_group_n_modes().
Каждое из действий, выполняемых данной кнопкой/полоской/кольцом для данного режима, определено в GtkPadActionEntry. Оно содержит имя действия, которое будет выполнено в данном GActionGroup и активируется всякий раз, когда указанный элемент ввода и режим срабатывают.
Простой пример использования GtkPadController, назначение кнопки 1 во всех режимах и на планшетах для действия «инвертировать выбор»:
GtkPadActionEntry *pad_actions[] = {
{ GTK_PAD_ACTION_BUTTON, 1, -1, "Invert selection", "pad-actions.invert-selection" },
…
};
…
action_group = g_simple_action_group_new ();
action = g_simple_action_new ("pad-actions.invert-selection", NULL);
g_signal_connect (action, "activate", on_invert_selection_activated, NULL);
g_action_map_add_action (G_ACTION_MAP (action_group), action);
…
pad_controller = gtk_pad_controller_new (action_group, NULL);Действия, относящиеся к кольцам/полоскам, будут активироваться с параметром типа G_VARIANT_TYPE_DOUBLE, содержащим значение заданной оси. Требуется, чтобы они были состоятельными и принимали этот GVariantType.
Функции
gtk_pad_controller_new ()
GtkPadController * gtk_pad_controller_new (GActionGroup *group,GdkDevice *pad);
Создаёт новый GtkPadController, который свяжет события от pad с действиями. Может быть предоставлен NULL планшет, чтобы контроллер управлял всеми устройствами планшетов обобщённо. Не рекомендуется смешивать объекты GtkPadController с NULL и не-NULL pad аргументом в одном окне верхнего уровня, так как порядок выполнения не гарантируется.
GtkPadController создаётся без сопоставленных действий. Для сопоставления событий планшета с действиями используйте gtk_pad_controller_set_action_entries() или gtk_pad_controller_set_action().
Обратите внимание, что события планшетов будут передаваться только в GtkОкна, поэтому добавление контроллера планшета в любой другой тип виджета не повлияет на его работу.
Параметры
group | GActionGroup для запуска действий | |
pad | Устройство | [nullable] |
Возвращаемое значение
Созданный GtkPadController
gtk_pad_controller_set_action_entries ()
void gtk_pad_controller_set_action_entries (GtkPadController *controller,const GtkPadActionEntry *entries,int n_entries);
Это вспомогательная функция для добавления группы записей действий на controller . См. GtkPadActionEntry и gtk_pad_controller_set_action().
Параметры
controller | объект GtkPadController | |
entries | записи действий, которые нужно установить для | [array length=n_entries] |
n_entries | количество элементов в |
gtk_pad_controller_set_action ()
void gtk_pad_controller_set_action (GtkPadController *controller,GtkPadActionType type,int index,int mode,const char *label,const char *action_name);
Добавляет отдельное действие к controller. Это действие будет активировано только если заданный номер кнопки/кольца/полосы в index взаимодействует, в то время как текущий режим - mode. -1 может использоваться в простых случаях, для активации действия во всех режимах.
Указанное label должно рассматриваться как видимое пользователю, поэтому применяются правила интернационализации. Некоторые оконные системы могут использовать эти данные для отклика пользователю.
Параметры
controller | объект GtkPadController | |
type | тип элемента планшета, который активирует это действие | |
index | номер кнопки/кольца/полосы (с индексом 0), которая активирует это действие | |
mode | режим, который активирует это действие, или -1 для всех режимов. | |
label | Человекопонятное описание этого действия; эта строка должна считаться видимой пользователю. | |
action_name | имя действия, которое будет активировано в GActionGroup |
Типы и значения
GtkPadController
typedef struct _GtkPadController GtkPadController;
перечисление GtkPadActionType
Тип действия на панели.
Элементы
GTK_PAD_ACTION_BUTTON | Действие инициируется кнопкой панели | |
GTK_PAD_ACTION_RING | Действие инициируется кольцом панели | |
GTK_PAD_ACTION_STRIP | Действие инициируется полосой панели |
структура GtkPadActionEntry
struct GtkPadActionEntry {
GtkPadActionType type;
int index;
int mode;
const char *label;
const char *action_name;
};
Структура, определяющая запись действия на панели.
Элементы
GtkPadActionType | тип функциональной особенности панели, которая вызовет эту запись действия. | |
int | номер кнопки/кольца/полосы (с индексом 0), которая вызовет эту запись действия. | |
int | режим, который вызовет эту запись действия, или -1 для всех режимов. | |
const char * | человекопонятное описание этой записи действия, эта строка должна считаться отображаемой пользователю. | |
const char * | имя действия, которое будет активировано в GActionGroup. |
Подробное описание свойств
Свойство “action-group”
“action-group” GActionGroup *
Группа действий для запуска действий.
Владелец: GtkPadController
Флаги: Чтение / Запись / Только для создания
Свойство “pad”
“pad” GdkDevice *
Устройство панели для управления.
Владелец: GtkPadController
Флаги: Чтение / Запись / Только для создания
См. также
© 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/GtkPadController.html