|
23 | 23 | #error "Only <sugar/event-controller/sugar-event-controllers.h> can be included directly." |
24 | 24 | #endif |
25 | 25 |
|
26 | | -#ifndef __SUGAR_SWIPE_CONTROLLER_H__ |
27 | | -#define __SUGAR_SWIPE_CONTROLLER_H__ |
| 26 | +#ifndef __SUGAR_EVENT_CONTROLLER_H__ |
| 27 | +#define __SUGAR_EVENT_CONTROLLER_H__ |
28 | 28 |
|
29 | | -#include "sugar-event-controller.h" |
30 | 29 | #include <gtk/gtk.h> |
31 | 30 |
|
32 | 31 | G_BEGIN_DECLS |
33 | 32 |
|
34 | | -#define SUGAR_TYPE_SWIPE_CONTROLLER (sugar_swipe_controller_get_type ()) |
35 | | -#define SUGAR_SWIPE_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SUGAR_TYPE_SWIPE_CONTROLLER, SugarSwipeController)) |
36 | | -#define SUGAR_SWIPE_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SUGAR_TYPE_SWIPE_CONTROLLER, SugarSwipeControllerClass)) |
37 | | -#define SUGAR_IS_SWIPE_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SUGAR_TYPE_SWIPE_CONTROLLER)) |
38 | | -#define SUGAR_IS_SWIPE_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SUGAR_TYPE_SWIPE_CONTROLLER)) |
39 | | -#define SUGAR_SWIPE_CONTROLLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SUGAR_TYPE_SWIPE_CONTROLLER, SugarSwipeControllerClass)) |
| 33 | +#define SUGAR_TYPE_EVENT_CONTROLLER (sugar_event_controller_get_type ()) |
| 34 | +#define SUGAR_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SUGAR_TYPE_EVENT_CONTROLLER, SugarEventController)) |
| 35 | +#define SUGAR_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SUGAR_TYPE_EVENT_CONTROLLER, SugarEventControllerClass)) |
| 36 | +#define SUGAR_IS_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SUGAR_TYPE_EVENT_CONTROLLER)) |
| 37 | +#define SUGAR_IS_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SUGAR_TYPE_EVENT_CONTROLLER)) |
| 38 | +#define SUGAR_EVENT_CONTROLLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SUGAR_TYPE_EVENT_CONTROLLER, SugarEventControllerClass)) |
| 39 | +#define SUGAR_TYPE_EVENT_CONTROLLER_STATE (sugar_event_controller_state_get_type()) |
40 | 40 |
|
41 | | -typedef struct _SugarSwipeController SugarSwipeController; |
42 | | -typedef struct _SugarSwipeControllerClass SugarSwipeControllerClass; |
43 | | -typedef struct _SugarSwipeControllerPrivate SugarSwipeControllerPrivate; |
| 41 | +typedef struct _SugarEventController SugarEventController; |
| 42 | +typedef struct _SugarEventControllerClass SugarEventControllerClass; |
| 43 | +typedef struct _SugarEventControllerPrivate SugarEventControllerPrivate; |
44 | 44 |
|
45 | 45 | typedef enum { |
46 | | - SUGAR_SWIPE_DIRECTION_LEFT, |
47 | | - SUGAR_SWIPE_DIRECTION_RIGHT, |
48 | | - SUGAR_SWIPE_DIRECTION_UP, |
49 | | - SUGAR_SWIPE_DIRECTION_DOWN |
50 | | -} SugarSwipeDirection; |
| 46 | + SUGAR_EVENT_CONTROLLER_STATE_NONE, |
| 47 | + SUGAR_EVENT_CONTROLLER_STATE_COLLECTING, |
| 48 | + SUGAR_EVENT_CONTROLLER_STATE_RECOGNIZED, |
| 49 | + SUGAR_EVENT_CONTROLLER_STATE_NOT_RECOGNIZED |
| 50 | +} SugarEventControllerState; |
51 | 51 |
|
52 | 52 | typedef enum { |
53 | | - SUGAR_SWIPE_DIRECTION_FLAG_LEFT = 1 << SUGAR_SWIPE_DIRECTION_LEFT, |
54 | | - SUGAR_SWIPE_DIRECTION_FLAG_RIGHT = 1 << SUGAR_SWIPE_DIRECTION_RIGHT, |
55 | | - SUGAR_SWIPE_DIRECTION_FLAG_UP = 1 << SUGAR_SWIPE_DIRECTION_UP, |
56 | | - SUGAR_SWIPE_DIRECTION_FLAG_DOWN = 1 << SUGAR_SWIPE_DIRECTION_DOWN, |
57 | | -} SugarSwipeDirectionFlags; |
| 53 | + SUGAR_EVENT_CONTROLLER_FLAG_NONE = 0, |
| 54 | + SUGAR_EVENT_CONTROLLER_FLAG_EXCLUSIVE = 1 << 0 |
| 55 | +} SugarEventControllerFlags; |
58 | 56 |
|
59 | | -struct _SugarSwipeController |
| 57 | +struct _SugarEventController |
60 | 58 | { |
61 | | - SugarEventController parent_instance; |
62 | | - SugarSwipeControllerPrivate *priv; |
| 59 | + GObject parent_instance; |
| 60 | + |
| 61 | + SugarEventControllerPrivate *priv; |
63 | 62 | }; |
64 | 63 |
|
65 | | -struct _SugarSwipeControllerClass |
| 64 | +struct _SugarEventControllerClass |
66 | 65 | { |
67 | | - SugarEventControllerClass parent_class; |
| 66 | + GObjectClass parent_class; |
| 67 | + |
| 68 | + /* Signals */ |
| 69 | + void (* began) (SugarEventController *controller); |
| 70 | + void (* updated) (SugarEventController *controller); |
| 71 | + void (* ended) (SugarEventController *controller); |
68 | 72 |
|
69 | | - void (* swipe_ended) (SugarSwipeController *controller, |
70 | | - SugarSwipeDirection direction); |
| 73 | + /* vmethods */ |
| 74 | + gboolean (* handle_event) (SugarEventController *controller, |
| 75 | + GdkEvent *event); |
| 76 | + SugarEventControllerState (* get_state) (SugarEventController *controller); |
| 77 | + void (* reset) (SugarEventController *controller); |
71 | 78 | }; |
72 | 79 |
|
73 | | -struct _SugarSwipeControllerPrivate |
| 80 | +struct _SugarEventControllerPrivate |
74 | 81 | { |
75 | | - GdkDevice *device; |
76 | | - GdkEventSequence *sequence; |
77 | | - GArray *event_data; |
78 | | - guint swiping : 1; |
79 | | - guint swiped : 1; |
80 | | - guint directions : 4; |
| 82 | + GtkWidget *widget; |
81 | 83 | }; |
82 | 84 |
|
83 | | -GType sugar_swipe_controller_get_type (void) G_GNUC_CONST; |
84 | | -SugarEventController * sugar_swipe_controller_new (SugarSwipeDirectionFlags directions); |
| 85 | +GType sugar_event_controller_get_type (void) G_GNUC_CONST; |
| 86 | +GType sugar_event_controller_state_get_type(void) G_GNUC_CONST; |
| 87 | +gboolean sugar_event_controller_handle_event (SugarEventController *controller, |
| 88 | + GdkEvent *event); |
| 89 | +gboolean sugar_event_controller_attach (SugarEventController *controller, |
| 90 | + GtkWidget *widget, |
| 91 | + SugarEventControllerFlags flags); |
| 92 | +gboolean sugar_event_controller_detach (SugarEventController *controller, |
| 93 | + GtkWidget *widget); |
| 94 | +gboolean sugar_event_controller_reset (SugarEventController *controller); |
| 95 | + |
| 96 | +SugarEventControllerState |
| 97 | + sugar_event_controller_get_state (SugarEventController *controller); |
85 | 98 |
|
86 | 99 | G_END_DECLS |
87 | 100 |
|
88 | | -#endif /* __SUGAR_SWIPE_CONTROLLER_H__ */ |
| 101 | +#endif /* __SUGAR_EVENT_CONTROLLER_H__ */ |
0 commit comments