GtkEventControllerScroll
GtkEventControllerScroll — Контроллер событий для скроллинга
Функции
Свойства
| GtkEventControllerScrollFlags | flags | Чтение / Запись |
Сигналы
| void | decelerate | Выполняется первым |
| void | scroll | Выполняется первым |
| void | scroll-begin | Выполняется первым |
| void | scroll-end | Выполняется первым |
Типы и Значения
| GtkEventControllerScroll | |
| перечисление | GtkEventControllerScrollFlags |
Иерархия объектов
GObject
╰── GtkEventController
╰── GtkEventControllerScroll
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkEventControllerScroll — контроллер событий, предназначенный для обработки событий прокрутки с помощью мыши и сенсорных панелей. Он способен обрабатывать как дискретные, так и непрерывные события прокрутки, абстрагируя их оба в сигнале “scroll” (дельта в дискретном случае — кратные 1).
В случае непрерывных событий прокрутки GtkEventControllerScroll включает все события “scroll” между двумя сигналами “scroll-begin” и “scroll-end”.
Поведение контроллера событий можно изменить с помощью флагов, заданных во время создания, или изменить позже с помощью gtk_event_controller_scroll_set_flags() (например, потому что изменились условия прокрутки виджета).
Контроллер может быть настроен на вызов событий движения как для вертикальной, так и для горизонтальной прокрутки через GTK_EVENT_CONTROLLER_SCROLL_VERTICAL, GTK_EVENT_CONTROLLER_SCROLL_HORIZONTAL и GTK_EVENT_CONTROLLER_SCROLL_BOTH. Если какая-либо ось отключена, соответствующая дельта “scroll” будет равна 0. Вертикальные события прокрутки будут преобразованы в горизонтальное движение для устройств, неспособных к горизонтальной прокрутке.
Контроллер событий также может быть настроен на вызов дискретных событий на всех устройствах с помощью GTK_EVENT_CONTROLLER_SCROLL_DISCRETE. Это можно использовать для реализации дискретных действий, вызываемых событиями прокрутки (например, переключение опций в выпадающем списке).
Флаг GTK_EVENT_CONTROLLER_SCROLL_KINETIC включает в себя отправку сигнала “decelerate” в конце прокрутки с двумя аргументами скорости X/Y, которые соответствуют полученному движению.
Этот объект был добавлен в 3.24.
Подробное описание функций
gtk_event_controller_scroll_new ()
GtkEventController * gtk_event_controller_scroll_new (GtkWidget *widget,GtkEventControllerScrollFlags flags);
Создает новый контроллер событий, который будет обрабатывать события прокрутки для данного widget .
Параметры
widget | GtkWidget | |
flags | флаги поведения |
Возвращаемое значение
новый GtkEventControllerScroll
С версии: 3.24
gtk_event_controller_scroll_set_flags ()
void gtk_event_controller_scroll_set_flags (GtkEventControllerScroll *controller,GtkEventControllerScrollFlags flags);
Устанавливает флаги, определяющие поведение контроллера прокрутки.
Параметры
scroll | GtkEventControllerScroll | |
flags | флаги поведения |
С версии: 3.24
gtk_event_controller_scroll_get_flags ()
GtkEventControllerScrollFlags
gtk_event_controller_scroll_get_flags (GtkEventControllerScroll *controller); Получает флаги, определяющие поведение контроллера прокрутки.
Параметры
scroll | GtkEventControllerScroll |
Возвращаемое значение
флаги контроллера.
С версии: 3.24
Типы и значения
GtkEventControllerScroll
typedef struct _GtkEventControllerScroll GtkEventControllerScroll;
перечисление GtkEventControllerScrollFlags
Описывает поведение GtkEventControllerScroll.
Члены
GTK_EVENT_CONTROLLER_SCROLL_NONE | Не генерировать события прокрутки. | |
GTK_EVENT_CONTROLLER_SCROLL_VERTICAL | Генерировать события прокрутки с вертикальными смещениями. | |
GTK_EVENT_CONTROLLER_SCROLL_HORIZONTAL | Генерировать события прокрутки с горизонтальными смещениями. | |
GTK_EVENT_CONTROLLER_SCROLL_DISCRETE | Генерировать только смещения, кратные 1. | |
GTK_EVENT_CONTROLLER_SCROLL_KINETIC | Генерировать сигнал «деcelerate» после завершения непрерывной прокрутки. | |
GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES | Генерировать события прокрутки по обеим осям. |
С: 3.24
Подробности свойств
Свойство “flags”
“flags” GtkEventControllerScrollFlags
Флаги, влияющие на поведение контроллера событий
Владелец: GtkEventControllerScroll
Флаги: Чтение / Запись
С: 3.24
Подробности сигналов
Сигнал “decelerate”
void user_function (GtkEventControllerScroll *controller, double vel_x, double vel_y, gpointer user_data)
Выпускается после завершения прокрутки, если установлен флаг GTK_EVENT_CONTROLLER_SCROLL_KINETIC. vel_x и vel_y выражают начальную скорость, заданную событиями прокрутки. vel_x и vel_y выражаются в пикселях/мс.
Параметры
controller | Объект, получивший сигнал | |
vel_x | Скорость по оси X | |
vel_y | Скорость по оси Y | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
Сигнал “scroll”
void user_function (GtkEventControllerScroll *controller, double dx, double dy, gpointer user_data)
Сигнализирует, что виджет должен прокрутиться на количество, указанное dx и dy .
Параметры
controller | Объект, получивший сигнал | |
dx | Смещение по оси X | |
dy | Смещение по оси Y | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
Сигнал “scroll-begin”
void user_function (GtkEventControllerScroll *controller, gpointer user_data)
Сигнализирует о начале новой операции прокрутки. Будет генерироваться только на устройствах, способных к этому.
Параметры
controller | Объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
Сигнал “scroll-end”
void user_function (GtkEventControllerScroll *controller, gpointer user_data)
Сигнализирует о завершении новой операции прокрутки. Будет генерироваться только на устройствах, способных к этому.
Параметры
controller | Объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
См. также
© 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/GtkEventControllerScroll.html