Define YDK/YTKMM Touch Event API

This commit is contained in:
Robin Gareus 2024-09-16 23:27:59 +02:00
parent 84027120cc
commit 89da2f2c87
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
12 changed files with 306 additions and 1 deletions

View file

@ -197,6 +197,9 @@ enum {
KEYNAV_FAILED,
DRAG_FAILED,
DAMAGE_EVENT,
TOUCH_BEGIN,
TOUCH_UPDATE,
TOUCH_END,
LAST_SIGNAL
};
@ -537,6 +540,9 @@ gtk_widget_class_init (GtkWidgetClass *klass)
klass->drag_drop = NULL;
klass->drag_data_received = NULL;
klass->screen_changed = NULL;
klass->touch_begin_event = NULL;
klass->touch_update_event = NULL;
klass->touch_end_event = NULL;
klass->can_activate_accel = gtk_widget_real_can_activate_accel;
klass->grab_broken_event = NULL;
klass->query_tooltip = gtk_widget_real_query_tooltip;
@ -2377,6 +2383,39 @@ gtk_widget_class_init (GtkWidgetClass *klass)
G_TYPE_NONE, 1,
GDK_TYPE_SCREEN);
/* YTK Touch */
widget_signals[TOUCH_BEGIN] =
g_signal_new (I_("touch-start"),
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GtkWidgetClass, touch_begin_event),
_gtk_boolean_handled_accumulator, NULL,
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
widget_signals[TOUCH_UPDATE] =
g_signal_new (I_("touch-update"),
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GtkWidgetClass, touch_update_event),
_gtk_boolean_handled_accumulator, NULL,
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
widget_signals[TOUCH_END] =
g_signal_new (I_("touch-end"),
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GtkWidgetClass, touch_end_event),
_gtk_boolean_handled_accumulator, NULL,
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
/**
* GtkWidget::can-activate-accel:
* @widget: the object which received the signal
@ -5001,6 +5040,15 @@ gtk_widget_event_internal (GtkWidget *widget,
case GDK_DAMAGE:
signal_num = DAMAGE_EVENT;
break;
case GDK_TOUCH_BEGIN:
signal_num = TOUCH_BEGIN;
break;
case GDK_TOUCH_END:
signal_num = TOUCH_END;
break;
case GDK_TOUCH_UPDATE:
signal_num = TOUCH_UPDATE;
break;
default:
g_warning ("gtk_widget_event(): unhandled event type: %d", event->type);
signal_num = -1;