diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2013-01-17 20:55:24 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2014-05-23 19:54:21 +0200 |
commit | e2b8ef8c6680dbbd000070e1d55b23ce453bddcb (patch) | |
tree | 8d3be656528f26f871559375e0a9a3762ce0b601 /gtk/gtkeventcontroller.h | |
parent | 6c49ffe9164521a1c511fb975136b52e25157f30 (diff) | |
download | gtk+-e2b8ef8c6680dbbd000070e1d55b23ce453bddcb.tar.gz |
Add GtkEventController
This is a basic abstract type that handles GdkEvents.
Diffstat (limited to 'gtk/gtkeventcontroller.h')
-rw-r--r-- | gtk/gtkeventcontroller.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/gtk/gtkeventcontroller.h b/gtk/gtkeventcontroller.h new file mode 100644 index 0000000000..12c5d2a393 --- /dev/null +++ b/gtk/gtkeventcontroller.h @@ -0,0 +1,79 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2012, One Laptop Per Child. + * Copyright (C) 2014, Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + * Author(s): Carlos Garnacho <carlosg@gnome.org> + */ +#ifndef __GTK_EVENT_CONTROLLER_H__ +#define __GTK_EVENT_CONTROLLER_H__ + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only <gtk/gtk.h> can be included directly." +#endif + +typedef struct _GtkEventController GtkEventController; +typedef struct _GtkEventControllerClass GtkEventControllerClass; + +#include <gdk/gdk.h> +#include <gtk/gtktypes.h> + +G_BEGIN_DECLS + +#define GTK_TYPE_EVENT_CONTROLLER (gtk_event_controller_get_type ()) +#define GTK_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_EVENT_CONTROLLER, GtkEventController)) +#define GTK_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_EVENT_CONTROLLER, GtkEventControllerClass)) +#define GTK_IS_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_EVENT_CONTROLLER)) +#define GTK_IS_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_EVENT_CONTROLLER)) +#define GTK_EVENT_CONTROLLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_EVENT_CONTROLLER, GtkEventControllerClass)) + +struct _GtkEventController +{ + GObject parent_instance; +}; + +struct _GtkEventControllerClass +{ + GObjectClass parent_class; + + gboolean (* handle_event) (GtkEventController *controller, + const GdkEvent *event); + void (* reset) (GtkEventController *controller); + + /*<private>*/ + gpointer padding[10]; +}; + +GDK_AVAILABLE_IN_3_14 +GType gtk_event_controller_get_type (void) G_GNUC_CONST; + +GDK_AVAILABLE_IN_3_14 +GtkWidget * gtk_event_controller_get_widget (GtkEventController *controller); + +GDK_AVAILABLE_IN_3_14 +void gtk_event_controller_set_event_mask (GtkEventController *controller, + GdkEventMask event_mask); +GDK_AVAILABLE_IN_3_14 +GdkEventMask gtk_event_controller_get_event_mask (GtkEventController *controller); + +GDK_AVAILABLE_IN_3_14 +gboolean gtk_event_controller_handle_event (GtkEventController *controller, + const GdkEvent *event); +GDK_AVAILABLE_IN_3_14 +void gtk_event_controller_reset (GtkEventController *controller); + +G_END_DECLS + +#endif /* __GTK_EVENT_CONTROLLER_H__ */ |