diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2011-03-09 10:06:44 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@linux.intel.com> | 2011-06-10 14:02:17 +0100 |
commit | ba72235b66ee956977ad6e5c7a8510f9f23a3517 (patch) | |
tree | 3f7c9fd32152d5fcdc19c767ee804e849c2181eb /clutter/clutter-swipe-action.h | |
parent | 501208758808c9dd05f754d46e883766c4c1264b (diff) | |
download | clutter-ba72235b66ee956977ad6e5c7a8510f9f23a3517.tar.gz |
Add ClutterSwipeAction and ClutterGestureAction
To allow actors to handle gestures in a more organized way.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2585
Diffstat (limited to 'clutter/clutter-swipe-action.h')
-rw-r--r-- | clutter/clutter-swipe-action.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/clutter/clutter-swipe-action.h b/clutter/clutter-swipe-action.h new file mode 100644 index 000000000..ed9246de2 --- /dev/null +++ b/clutter/clutter-swipe-action.h @@ -0,0 +1,117 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * Copyright (C) 2011 Robert Bosch Car Multimedia GmbH. + * + * 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: + * Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> + * + * Based on ClutterDragAction, written by: + * Emmanuele Bassi <ebassi@linux.intel.com> + */ + +#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) +#error "Only <clutter/clutter.h> can be included directly." +#endif + +#ifndef __CLUTTER_SWIPE_ACTION_H__ +#define __CLUTTER_SWIPE_ACTION_H__ + +#include <clutter/clutter-gesture-action.h> + +G_BEGIN_DECLS + +#define CLUTTER_TYPE_SWIPE_ACTION (clutter_swipe_action_get_type ()) +#define CLUTTER_SWIPE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SWIPE_ACTION, ClutterSwipeAction)) +#define CLUTTER_IS_SWIPE_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_SWIPE_ACTION)) +#define CLUTTER_SWIPE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_SWIPE_ACTION, ClutterSwipeActionClass)) +#define CLUTTER_IS_SWIPE_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_SWIPE_ACTION)) +#define CLUTTER_SWIPE_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_SWIPE_ACTION, ClutterSwipeActionClass)) + +typedef struct _ClutterSwipeAction ClutterSwipeAction; +typedef struct _ClutterSwipeActionPrivate ClutterSwipeActionPrivate; +typedef struct _ClutterSwipeActionClass ClutterSwipeActionClass; + +/** + * ClutterSwipeDirection: + * @CLUTTER_SWIPE_DIRECTION_UP: Upwards swipe gesture + * @CLUTTER_SWIPE_DIRECTION_DOWN: Downwards swipe gesture + * @CLUTTER_SWIPE_DIRECTION_LEFT: Leftwards swipe gesture + * @CLUTTER_SWIPE_DIRECTION_RIGHT: Rightwards swipe gesture + * + * The main direction of the swipe gesture + * + * Since: 1.8 + */ +typedef enum { /*< prefix=CLUTTER_SWIPE >*/ + CLUTTER_SWIPE_DIRECTION_UP = 1 << 0, + CLUTTER_SWIPE_DIRECTION_DOWN = 1 << 1, + CLUTTER_SWIPE_DIRECTION_LEFT = 1 << 2, + CLUTTER_SWIPE_DIRECTION_RIGHT = 1 << 3 +} ClutterSwipeDirection; + +/** + * ClutterSwipeAction: + * + * The <structname>ClutterSwipeAction</structname> structure contains + * only private data and should be accessed using the provided API + * + * Since: 1.8 + */ +struct _ClutterSwipeAction +{ + /*< private >*/ + ClutterGestureAction parent_instance; + + ClutterSwipeActionPrivate *priv; +}; + +/** + * ClutterSwipeActionClass: + * @swept: class handler for the #ClutterSwipeAction::swept signal + * + * Since: 1.8 + */ +struct _ClutterSwipeActionClass +{ + /*< private >*/ + ClutterGestureActionClass parent_class; + + /*< public >*/ + void (* swept) (ClutterSwipeAction *action, + ClutterActor *actor, + ClutterSwipeDirection direction); + + /*< private >*/ + void (* _clutter_swipe_action1) (void); + void (* _clutter_swipe_action2) (void); + void (* _clutter_swipe_action3) (void); + void (* _clutter_swipe_action4) (void); + void (* _clutter_swipe_action5) (void); + void (* _clutter_swipe_action6) (void); + void (* _clutter_swipe_action7) (void); +}; + +GType clutter_swipe_action_get_type (void) G_GNUC_CONST; + +ClutterAction *clutter_swipe_action_new (void); + +G_END_DECLS + +#endif /* __CLUTTER_SWIPE_ACTION_H__ */ |