GtkEventController
GtkEventController — Самодостаточный обработчик последовательности событий
Функции
Свойства
| char * | name | Чтение/Запись |
| GtkPropagationLimit | propagation-limit | Чтение/Запись |
| GtkPropagationPhase | propagation-phase | Чтение/Запись |
| GtkWidget * | widget | Чтение |
Типы и значения
| GtkEventController | |
| перечисление | GtkPropagationPhase |
| перечисление | GtkPropagationLimit |
Иерархия объектов
GObject
╰── GtkEventController
├── GtkGesture
├── GtkDropControllerMotion
├── GtkDropTargetAsync
├── GtkDropTarget
├── GtkEventControllerKey
├── GtkEventControllerFocus
├── GtkEventControllerLegacy
├── GtkEventControllerMotion
├── GtkEventControllerScroll
├── GtkPadController
╰── GtkShortcutController
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkEventController — базовая, низкоуровневая реализация контроллеров событий. Они реагируют на серию событий Gdk, и, возможно, инициируют действия в ответ на них.
Функции
gtk_event_controller_get_propagation_phase ()
GtkPropagationPhase
gtk_event_controller_get_propagation_phase
(GtkEventController *controller); Получает фазу распространения, на которой controller обрабатывает события.
Параметры
controller |
Возвращаемое значение
фаза распространения
gtk_event_controller_set_propagation_phase ()
void gtk_event_controller_set_propagation_phase (GtkEventController *controller,GtkPropagationPhase phase);
Устанавливает фазу распространения, на которой контроллер обрабатывает события.
Если phase равна GTK_PHASE_NONE, автоматическая обработка событий не будет выполняться, но будет поддерживаться выполнение других дополнительных действий. В этой фазе события можно обрабатывать, вызывая gtk_event_controller_handle_event().
Параметры
controller | ||
phase | фаза распространения |
gtk_event_controller_get_propagation_limit ()
GtkPropagationLimit
gtk_event_controller_get_propagation_limit
(GtkEventController *controller); Получает предел распространения события для контроллера.
Параметры
controller |
Возвращаемое значение
предел распространения
gtk_event_controller_set_propagation_limit ()
void gtk_event_controller_set_propagation_limit (GtkEventController *controller,GtkPropagationLimit limit);
Устанавливает предел распространения событий для контроллера.
Если предел установлен на GTK_LIMIT_SAME_NATIVE, контроллер не будет обрабатывать события, направленные на виджеты на другой поверхности, например, всплывающие окна.
Параметры
controller | ||
limit | предел распространения |
gtk_event_controller_get_widget ()
GtkWidget *
gtk_event_controller_get_widget (GtkEventController *controller); Возвращает GtkWidget, к которому относится этот контроллер.
Параметры
controller |
gtk_event_controller_reset ()
void
gtk_event_controller_reset (GtkEventController *controller); Сбрасывает controller в чистое состояние. Все взаимодействия, которые контроллер осуществил через gtk_event_controller_handle_event(), будут отменены в этот момент.
Параметры
controller |
gtk_event_controller_get_name ()
const char *
gtk_event_controller_get_name (GtkEventController *controller); Получает имя controller.
Параметры
controller |
gtk_event_controller_set_name ()
void gtk_event_controller_set_name (GtkEventController *controller,const char *name);
Устанавливает имя контроллера, которое может использоваться для отладки.
Параметры
controller | ||
name | имя для |
gtk_event_controller_get_current_event ()
GdkEvent *
gtk_event_controller_get_current_event
(GtkEventController *controller); Возвращает событие, которое в данный момент обрабатывается контроллером, и NULL в других случаях.
Параметры
controller |
Возвращаемое значение
событие, в данный момент обрабатываемое controller.
[nullable][transfer none]
gtk_event_controller_get_current_event_device ()
GdkDevice *
gtk_event_controller_get_current_event_device
(GtkEventController *controller); Возвращает устройство события, которое в данный момент обрабатывается контроллером, и NULL в противном случае.
Параметры
controller |
Возвращаемое значение
устройство события, в данный момент обрабатываемое controller.
[nullable][transfer none]
gtk_event_controller_get_current_event_state ()
GdkModifierType
gtk_event_controller_get_current_event_state
(GtkEventController *controller); Возвращает состояние модификаторов события, которое в данный момент обрабатывается контроллером, и 0 в противном случае.
Параметры
controller |
Возвращаемое значение
состояние модификаторов события, в данный момент обрабатываемое controller
gtk_event_controller_get_current_event_time ()
guint32
gtk_event_controller_get_current_event_time
(GtkEventController *controller); Возвращает метку времени события, которое в данный момент обрабатывается контроллером, и 0 в противном случае.
Параметры
controller |
Возвращаемое значение
метка времени события, в данный момент обрабатываемое controller
Типы и значения
GtkEventController
typedef struct _GtkEventController GtkEventController;
Перечисление GtkPropagationPhase
Описывает стадию, на которой события передаются в GtkEventController.
Элементы
GTK_PHASE_NONE | События не доставляются. | |
GTK_PHASE_CAPTURE | События доставляются на фазе захвата. Фаза захвата происходит до фазы всплытия, выполняется сверху вниз от верхнего уровня до виджета события. Этот параметр следует использовать только для контейнеров, которые могут обрабатывать события до своих дочерних элементов. | |
GTK_PHASE_BUBBLE | События доставляются на фазе всплытия. Фаза всплытия происходит после фазы захвата и перед запуском обработчиков по умолчанию. Эта фаза выполняется от виджета события до верхнего уровня. | |
GTK_PHASE_TARGET | События доставляются в обработчики событий виджетов по умолчанию, обратите внимание, что реализации виджетов должны обеспечивать цепочку обработки для кнопок, перемещений, касаний и прерывания захвата для контроллеров на этой фазе, чтобы они могли быть запущены. |
Перечисление GtkPropagationLimit
Описывает ограничения GtkEventController для обработки событий, нацеленных на другие виджеты.
Элементы
GTK_LIMIT_NONE | События обрабатываются независимо от их целевого объекта. | |
GTK_LIMIT_SAME_NATIVE | События обрабатываются только в том случае, если их целевой объект находится в том же GtkNative, что и виджет контроллера событий. Обратите внимание, что некоторые типы событий имеют два целевых объекта (источник и пункт назначения). |
Подробное описание свойств
Свойство “name”
“name” char *
Имя этого контроллера, обычно используемое для отладки.
Владелец: GtkEventController
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Свойство “propagation-limit”
“propagation-limit” GtkPropagationLimit
Предел, для обработки событий данным контроллером.
Владелец: GtkEventController
Флаги: Чтение / Запись
Значение по умолчанию: GTK_LIMIT_SAME_NATIVE
Свойство “propagation-phase”
“propagation-phase” GtkPropagationPhase
Фаза распространения, на которой этот контроллер будет обрабатывать события.
Владелец: GtkEventController
Флаги: Чтение / Запись
Значение по умолчанию: GTK_PHASE_BUBBLE
См. также
© 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/GtkEventController.html