GtkGestureMultiPress
GtkGestureMultiPress — Жест многократного нажатия
Функции
Типы и значения
Иерархия объектов
GObject ╰── GtkEventController ╰── GtkGesture ╰── GtkGestureSingle ╰── GtkGestureMultiPress
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkGestureMultiPress — это реализация GtkGesture, способная распознавать несколько нажатий в близлежащей зоне, которые можно прослушивать через сигнал “pressed”. Всякий раз, когда время или расстояние между нажатиями превышают значения по умолчанию GTK+, генерируется сигнал “stopped”, а счётчик нажатий сбрасывается.
Вызывающий код также может ограничить область, которая считается допустимой для нажатия более чем одной кнопкой/касанием, используя gtk_gesture_multi_press_set_area(), таким образом, любое нажатие, произошедшее вне этой области, считается первым нажатием.
Функции
gtk_gesture_multi_press_new ()
GtkGesture *
gtk_gesture_multi_press_new (GtkWidget *widget); Возвращает новый GtkGesture, распознающий одиночные и множественные нажатия.
Параметры
widget |
Возвращаемое значение
созданный GtkGestureMultiPress
С: 3.14
gtk_gesture_multi_press_set_area ()
void gtk_gesture_multi_press_set_area (GtkGestureMultiPress *gesture,const GdkRectangle *rect);
Если rect не NULL, область нажатия будет проверяться на соответствие прямоугольнику, в противном случае счётчик нажатий будет сброшен, и нажатие будет рассматриваться как первое. Если rect равно NULL, область будет сброшена в неограниченное состояние.
Примечание: Прямоугольник используется только для определения того, попадает ли любое нажатие, отличное от первого, в ожидаемую область. Это не аналогично форме ввода.
Параметры
gesture | ||
rect | прямоугольник для получения координат. | [allow-none] |
С: 3.14
gtk_gesture_multi_press_get_area ()
gboolean gtk_gesture_multi_press_get_area (GtkGestureMultiPress *gesture,GdkRectangle *rect);
Если область была установлена с помощью gtk_gesture_multi_press_set_area(), эта функция вернёт TRUE и заполнит rect областью нажатия. См. gtk_gesture_multi_press_set_area() для получения дополнительных сведений о том, что представляет собой область нажатия.
Параметры
gesture | ||
rect | возвращаемая область нажатия. | [out] |
Возвращаемое значение
TRUE, если rect была заполнена областью нажатия
С: 3.14
Типы и значения
GtkGestureMultiPress
typedef struct _GtkGestureMultiPress GtkGestureMultiPress;
Подробности сигналов
Сигнал “pressed”
void user_function (GtkGestureMultiPress *gesture, gint n_press, gdouble x, gdouble y, gpointer user_data)
Этот сигнал генерируется всякий раз, когда происходит нажатие кнопки или касание.
Параметры
gesture | объект, получивший сигнал | |
n_press | количество касаний/нажатий, произошедших в рамках данного события | |
x | Координата X, в координатах размещения виджета | |
y | Координата Y, в координатах размещения виджета | |
user_data | данные пользователя, заданные при подключении обработчика сигналов. |
Флаги: Выполнять последним
С версии: 3.14
Сигнал “released”
void user_function (GtkGestureMultiPress *gesture, gint n_press, gdouble x, gdouble y, gpointer user_data)
Этот сигнал генерируется при отпускании кнопки или завершении касания. n_press сообщит количество нажатий, связанных с этим событием. Обратите внимание, что сигнал «stopped» может быть сгенерирован между нажатием и его отпусканием. n_press будет начинаться только с новым нажатием.
Параметры
gesture | объект, получивший сигнал | |
n_press | количество нажатий, связанных с этим отпусканием | |
x | Координата X, в координатах размещения виджета | |
y | Координата Y, в координатах размещения виджета | |
user_data | данные пользователя, заданные при подключении обработчика сигналов. |
Флаги: Выполнять последним
С версии: 3.14
Сигнал “stopped”
void user_function (GtkGestureMultiPress *gesture, gpointer user_data)
Этот сигнал генерируется всякий раз, когда превышен любой порог времени или расстояния.
Параметры
gesture | объект, получивший сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигналов. |
Флаги: Выполнять последним
С версии: 3.14
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkGestureMultiPress.html