Spec-Zone.ru › GTK 4.0

GtkEventControllerScroll

GtkEventControllerScroll — Контроллер событий для прокрутки

Функции

GtkEventController * gtk_event_controller_scroll_new ()
void gtk_event_controller_scroll_set_flags ()
GtkEventControllerScrollFlags gtk_event_controller_scroll_get_flags ()

Свойства

GtkEventControllerScrollFlags flags Чтение / Запись

Сигналы

void decelerate Выполнять первым
gboolean 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_AXES. Если какая-либо ось отключена, соответствующая дельта “scroll” будет равна 0. События вертикальной прокрутки будут преобразованы в горизонтальное движение для устройств, не способных к горизонтальной прокрутке.

Контроллер событий также можно заставить отправлять дискретные события на всех устройствах с помощью GTK_EVENT_CONTROLLER_SCROLL_DISCRETE. Это можно использовать для реализации дискретных действий, запускаемых событиями прокрутки (например, переключение между элементами раскрывающегося списка).

Флаг GTK_EVENT_CONTROLLER_SCROLL_KINETIC включает отправку сигнала “decelerate”, отправляемого в конце прокрутки с двумя аргументами скорости X/Y, соответствующими принятому движению.

Функции

gtk_event_controller_scroll_new ()

GtkEventController *
gtk_event_controller_scroll_new (GtkEventControllerScrollFlags flags);

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

Параметры

flags

флаги поведения

Возвращает

новый GtkEventControllerScroll

gtk_event_controller_scroll_set_flags ()

void
gtk_event_controller_scroll_set_flags (GtkEventControllerScroll *scroll,
                                       GtkEventControllerScrollFlags flags);

Устанавливает флаги, определяющие поведение контроллера прокрутки.

Параметры

scroll

a GtkEventControllerScroll

flags

флаги поведения

gtk_event_controller_scroll_get_flags ()

GtkEventControllerScrollFlags
gtk_event_controller_scroll_get_flags (GtkEventControllerScroll *scroll);

Получает флаги, определяющие поведение контроллера прокрутки.

Параметры

scroll

a GtkEventControllerScroll

Возвращает

флаги контроллера.

Типы и значения

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

Отправлять сигнал “decelerate” после завершения непрерывной прокрутки.

GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES

Отправлять события прокрутки по обеим осям.

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

Свойство “flags”

  “flags”                    GtkEventControllerScrollFlags

Флаги, влияющие на поведение контроллера событий

Владелец: GtkEventControllerScroll

Флаги: Чтение / Запись

Подробное описание сигналов

Сигнал “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”

gboolean
user_function (GtkEventControllerScroll *controller,
               double                    dx,
               double                    dy,
               gpointer                  user_data)

Сигнализирует о необходимости прокрутки на величину, указанную в dx и dy .

Параметры

controller

Объект, получивший сигнал

dx

Смещение по оси X

dy

Смещение по оси Y

user_data

Данные пользователя, установленные при подключении обработчика сигнала.

Возвращаемое значение

TRUE , если событие прокрутки обработано, FALSE в противном случае.

Флаги: Выполняется последним

Сигнал “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

Данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Выполняется первым

См. также

GtkEventController

© 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/GtkEventControllerScroll.html

Spec-Zone.ru

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