|
23 | 23 | #error "Only <sugar/event-controller/sugar-event-controllers.h> can be included directly." |
24 | 24 | #endif |
25 | 25 |
|
26 | | -#ifndef __SUGAR_EVENT_CONTROLLER_H__ |
27 | | -#define __SUGAR_EVENT_CONTROLLER_H__ |
| 26 | +#ifndef __SUGAR_SWIPE_CONTROLLER_H__ |
| 27 | +#define __SUGAR_SWIPE_CONTROLLER_H__ |
28 | 28 |
|
| 29 | +#include "sugar-event-controller.h" |
29 | 30 | #include <gtk/gtk.h> |
30 | 31 |
|
31 | 32 | G_BEGIN_DECLS |
32 | 33 |
|
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()) |
| 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)) |
40 | 40 |
|
41 | | -typedef struct _SugarEventController SugarEventController; |
42 | | -typedef struct _SugarEventControllerClass SugarEventControllerClass; |
43 | | -typedef struct _SugarEventControllerPrivate SugarEventControllerPrivate; |
| 41 | +typedef struct _SugarSwipeController SugarSwipeController; |
| 42 | +typedef struct _SugarSwipeControllerClass SugarSwipeControllerClass; |
| 43 | +typedef struct _SugarSwipeControllerPrivate SugarSwipeControllerPrivate; |
44 | 44 |
|
45 | 45 | typedef enum { |
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; |
| 46 | + SUGAR_SWIPE_DIRECTION_LEFT, |
| 47 | + SUGAR_SWIPE_DIRECTION_RIGHT, |
| 48 | + SUGAR_SWIPE_DIRECTION_UP, |
| 49 | + SUGAR_SWIPE_DIRECTION_DOWN |
| 50 | +} SugarSwipeDirection; |
51 | 51 |
|
52 | 52 | typedef enum { |
53 | | - SUGAR_EVENT_CONTROLLER_FLAG_NONE = 0, |
54 | | - SUGAR_EVENT_CONTROLLER_FLAG_EXCLUSIVE = 1 << 0 |
55 | | -} SugarEventControllerFlags; |
| 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; |
56 | 58 |
|
57 | | -struct _SugarEventController |
| 59 | +struct _SugarSwipeController |
58 | 60 | { |
59 | | - GObject parent_instance; |
60 | | - |
61 | | - SugarEventControllerPrivate *priv; |
| 61 | + SugarEventController parent_instance; |
| 62 | + SugarSwipeControllerPrivate *priv; |
62 | 63 | }; |
63 | 64 |
|
64 | | -struct _SugarEventControllerClass |
| 65 | +struct _SugarSwipeControllerClass |
65 | 66 | { |
66 | | - GObjectClass parent_class; |
67 | | - |
68 | | - /* Signals */ |
69 | | - void (* began) (SugarEventController *controller); |
70 | | - void (* updated) (SugarEventController *controller); |
71 | | - void (* ended) (SugarEventController *controller); |
| 67 | + SugarEventControllerClass parent_class; |
72 | 68 |
|
73 | | - /* vmethods */ |
74 | | - gboolean (* handle_event) (SugarEventController *controller, |
75 | | - GdkEvent *event); |
76 | | - SugarEventControllerState (* get_state) (SugarEventController *controller); |
77 | | - void (* reset) (SugarEventController *controller); |
| 69 | + void (* swipe_ended) (SugarSwipeController *controller, |
| 70 | + SugarSwipeDirection direction); |
78 | 71 | }; |
79 | 72 |
|
80 | | -struct _SugarEventControllerPrivate |
| 73 | +struct _SugarSwipeControllerPrivate |
81 | 74 | { |
82 | | - GtkWidget *widget; |
| 75 | + GdkDevice *device; |
| 76 | + GdkEventSequence *sequence; |
| 77 | + GArray *event_data; |
| 78 | + guint swiping : 1; |
| 79 | + guint swiped : 1; |
| 80 | + guint directions : 4; |
83 | 81 | }; |
84 | 82 |
|
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); |
| 83 | +GType sugar_swipe_controller_get_type (void) G_GNUC_CONST; |
| 84 | +SugarEventController * sugar_swipe_controller_new (SugarSwipeDirectionFlags directions); |
98 | 85 |
|
99 | 86 | G_END_DECLS |
100 | 87 |
|
101 | | -#endif /* __SUGAR_EVENT_CONTROLLER_H__ */ |
| 88 | +#endif /* __SUGAR_SWIPE_CONTROLLER_H__ */ |
0 commit comments