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
Since: 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] |
Since: 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 была заполнена областью нажатия
Since: 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.22/GtkGestureMultiPress.html