GtkPadController
GtkPadController — Контроллер для рисования планшетов
Функции
Свойства
| GActionGroup * | action-group | Чтение / Запись / Только для создания |
| GdkDevice * | pad | Чтение / Запись / Только для создания |
Типы и значения
| GtkPadController | |
| перечисление | GtkPadActionType |
| структура | GtkPadActionEntry |
Иерархия объектов
GObject ╰── GtkEventController ╰── GtkPadController
Включенные файлы
#include <gtk/gtk.h>
Описание
GtkPadController — это контроллер событий для планшетов, используемых в устройствах для рисования (набор кнопок и тактильных датчиков, часто встречающихся вокруг области, чувствительной к стилусу).
Эти кнопки и датчики не имеют неявного значения и по умолчанию не выполняют никаких действий. Этот контроллер событий предназначен для сопоставления этих кнопок и датчиков с объектами GAction, позволяя приложению назначить им более осмысленное значение.
Кнопки и датчики не ограничены срабатыванием одного действия. Некоторые устройства с сенсорными панелями GDK_SOURCE_TABLET_PAD имеют несколько «режимов». Все эти элементы ввода имеют один текущий режим, который может определять конечное действие, которое будет выполнено. Устройства с сенсорными панелями часто делят кнопки и датчики на группы. Все элементы в группе имеют один и тот же текущий режим, но разные группы могут иметь разные режимы. См. 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 (window, action_group, NULL);
Действия, относящиеся к кольцам/полоскам, будут активированы с параметром типа G_VARIANT_TYPE_DOUBLE, содержащим значение заданной оси. Необходимо, чтобы они были состояниями и принимали этот GVariantType.
Функции
gtk_pad_controller_new ()
GtkPadController * gtk_pad_controller_new (GtkWindow *window,GActionGroup *group,GdkDevice *pad);
Создаёт новый GtkPadController, который будет связывать события с pad действиями. Можно предоставить NULL устройство, чтобы контроллер управлял всеми устройствами планшета универсально. Не рекомендуется смешивать объекты GtkPadController с NULL и не-NULL pad аргументом в одном и том же window, так как порядок выполнения не гарантируется.
Созданный GtkPadController не имеет сопоставленных действий. Чтобы сопоставить события планшета с действиями, используйте gtk_pad_controller_set_action_entries() или gtk_pad_controller_set_action().
Параметры
window | окно GtkWindow | |
group | GActionGroup для запуска действий | |
pad | устройство | [nullable] |
Возвращаемое значение
Созданный GtkPadController
С версии: 3.22
gtk_pad_controller_set_action_entries ()
void gtk_pad_controller_set_action_entries (GtkPadController *controller,const GtkPadActionEntry *entries,gint n_entries);
Удобная функция для добавления группы записей действий в controller. См. GtkPadActionEntry и gtk_pad_controller_set_action().
Параметры
controller | ||
entries | записи действий, которые нужно установить в | [array length=n_entries] |
n_entries | количество элементов в |
С версии: 3.22
gtk_pad_controller_set_action ()
void gtk_pad_controller_set_action (GtkPadController *controller,GtkPadActionType type,gint index,gint mode,const gchar *label,const gchar *action_name);
Добавляет отдельное действие к controller. Это действие будет активировано, только если будет взаимодействие с заданным номером кнопки/кольца/полосы в index, в то время как текущий режим — mode. -1 может быть использовано для простых случаев, поэтому действие активируется во всех режимах.
Указанное label должно считаться видимым для пользователя, поэтому применяются правила интернационализации. Некоторые оконные системы могут использовать их для обратной связи с пользователем.
Параметры
controller | ||
type | тип функции устройства планшета, который будет активировать это действие | |
index | 0-индексированный номер кнопки/кольца/полосы, который запустит это действие | |
mode | режим, который запустит это действие, или -1 для всех режимов. | |
label | человеко-понятное описание этого действия, эта строка должна считаться видимой для пользователя. | |
action_name | имя действия, которое будет активировано в GActionGroup |
С версии: 3.22
Типы и значения
GtkPadController
typedef struct _GtkPadController GtkPadController;
Перечисление GtkPadActionType
Тип действия планшета.
Элементы
GTK_PAD_ACTION_BUTTON | Действие выполняется при нажатии кнопки планшета | |
GTK_PAD_ACTION_RING | Действие выполняется при вращении кольца планшета | |
GTK_PAD_ACTION_STRIP | Действие выполняется при перемещении по полосе планшета |
Структура GtkPadActionEntry
struct GtkPadActionEntry {
GtkPadActionType type;
gint index;
gint mode;
gchar *label;
gchar *action_name;
};
Структура, определяющая запись действия планшета.
Элементы
GtkPadActionType | тип функции устройства планшета, который будет активировать эту запись действия. | |
gint | 0-индексированный номер кнопки/кольца/полосы, который запустит эту запись действия. | |
gint | режим, который запустит эту запись действия, или -1 для всех режимов. | |
gchar * | человеко-понятное описание этой записи действия, эта строка должна считаться видимой для пользователя. | |
gchar * | имя действия, которое будет активировано в GActionGroup. |
Подробное описание свойств
Свойство “action-group”
“action-group” GActionGroup *
Группа действий для запуска действий.
Флаги: Чтение / Запись / Только построение
Свойство “pad”
“pad” GdkDevice *
Устройство планшета для управления.
Флаги: Чтение / Запись / Только построение
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkPadController.html