#ifndef __CLUTTER_BOX_H__ #define __CLUTTER_BOX_H__ #include G_BEGIN_DECLS #define CLUTTER_TYPE_BOX (clutter_box_get_type ()) #define CLUTTER_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BOX, ClutterBox)) #define CLUTTER_IS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BOX)) #define CLUTTER_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BOX, ClutterBoxClass)) #define CLUTTER_IS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BOX)) #define CLUTTER_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BOX, ClutterBoxClass)) /** * ClutterPackType: * @CLUTTER_PACK_START: append child from the start * @CLUTTER_PACK_END: append child from the end * * Pack order for a #ClutterBox child. * * Since: 0.4 */ typedef enum { CLUTTER_PACK_START, CLUTTER_PACK_END } ClutterPackType; typedef struct _ClutterBoxChild ClutterBoxChild; typedef struct _ClutterBox ClutterBox; typedef struct _ClutterBoxClass ClutterBoxClass; struct _ClutterBox { ClutterActor parent_instance; /*< private >*/ /* list of ClutterBoxChild structures */ GList *children; /* spacing between child actors */ guint spacing; }; struct _ClutterBoxClass { ClutterActorClass parent_class; /* vfuncs, not signals */ void (* pack_child) (ClutterBox *box, ClutterBoxChild *child); void (* unpack_child) (ClutterBox *box, ClutterBoxChild *child); /* padding, for future expansion */ void (*_clutter_reserved1) (void); void (*_clutter_reserved2) (void); void (*_clutter_reserved3) (void); void (*_clutter_reserved4) (void); void (*_clutter_reserved5) (void); void (*_clutter_reserved6) (void); void (*_clutter_reserved7) (void); void (*_clutter_reserved8) (void); }; /** * ClutterBoxChild: * @actor: the child #ClutterActor * @pack_type: the type of packing used * * Packing data for children of a #ClutterBox. * * Since: 0.4 */ struct _ClutterBoxChild { ClutterActor *actor; ClutterPackType pack_type; }; GType clutter_box_get_type (void) G_GNUC_CONST; void clutter_box_set_spacing (ClutterBox *box, guint spacing); guint clutter_box_get_spacing (ClutterBox *box); void clutter_box_pack_start (ClutterBox *box, ClutterActor *actor); void clutter_box_pack_end (ClutterBox *box, ClutterActor *actor); gboolean clutter_box_query_child (ClutterBox *box, ClutterActor *actor, ClutterBoxChild *child); gboolean clutter_box_query_nth_child (ClutterBox *box, gint index_, ClutterBoxChild *child); G_END_DECLS #endif /* __CLUTTER_BOX_H__ */