Spec-Zone.ru › GTK 3.24

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 *

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

Владелец: GtkPadController

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

Свойство “pad”

  “pad”                      GdkDevice *

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

Владелец: GtkPadController

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

См. также

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.24/GtkPadController.html

Spec-Zone.ru

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