summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2012-06-24 09:01:57 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2012-06-26 16:12:56 +0100
commitb9bf089887363166bdde4f0cd5578305ff4ab352 (patch)
treecb3c47f9684451899aabe231f8d288d41360914b
parent5e5295ab130763eb81176cc8c9011031c1a83148 (diff)
downloadclutter-b9bf089887363166bdde4f0cd5578305ff4ab352.tar.gz
action: Add handle_event() virtual function
-rw-r--r--clutter/Makefile.am1
-rw-r--r--clutter/clutter-action-private.h14
-rw-r--r--clutter/clutter-action.c16
-rw-r--r--clutter/clutter-action.h33
4 files changed, 47 insertions, 17 deletions
diff --git a/clutter/Makefile.am b/clutter/Makefile.am
index 7899493b0..3982c859f 100644
--- a/clutter/Makefile.am
+++ b/clutter/Makefile.am
@@ -209,6 +209,7 @@ source_c = \
# private headers; these should not be distributed or introspected
source_h_priv = \
+ $(srcdir)/clutter-action-private.h \
$(srcdir)/clutter-actor-meta-private.h \
$(srcdir)/clutter-actor-private.h \
$(srcdir)/clutter-backend-private.h \
diff --git a/clutter/clutter-action-private.h b/clutter/clutter-action-private.h
new file mode 100644
index 000000000..66d1e91bd
--- /dev/null
+++ b/clutter/clutter-action-private.h
@@ -0,0 +1,14 @@
+#ifndef __CLUTTER_ACTION_PRIVATE_H__
+#define __CLUTTER_ACTION_PRIVATE_H__
+
+#include "clutter-action.h"
+#include "clutter-event.h"
+
+G_BEGIN_DECLS
+
+void _clutter_action_handle_event (ClutterAction *action,
+ const ClutterEvent *event);
+
+G_END_DECLS
+
+#endif /* __CLUTTER_ACTION_PRIVATE_H__ */
diff --git a/clutter/clutter-action.c b/clutter/clutter-action.c
index c233fd141..df75f3fd1 100644
--- a/clutter/clutter-action.c
+++ b/clutter/clutter-action.c
@@ -45,7 +45,7 @@
#include "config.h"
#endif
-#include "clutter-action.h"
+#include "clutter-action-private.h"
#include "clutter-debug.h"
#include "clutter-private.h"
@@ -53,11 +53,25 @@
G_DEFINE_ABSTRACT_TYPE (ClutterAction, clutter_action, CLUTTER_TYPE_ACTOR_META);
static void
+clutter_action_real_handle_event (ClutterAction *self,
+ const ClutterEvent *event)
+{
+}
+
+static void
clutter_action_class_init (ClutterActionClass *klass)
{
+ klass->handle_event = clutter_action_real_handle_event;
}
static void
clutter_action_init (ClutterAction *self)
{
}
+
+void
+_clutter_action_handle_event (ClutterAction *self,
+ const ClutterEvent *event)
+{
+ CLUTTER_ACTION_GET_CLASS (self)->handle_event (self, event);
+}
diff --git a/clutter/clutter-action.h b/clutter/clutter-action.h
index d2e98db6d..da081a6c2 100644
--- a/clutter/clutter-action.h
+++ b/clutter/clutter-action.h
@@ -69,6 +69,9 @@ struct _ClutterActionClass
/*< private >*/
ClutterActorMetaClass parent_class;
+ void (* handle_event) (ClutterAction *action,
+ const ClutterEvent *event);
+
void (* _clutter_action1) (void);
void (* _clutter_action2) (void);
void (* _clutter_action3) (void);
@@ -76,27 +79,25 @@ struct _ClutterActionClass
void (* _clutter_action5) (void);
void (* _clutter_action6) (void);
void (* _clutter_action7) (void);
- void (* _clutter_action8) (void);
};
GType clutter_action_get_type (void) G_GNUC_CONST;
/* ClutterActor API */
-void clutter_actor_add_action (ClutterActor *self,
- ClutterAction *action);
-void clutter_actor_add_action_with_name (ClutterActor *self,
- const gchar *name,
- ClutterAction *action);
-void clutter_actor_remove_action (ClutterActor *self,
- ClutterAction *action);
-void clutter_actor_remove_action_by_name (ClutterActor *self,
- const gchar *name);
-ClutterAction *clutter_actor_get_action (ClutterActor *self,
- const gchar *name);
-GList * clutter_actor_get_actions (ClutterActor *self);
-void clutter_actor_clear_actions (ClutterActor *self);
-
-gboolean clutter_actor_has_actions (ClutterActor *self);
+void clutter_actor_add_action (ClutterActor *self,
+ ClutterAction *action);
+void clutter_actor_add_action_with_name (ClutterActor *self,
+ const gchar *name,
+ ClutterAction *action);
+void clutter_actor_remove_action (ClutterActor *self,
+ ClutterAction *action);
+void clutter_actor_remove_action_by_name (ClutterActor *self,
+ const gchar *name);
+ClutterAction * clutter_actor_get_action (ClutterActor *self,
+ const gchar *name);
+GList * clutter_actor_get_actions (ClutterActor *self);
+void clutter_actor_clear_actions (ClutterActor *self);
+gboolean clutter_actor_has_actions (ClutterActor *self);
G_END_DECLS