actor: Add ActorMeta, a base class for actor modifiers
[profile/ivi/clutter.git] / clutter / clutter-actor-meta.h
1 #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
2 #error "Only <clutter/clutter.h> can be included directly."
3 #endif
4
5 #ifndef __CLUTTER_ACTOR_META_H__
6 #define __CLUTTER_ACTOR_META_H__
7
8 #include <clutter/clutter-types.h>
9
10 G_BEGIN_DECLS
11
12 #define CLUTTER_TYPE_ACTOR_META                 (clutter_actor_meta_get_type ())
13 #define CLUTTER_ACTOR_META(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ACTOR_META, ClutterActorMeta))
14 #define CLUTTER_IS_ACTOR_META(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ACTOR_META))
15 #define CLUTTER_ACTOR_META_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ACTOR_META, ClutterActorMetaClass))
16 #define CLUTTER_IS_ACTOR_META_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ACTOR_META))
17 #define CLUTTER_ACTOR_META_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ACTOR_META, ClutterActorMetaClass))
18
19 typedef struct _ClutterActorMetaPrivate         ClutterActorMetaPrivate;
20 typedef struct _ClutterActorMetaClass           ClutterActorMetaClass;
21
22 /**
23  * ClutterActorMeta:
24  *
25  * The <structname>ClutterActorMeta</structname> structure contains only
26  * private data and should be accessed using the provided API
27  *
28  * Since: 1.4
29  */
30 struct _ClutterActorMeta
31 {
32   /*< private >*/
33   GInitiallyUnowned parent_instance;
34
35   ClutterActorMetaPrivate *priv;
36 };
37
38 /**
39  * ClutterActorMetaClass:
40  * @set_actor: virtual function, invoked when attaching and detaching
41  *   a #ClutterActorMeta instance to a #ClutterActor
42  *
43  * The <structname>ClutterActorMetaClass</structname> structure contains
44  * only private data
45  *
46  * Since: 1.4
47  */
48 struct _ClutterActorMetaClass
49 {
50   /*< private >*/
51   GInitiallyUnownedClass parent_class;
52
53   /*< public >*/
54   void (* set_actor) (ClutterActorMeta *meta,
55                       ClutterActor     *actor);
56
57   /*< private >*/
58   void (* _clutter_meta1) (void);
59   void (* _clutter_meta2) (void);
60   void (* _clutter_meta3) (void);
61   void (* _clutter_meta4) (void);
62   void (* _clutter_meta5) (void);
63   void (* _clutter_meta6) (void);
64   void (* _clutter_meta7) (void);
65 };
66
67 GType clutter_actor_meta_get_type (void) G_GNUC_CONST;
68
69 void                  clutter_actor_meta_set_name    (ClutterActorMeta *meta,
70                                                       const gchar      *name);
71 G_CONST_RETURN gchar *clutter_actor_meta_get_name    (ClutterActorMeta *meta);
72 void                  clutter_actor_meta_set_enabled (ClutterActorMeta *meta,
73                                                       gboolean          is_enabled);
74 gboolean              clutter_actor_meta_get_enabled (ClutterActorMeta *meta);
75
76 ClutterActor *        clutter_actor_meta_get_actor   (ClutterActorMeta *meta);
77
78 /* private */
79 void                 _clutter_actor_meta_set_actor   (ClutterActorMeta *meta,
80                                                       ClutterActor     *actor);
81
82 G_END_DECLS
83
84 #endif /* __CLUTTER_ACTOR_META_H__ */