Spec-Zone.ru › GTK 3.22

GtkPadController

GtkPadController — Контроллер для рисования планшетов

Функции

GtkPadController * gtk_pad_controller_new ()
void gtk_pad_controller_set_action_entries ()
void gtk_pad_controller_set_action ()

Свойства

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

устройство GDK_SOURCE_TABLET_PAD, или NULL для обработки всех устройств планшета.

[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

GtkPadController

entries

записи действий, которые нужно установить в controller.

[array length=n_entries]

n_entries

количество элементов в 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

GtkPadController

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 type;

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

gint index;

0-индексированный номер кнопки/кольца/полосы, который запустит эту запись действия.

gint mode;

режим, который запустит эту запись действия, или -1 для всех режимов.

gchar *label;

человеко-понятное описание этой записи действия, эта строка должна считаться видимой для пользователя.

gchar *action_name;

имя действия, которое будет активировано в GActionGroup.

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

Свойство “action-group”

  “action-group”             GActionGroup *

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

Флаги: Чтение / Запись / Только построение

Свойство “pad”

  “pad”                      GdkDevice *

Устройство планшета для управления.

Флаги: Чтение / Запись / Только построение

См. также

GtkEventController, GdkDevicePad

© 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

Spec-Zone.ru

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