Spec-Zone.ru › GTK 4.0

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_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

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

[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

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

[array length=n_entries]

n_entries

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

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

int index;

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

int mode;

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

const char *label;

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

const char *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-old.gnome.org/gtk4/4.0/GtkPadController.html

Spec-Zone.ru

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