[clutter] Move all enumerations to a separate file



commit d28e04be72d0a8c4408e07f468698d61ef312091
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Tue Oct 4 13:28:04 2011 +0100

    Move all enumerations to a separate file
    
    This should allow sharing types, and we can avoid glib-mkenums thrawling
    the whole repository for enumerations.

 clutter/Makefile.am                |    1 +
 clutter/clutter-actor.h            |   60 --
 clutter/clutter-align-constraint.h |   15 -
 clutter/clutter-animator.h         |   14 -
 clutter/clutter-bin-layout.h       |   25 -
 clutter/clutter-bind-constraint.h  |   24 -
 clutter/clutter-box-layout.h       |   18 -
 clutter/clutter-click-action.h     |   17 -
 clutter/clutter-color.h            |  105 ----
 clutter/clutter-drag-action.h      |   18 -
 clutter/clutter-effect.h           |   13 -
 clutter/clutter-enums.h            | 1059 ++++++++++++++++++++++++++++++++++++
 clutter/clutter-event.h            |   87 +---
 clutter/clutter-feature.h          |   36 +--
 clutter/clutter-flow-layout.h      |   17 -
 clutter/clutter-input-device.h     |   78 ---
 clutter/clutter-path.h             |   33 --
 clutter/clutter-snap-constraint.h  |   18 -
 clutter/clutter-stage.h            |   16 -
 clutter/clutter-swipe-action.h     |   18 -
 clutter/clutter-table-layout.h     |   19 -
 clutter/clutter-texture.h          |   40 --
 clutter/clutter-timeline.h         |   16 +-
 clutter/clutter-types.h            |  330 +-----------
 clutter/clutter-units.h            |   46 +--
 clutter/clutter.h                  |    3 +-
 26 files changed, 1078 insertions(+), 1048 deletions(-)
---
diff --git a/clutter/Makefile.am b/clutter/Makefile.am
index dc0f4ab..461e7d1 100644
--- a/clutter/Makefile.am
+++ b/clutter/Makefile.am
@@ -82,6 +82,7 @@ source_h =					\
 	$(srcdir)/clutter-drag-action.h		\
 	$(srcdir)/clutter-drop-action.h		\
 	$(srcdir)/clutter-effect.h		\
+	$(srcdir)/clutter-enums.h		\
 	$(srcdir)/clutter-event.h 		\
 	$(srcdir)/clutter-feature.h 		\
 	$(srcdir)/clutter-fixed-layout.h	\
diff --git a/clutter/clutter-actor.h b/clutter/clutter-actor.h
index 25f5623..39c1d0a 100644
--- a/clutter/clutter-actor.h
+++ b/clutter/clutter-actor.h
@@ -93,66 +93,6 @@ typedef void (*ClutterCallback) (ClutterActor *actor,
 #define CLUTTER_CALLBACK(f)        ((ClutterCallback) (f))
 
 /**
- * ClutterActorFlags:
- * @CLUTTER_ACTOR_MAPPED: the actor will be painted (is visible, and inside
- *   a toplevel, and all parents visible)
- * @CLUTTER_ACTOR_REALIZED: the resources associated to the actor have been
- *   allocated
- * @CLUTTER_ACTOR_REACTIVE: the actor 'reacts' to mouse events emmitting event
- *   signals
- * @CLUTTER_ACTOR_VISIBLE: the actor has been shown by the application program
- * @CLUTTER_ACTOR_NO_LAYOUT: the actor provides an explicit layout management
- *   policy for its children; this flag will prevent Clutter from automatic
- *   queueing of relayout and will defer all layouting to the actor itself
- *
- * Flags used to signal the state of an actor.
- */
-typedef enum
-{
-  CLUTTER_ACTOR_MAPPED    = 1 << 1,
-  CLUTTER_ACTOR_REALIZED  = 1 << 2,
-  CLUTTER_ACTOR_REACTIVE  = 1 << 3,
-  CLUTTER_ACTOR_VISIBLE   = 1 << 4,
-  CLUTTER_ACTOR_NO_LAYOUT = 1 << 5
-} ClutterActorFlags;
-
-/**
- * ClutterOffscreenRedirect:
- * @CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY: Only redirect
- *   the actor if it is semi-transparent and its has_overlaps()
- *   virtual returns %TRUE. This is the default.
- * @CLUTTER_OFFSCREEN_REDIRECT_ALWAYS: Always redirect the actor to an
- *   offscreen buffer even if it is fully opaque.
- *
- * Possible flags to pass to clutter_actor_set_offscreen_redirect().
- *
- * Since: 1.8
- */
-typedef enum
-{
-  CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY = 1<<0,
-  CLUTTER_OFFSCREEN_REDIRECT_ALWAYS = 1<<1
-} ClutterOffscreenRedirect;
-
-/**
- * ClutterAllocationFlags:
- * @CLUTTER_ALLOCATION_NONE: No flag set
- * @CLUTTER_ABSOLUTE_ORIGIN_CHANGED: Whether the absolute origin of the
- *   actor has changed; this implies that any ancestor of the actor has
- *   been moved
- *
- * Flags passed to the #ClutterActor::allocate() virtual function and
- * to the clutter_actor_allocate() function
- *
- * Since: 1.0
- */
-typedef enum
-{
-  CLUTTER_ALLOCATION_NONE         = 0,
-  CLUTTER_ABSOLUTE_ORIGIN_CHANGED = 1 << 1
-} ClutterAllocationFlags;
-
-/**
  * ClutterActor:
  * @flags: #ClutterActorFlags
  *
diff --git a/clutter/clutter-align-constraint.h b/clutter/clutter-align-constraint.h
index 8e8c583..6ff855e 100644
--- a/clutter/clutter-align-constraint.h
+++ b/clutter/clutter-align-constraint.h
@@ -48,21 +48,6 @@ G_BEGIN_DECLS
 typedef struct _ClutterAlignConstraint          ClutterAlignConstraint;
 typedef struct _ClutterAlignConstraintClass     ClutterAlignConstraintClass;
 
-/**
- * ClutterAlignAxis:
- * @CLUTTER_ALIGN_X_AXIS: Maintain the alignment on the X axis
- * @CLUTTER_ALIGN_Y_AXIS: Maintain the alignment on the Y axis
- *
- * Specifies the axis on which #ClutterAlignConstraint should maintain
- * the alignment
- *
- * Since: 1.4
- */
-typedef enum { /*< prefix=CLUTTER_ALIGN >*/
-  CLUTTER_ALIGN_X_AXIS,
-  CLUTTER_ALIGN_Y_AXIS
-} ClutterAlignAxis;
-
 GType clutter_align_constraint_get_type (void) G_GNUC_CONST;
 
 ClutterConstraint *clutter_align_constraint_new            (ClutterActor           *source,
diff --git a/clutter/clutter-animator.h b/clutter/clutter-animator.h
index e7ed667..019817d 100644
--- a/clutter/clutter-animator.h
+++ b/clutter/clutter-animator.h
@@ -58,20 +58,6 @@ typedef struct _ClutterAnimatorPrivate ClutterAnimatorPrivate;
 typedef struct _ClutterAnimatorKey     ClutterAnimatorKey;
 
 /**
- * ClutterInterpolation:
- * @CLUTTER_INTERPOLATION_LINEAR: linear interpolation
- * @CLUTTER_INTERPOLATION_CUBIC: cubic interpolation
- *
- * The mode of interpolation between key frames
- *
- * Since: 1.2
- */
-typedef enum {
-  CLUTTER_INTERPOLATION_LINEAR,
-  CLUTTER_INTERPOLATION_CUBIC
-} ClutterInterpolation;
-
-/**
  * ClutterAnimator:
  *
  * The #ClutterAnimator structure contains only private data and
diff --git a/clutter/clutter-bin-layout.h b/clutter/clutter-bin-layout.h
index 169af07..d6a639f 100644
--- a/clutter/clutter-bin-layout.h
+++ b/clutter/clutter-bin-layout.h
@@ -45,31 +45,6 @@ typedef struct _ClutterBinLayoutPrivate         ClutterBinLayoutPrivate;
 typedef struct _ClutterBinLayoutClass           ClutterBinLayoutClass;
 
 /**
- * ClutterBinAlignment:
- * @CLUTTER_BIN_ALIGNMENT_FIXED: Fixed position alignment; the
- *   #ClutterBinLayout will honour the fixed position provided
- *   by the actors themselves when allocating them
- * @CLUTTER_BIN_ALIGNMENT_FILL: Fill the allocation size
- * @CLUTTER_BIN_ALIGNMENT_START: Position the actors at the top
- *   or left side of the container, depending on the axis
- * @CLUTTER_BIN_ALIGNMENT_END: Position the actors at the bottom
- *   or right side of the container, depending on the axis
- * @CLUTTER_BIN_ALIGNMENT_CENTER: Position the actors at the
- *   center of the container, depending on the axis
- *
- * The alignment policies available on each axis for #ClutterBinLayout
- *
- * Since: 1.2
- */
-typedef enum {
-  CLUTTER_BIN_ALIGNMENT_FIXED,
-  CLUTTER_BIN_ALIGNMENT_FILL,
-  CLUTTER_BIN_ALIGNMENT_START,
-  CLUTTER_BIN_ALIGNMENT_END,
-  CLUTTER_BIN_ALIGNMENT_CENTER
-} ClutterBinAlignment;
-
-/**
  * ClutterBinLayout:
  *
  * The #ClutterBinLayout structure contains only private data
diff --git a/clutter/clutter-bind-constraint.h b/clutter/clutter-bind-constraint.h
index 8a02991..3ce1d59 100644
--- a/clutter/clutter-bind-constraint.h
+++ b/clutter/clutter-bind-constraint.h
@@ -48,30 +48,6 @@ G_BEGIN_DECLS
 typedef struct _ClutterBindConstraint           ClutterBindConstraint;
 typedef struct _ClutterBindConstraintClass      ClutterBindConstraintClass;
 
-/**
- * ClutterBindCoordinate:
- * @CLUTTER_BIND_X: Bind the X coordinate
- * @CLUTTER_BIND_Y: Bind the Y coordinate
- * @CLUTTER_BIND_WIDTH: Bind the width
- * @CLUTTER_BIND_HEIGHT: Bind the height
- * @CLUTTER_BIND_POSITION: Equivalent to to %CLUTTER_BIND_X and
- *   %CLUTTER_BIND_Y
- * @CLUTTER_BIND_SIZE: Equivalent to %CLUTTER_BIND_WIDTH and
- *   %CLUTTER_BIND_HEIGHT
- *
- * Specifies which property should be used in a binding
- *
- * Since: 1.4
- */
-typedef enum { /*< prefix=CLUTTER_BIND >*/
-  CLUTTER_BIND_X,
-  CLUTTER_BIND_Y,
-  CLUTTER_BIND_WIDTH,
-  CLUTTER_BIND_HEIGHT,
-  CLUTTER_BIND_POSITION,
-  CLUTTER_BIND_SIZE
-} ClutterBindCoordinate;
-
 GType clutter_bind_constraint_get_type (void) G_GNUC_CONST;
 
 ClutterConstraint *   clutter_bind_constraint_new            (ClutterActor          *source,
diff --git a/clutter/clutter-box-layout.h b/clutter/clutter-box-layout.h
index e220c02..e3d5114 100644
--- a/clutter/clutter-box-layout.h
+++ b/clutter/clutter-box-layout.h
@@ -48,24 +48,6 @@ typedef struct _ClutterBoxLayoutPrivate         ClutterBoxLayoutPrivate;
 typedef struct _ClutterBoxLayoutClass           ClutterBoxLayoutClass;
 
 /**
- * ClutterBoxAlignment:
- * @CLUTTER_BOX_ALIGNMENT_START: Align the child to the top or to
- *   to the left, depending on the used axis
- * @CLUTTER_BOX_ALIGNMENT_CENTER: Align the child to the center
- * @CLUTTER_BOX_ALIGNMENT_END: Align the child to the bottom or to
- *   the right, depending on the used axis
- *
- * The alignment policies available on each axis of the #ClutterBoxLayout
- *
- * Since: 1.2
- */
-typedef enum {
-  CLUTTER_BOX_ALIGNMENT_START,
-  CLUTTER_BOX_ALIGNMENT_END,
-  CLUTTER_BOX_ALIGNMENT_CENTER
-} ClutterBoxAlignment;
-
-/**
  * ClutterBoxLayout:
  *
  * The #ClutterBoxLayout structure contains only private data
diff --git a/clutter/clutter-click-action.h b/clutter/clutter-click-action.h
index e06b09d..cffb612 100644
--- a/clutter/clutter-click-action.h
+++ b/clutter/clutter-click-action.h
@@ -49,23 +49,6 @@ typedef struct _ClutterClickActionPrivate       ClutterClickActionPrivate;
 typedef struct _ClutterClickActionClass         ClutterClickActionClass;
 
 /**
- * ClutterLongPressState:
- * @CLUTTER_LONG_PRESS_QUERY: Queries the action whether it supports
- *   long presses
- * @CLUTTER_LONG_PRESS_ACTIVATE: Activates the action on a long press
- * @CLUTTER_LONG_PRESS_CANCEL: The long press was cancelled
- *
- * The states for the #ClutterClikAction::long-press signal.
- *
- * Since: 1.8
- */
-typedef enum { /*< prefix=CLUTTER_LONG_PRESS >*/
-  CLUTTER_LONG_PRESS_QUERY,
-  CLUTTER_LONG_PRESS_ACTIVATE,
-  CLUTTER_LONG_PRESS_CANCEL
-} ClutterLongPressState;
-
-/**
  * ClutterClickAction:
  *
  * The <structname>ClutterClickAction</structname> structure contains
diff --git a/clutter/clutter-color.h b/clutter/clutter-color.h
index 5fa6ba0..4bfcb47 100644
--- a/clutter/clutter-color.h
+++ b/clutter/clutter-color.h
@@ -149,111 +149,6 @@ GParamSpec *clutter_param_spec_color     (const gchar        *name,
                                           const ClutterColor *default_value,
                                           GParamFlags         flags);
 
-/**
- * ClutterStaticColor:
- * @CLUTTER_COLOR_WHITE: White color (ffffffff)
- * @CLUTTER_COLOR_BLACK: Black color (000000ff)
- * @CLUTTER_COLOR_RED: Red color (ff0000ff)
- * @CLUTTER_COLOR_DARK_RED: Dark red color (800000ff)
- * @CLUTTER_COLOR_GREEN: Green color (00ff00ff)
- * @CLUTTER_COLOR_DARK_GREEN: Dark green color (008000ff)
- * @CLUTTER_COLOR_BLUE: Blue color (0000ffff)
- * @CLUTTER_COLOR_DARK_BLUE: Dark blue color (000080ff)
- * @CLUTTER_COLOR_CYAN: Cyan color (00ffffff)
- * @CLUTTER_COLOR_DARK_CYAN: Dark cyan color (008080ff)
- * @CLUTTER_COLOR_MAGENTA: Magenta color (ff00ffff)
- * @CLUTTER_COLOR_DARK_MAGENTA: Dark magenta color (800080ff)
- * @CLUTTER_COLOR_YELLOW: Yellow color (ffff00ff)
- * @CLUTTER_COLOR_DARK_YELLOW: Dark yellow color (808000ff)
- * @CLUTTER_COLOR_GRAY: Gray color (a0a0a4ff)
- * @CLUTTER_COLOR_DARK_GRAY: Dark Gray color (808080ff)
- * @CLUTTER_COLOR_LIGHT_GRAY: Light gray color (c0c0c0ff)
- * @CLUTTER_COLOR_BUTTER: Butter color (edd400ff)
- * @CLUTTER_COLOR_BUTTER_LIGHT: Light butter color (fce94fff)
- * @CLUTTER_COLOR_BUTTER_DARK: Dark butter color (c4a000ff)
- * @CLUTTER_COLOR_ORANGE: Orange color (f57900ff)
- * @CLUTTER_COLOR_ORANGE_LIGHT: Light orange color (fcaf3fff)
- * @CLUTTER_COLOR_ORANGE_DARK: Dark orange color (ce5c00ff)
- * @CLUTTER_COLOR_CHOCOLATE: Chocolate color (c17d11ff)
- * @CLUTTER_COLOR_CHOCOLATE_LIGHT: Light chocolate color (e9b96eff)
- * @CLUTTER_COLOR_CHOCOLATE_DARK: Dark chocolate color (8f5902ff)
- * @CLUTTER_COLOR_CHAMELEON: Chameleon color (73d216ff)
- * @CLUTTER_COLOR_CHAMELEON_LIGHT: Light chameleon color (8ae234ff)
- * @CLUTTER_COLOR_CHAMELEON_DARK: Dark chameleon color (4e9a06ff)
- * @CLUTTER_COLOR_SKY_BLUE: Sky color (3465a4ff)
- * @CLUTTER_COLOR_SKY_BLUE_LIGHT: Light sky color (729fcfff)
- * @CLUTTER_COLOR_SKY_BLUE_DARK: Dark sky color (204a87ff)
- * @CLUTTER_COLOR_PLUM: Plum color (75507bff)
- * @CLUTTER_COLOR_PLUM_LIGHT: Light plum color (ad7fa8ff)
- * @CLUTTER_COLOR_PLUM_DARK: Dark plum color (5c3566ff)
- * @CLUTTER_COLOR_SCARLET_RED: Scarlet red color (cc0000ff)
- * @CLUTTER_COLOR_SCARLET_RED_LIGHT: Light scarlet red color (ef2929ff)
- * @CLUTTER_COLOR_SCARLET_RED_DARK: Dark scarlet red color (a40000ff)
- * @CLUTTER_COLOR_ALUMINIUM_1: Aluminium, first variant (eeeeecff)
- * @CLUTTER_COLOR_ALUMINIUM_2: Aluminium, second variant (d3d7cfff)
- * @CLUTTER_COLOR_ALUMINIUM_3: Aluminium, third variant (babdb6ff)
- * @CLUTTER_COLOR_ALUMINIUM_4: Aluminium, fourth variant (888a85ff)
- * @CLUTTER_COLOR_ALUMINIUM_5: Aluminium, fifth variant (555753ff)
- * @CLUTTER_COLOR_ALUMINIUM_6: Aluminium, sixth variant (2e3436ff)
- * @CLUTTER_COLOR_TRANSPARENT: Transparent color (00000000)
- *
- * Named colors, for accessing global colors defined by Clutter
- *
- * Since: 1.6
- */
-typedef enum { /*< prefix=CLUTTER_COLOR >*/
-  /* CGA/EGA-like palette */
-  CLUTTER_COLOR_WHITE           = 0,
-  CLUTTER_COLOR_BLACK,
-  CLUTTER_COLOR_RED,
-  CLUTTER_COLOR_DARK_RED,
-  CLUTTER_COLOR_GREEN,
-  CLUTTER_COLOR_DARK_GREEN,
-  CLUTTER_COLOR_BLUE,
-  CLUTTER_COLOR_DARK_BLUE,
-  CLUTTER_COLOR_CYAN,
-  CLUTTER_COLOR_DARK_CYAN,
-  CLUTTER_COLOR_MAGENTA,
-  CLUTTER_COLOR_DARK_MAGENTA,
-  CLUTTER_COLOR_YELLOW,
-  CLUTTER_COLOR_DARK_YELLOW,
-  CLUTTER_COLOR_GRAY,
-  CLUTTER_COLOR_DARK_GRAY,
-  CLUTTER_COLOR_LIGHT_GRAY,
-
-  /* Tango icon palette */
-  CLUTTER_COLOR_BUTTER,
-  CLUTTER_COLOR_BUTTER_LIGHT,
-  CLUTTER_COLOR_BUTTER_DARK,
-  CLUTTER_COLOR_ORANGE,
-  CLUTTER_COLOR_ORANGE_LIGHT,
-  CLUTTER_COLOR_ORANGE_DARK,
-  CLUTTER_COLOR_CHOCOLATE,
-  CLUTTER_COLOR_CHOCOLATE_LIGHT,
-  CLUTTER_COLOR_CHOCOLATE_DARK,
-  CLUTTER_COLOR_CHAMELEON,
-  CLUTTER_COLOR_CHAMELEON_LIGHT,
-  CLUTTER_COLOR_CHAMELEON_DARK,
-  CLUTTER_COLOR_SKY_BLUE,
-  CLUTTER_COLOR_SKY_BLUE_LIGHT,
-  CLUTTER_COLOR_SKY_BLUE_DARK,
-  CLUTTER_COLOR_PLUM,
-  CLUTTER_COLOR_PLUM_LIGHT,
-  CLUTTER_COLOR_PLUM_DARK,
-  CLUTTER_COLOR_SCARLET_RED,
-  CLUTTER_COLOR_SCARLET_RED_LIGHT,
-  CLUTTER_COLOR_SCARLET_RED_DARK,
-  CLUTTER_COLOR_ALUMINIUM_1,
-  CLUTTER_COLOR_ALUMINIUM_2,
-  CLUTTER_COLOR_ALUMINIUM_3,
-  CLUTTER_COLOR_ALUMINIUM_4,
-  CLUTTER_COLOR_ALUMINIUM_5,
-  CLUTTER_COLOR_ALUMINIUM_6,
-
-  /* Fully transparent black */
-  CLUTTER_COLOR_TRANSPARENT
-} ClutterStaticColor;
-
 const ClutterColor *clutter_color_get_static (ClutterStaticColor color);
 
 G_END_DECLS
diff --git a/clutter/clutter-drag-action.h b/clutter/clutter-drag-action.h
index 2cd0666..4cec121 100644
--- a/clutter/clutter-drag-action.h
+++ b/clutter/clutter-drag-action.h
@@ -46,24 +46,6 @@ typedef struct _ClutterDragActionPrivate        ClutterDragActionPrivate;
 typedef struct _ClutterDragActionClass          ClutterDragActionClass;
 
 /**
- * ClutterDragAxis:
- * @CLUTTER_DRAG_AXIS_NONE: No constraint
- * @CLUTTER_DRAG_X_AXIS: Set a constraint on the X axis
- * @CLUTTER_DRAG_Y_AXIS: Set a constraint on the Y axis
- *
- * The axis of the constraint that should be applied on the
- * dragging action
- *
- * Since: 1.4
- */
-typedef enum { /*< prefix=CLUTTER_DRAG >*/
-  CLUTTER_DRAG_AXIS_NONE = 0,
-
-  CLUTTER_DRAG_X_AXIS,
-  CLUTTER_DRAG_Y_AXIS
-} ClutterDragAxis;
-
-/**
  * ClutterDragAction:
  *
  * The <structname>ClutterDragAction</structname> structure contains only
diff --git a/clutter/clutter-effect.h b/clutter/clutter-effect.h
index 6f00c15..cad4548 100644
--- a/clutter/clutter-effect.h
+++ b/clutter/clutter-effect.h
@@ -43,19 +43,6 @@ G_BEGIN_DECLS
 typedef struct _ClutterEffectClass      ClutterEffectClass;
 
 /**
- * ClutterEffectPaintFlags:
- * @CLUTTER_EFFECT_PAINT_ACTOR_DIRTY: The actor or one of its children
- *   has queued a redraw before this paint. This implies that the effect
- *   should call clutter_actor_continue_paint() to chain to the next
- *   effect and can not cache any results from a previous paint.
- *
- * Flags passed to the âpaintâ or âpickâ method of #ClutterEffect.
- */
-typedef enum { /*< prefix=CLUTTER_EFFECT_PAINT >*/
-  CLUTTER_EFFECT_PAINT_ACTOR_DIRTY = (1 << 0)
-} ClutterEffectPaintFlags;
-
-/**
  * ClutterEffect:
  *
  * The #ClutterEffect structure contains only private data and should
diff --git a/clutter/clutter-enums.h b/clutter/clutter-enums.h
new file mode 100644
index 0000000..e9358ad
--- /dev/null
+++ b/clutter/clutter-enums.h
@@ -0,0 +1,1059 @@
+/*
+ * Clutter.
+ *
+ * An OpenGL based 'interactive canvas' library.
+ *
+ * Copyright (C) 2011  Intel Corporation
+ *
+ * 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/>.
+ */
+
+#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
+#error "Only <clutter/clutter.h> can be included directly."
+#endif
+
+#ifndef __CLUTTER_ENUMS_H__
+#define __CLUTTER_ENUMS_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/**
+ * ClutterGravity:
+ * @CLUTTER_GRAVITY_NONE: Do not apply any gravity
+ * @CLUTTER_GRAVITY_NORTH: Scale from topmost downwards
+ * @CLUTTER_GRAVITY_NORTH_EAST: Scale from the top right corner
+ * @CLUTTER_GRAVITY_EAST: Scale from the right side
+ * @CLUTTER_GRAVITY_SOUTH_EAST: Scale from the bottom right corner
+ * @CLUTTER_GRAVITY_SOUTH: Scale from the bottom upwards
+ * @CLUTTER_GRAVITY_SOUTH_WEST: Scale from the bottom left corner
+ * @CLUTTER_GRAVITY_WEST: Scale from the left side
+ * @CLUTTER_GRAVITY_NORTH_WEST: Scale from the top left corner
+ * @CLUTTER_GRAVITY_CENTER: Scale from the center.
+ *
+ * Gravity of the scaling operations. When a gravity different than
+ * %CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
+ * of the specified portion at the same coordinates.
+ *
+ * Since: 0.2
+ */
+typedef enum { /*< prefix=CLUTTER_GRAVITY >*/
+  CLUTTER_GRAVITY_NONE       = 0,
+  CLUTTER_GRAVITY_NORTH,
+  CLUTTER_GRAVITY_NORTH_EAST,
+  CLUTTER_GRAVITY_EAST,
+  CLUTTER_GRAVITY_SOUTH_EAST,
+  CLUTTER_GRAVITY_SOUTH,
+  CLUTTER_GRAVITY_SOUTH_WEST,
+  CLUTTER_GRAVITY_WEST,
+  CLUTTER_GRAVITY_NORTH_WEST,
+  CLUTTER_GRAVITY_CENTER
+} ClutterGravity;
+
+/**
+ * ClutterRotateAxis:
+ * @CLUTTER_X_AXIS: Rotate around the X axis
+ * @CLUTTER_Y_AXIS: Rotate around the Y axis
+ * @CLUTTER_Z_AXIS: Rotate around the Z axis
+ *
+ * Axis of a rotation.
+ *
+ * Since: 0.4
+ */
+typedef enum { /*< prefix=CLUTTER >*/
+  CLUTTER_X_AXIS,
+  CLUTTER_Y_AXIS,
+  CLUTTER_Z_AXIS
+} ClutterRotateAxis;
+
+/**
+ * ClutterRotateDirection:
+ * @CLUTTER_ROTATE_CW: Clockwise rotation
+ * @CLUTTER_ROTATE_CCW: Counter-clockwise rotation
+ *
+ * Direction of a rotation.
+ *
+ * Since: 0.4
+ */
+typedef enum { /*< prefix=CLUTTER_ROTATE >*/
+  CLUTTER_ROTATE_CW,
+  CLUTTER_ROTATE_CCW
+} ClutterRotateDirection;
+
+/**
+ * ClutterRequestMode:
+ * @CLUTTER_REQUEST_HEIGHT_FOR_WIDTH: Height for width requests
+ * @CLUTTER_REQUEST_WIDTH_FOR_HEIGHT: Width for height requests
+ *
+ * Specifies the type of requests for a #ClutterActor.
+ *
+ * Since: 0.8
+ */
+typedef enum { /*< prefix=CLUTTER_REQUEST >*/
+  CLUTTER_REQUEST_HEIGHT_FOR_WIDTH,
+  CLUTTER_REQUEST_WIDTH_FOR_HEIGHT
+} ClutterRequestMode;
+
+/**
+ * ClutterAnimationMode:
+ * @CLUTTER_CUSTOM_MODE: custom progress function
+ * @CLUTTER_LINEAR: linear tweening
+ * @CLUTTER_EASE_IN_QUAD: quadratic tweening
+ * @CLUTTER_EASE_OUT_QUAD: quadratic tweening, inverse of
+ *    %CLUTTER_EASE_IN_QUAD
+ * @CLUTTER_EASE_IN_OUT_QUAD: quadratic tweening, combininig
+ *    %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD
+ * @CLUTTER_EASE_IN_CUBIC: cubic tweening
+ * @CLUTTER_EASE_OUT_CUBIC: cubic tweening, invers of
+ *    %CLUTTER_EASE_IN_CUBIC
+ * @CLUTTER_EASE_IN_OUT_CUBIC: cubic tweening, combining
+ *    %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC
+ * @CLUTTER_EASE_IN_QUART: quartic tweening
+ * @CLUTTER_EASE_OUT_QUART: quartic tweening, inverse of
+ *    %CLUTTER_EASE_IN_QUART
+ * @CLUTTER_EASE_IN_OUT_QUART: quartic tweening, combining
+ *    %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART
+ * @CLUTTER_EASE_IN_QUINT: quintic tweening
+ * @CLUTTER_EASE_OUT_QUINT: quintic tweening, inverse of
+ *    %CLUTTER_EASE_IN_QUINT
+ * @CLUTTER_EASE_IN_OUT_QUINT: fifth power tweening, combining
+ *    %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT
+ * @CLUTTER_EASE_IN_SINE: sinusoidal tweening
+ * @CLUTTER_EASE_OUT_SINE: sinusoidal tweening, inverse of
+ *    %CLUTTER_EASE_IN_SINE
+ * @CLUTTER_EASE_IN_OUT_SINE: sine wave tweening, combining
+ *    %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE
+ * @CLUTTER_EASE_IN_EXPO: exponential tweening
+ * @CLUTTER_EASE_OUT_EXPO: exponential tweening, inverse of
+ *    %CLUTTER_EASE_IN_EXPO
+ * @CLUTTER_EASE_IN_OUT_EXPO: exponential tweening, combining
+ *    %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO
+ * @CLUTTER_EASE_IN_CIRC: circular tweening
+ * @CLUTTER_EASE_OUT_CIRC: circular tweening, inverse of
+ *    %CLUTTER_EASE_IN_CIRC
+ * @CLUTTER_EASE_IN_OUT_CIRC: circular tweening, combining
+ *    %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC
+ * @CLUTTER_EASE_IN_ELASTIC: elastic tweening, with offshoot on start
+ * @CLUTTER_EASE_OUT_ELASTIC: elastic tweening, with offshoot on end
+ * @CLUTTER_EASE_IN_OUT_ELASTIC: elastic tweening with offshoot on both ends
+ * @CLUTTER_EASE_IN_BACK: overshooting cubic tweening, with
+ *   backtracking on start
+ * @CLUTTER_EASE_OUT_BACK: overshooting cubic tweening, with
+ *   backtracking on end
+ * @CLUTTER_EASE_IN_OUT_BACK: overshooting cubic tweening, with
+ *   backtracking on both ends
+ * @CLUTTER_EASE_IN_BOUNCE: exponentially decaying parabolic (bounce)
+ *   tweening, with bounce on start
+ * @CLUTTER_EASE_OUT_BOUNCE: exponentially decaying parabolic (bounce)
+ *   tweening, with bounce on end
+ * @CLUTTER_EASE_IN_OUT_BOUNCE: exponentially decaying parabolic (bounce)
+ *   tweening, with bounce on both ends
+ * @CLUTTER_ANIMATION_LAST: last animation mode, used as a guard for
+ *   registered global alpha functions
+ *
+ * The animation modes used by #ClutterAlpha and #ClutterAnimation. This
+ * enumeration can be expanded in later versions of Clutter. See the
+ * #ClutterAlpha documentation for a graph of all the animation modes.
+ *
+ * Every global alpha function registered using clutter_alpha_register_func()
+ * or clutter_alpha_register_closure() will have a logical id greater than
+ * %CLUTTER_ANIMATION_LAST.
+ *
+ * Since: 1.0
+ */
+typedef enum {
+  CLUTTER_CUSTOM_MODE = 0,
+
+  /* linear */
+  CLUTTER_LINEAR,
+
+  /* quadratic */
+  CLUTTER_EASE_IN_QUAD,
+  CLUTTER_EASE_OUT_QUAD,
+  CLUTTER_EASE_IN_OUT_QUAD,
+
+  /* cubic */
+  CLUTTER_EASE_IN_CUBIC,
+  CLUTTER_EASE_OUT_CUBIC,
+  CLUTTER_EASE_IN_OUT_CUBIC,
+
+  /* quartic */
+  CLUTTER_EASE_IN_QUART,
+  CLUTTER_EASE_OUT_QUART,
+  CLUTTER_EASE_IN_OUT_QUART,
+
+  /* quintic */
+  CLUTTER_EASE_IN_QUINT,
+  CLUTTER_EASE_OUT_QUINT,
+  CLUTTER_EASE_IN_OUT_QUINT,
+
+  /* sinusoidal */
+  CLUTTER_EASE_IN_SINE,
+  CLUTTER_EASE_OUT_SINE,
+  CLUTTER_EASE_IN_OUT_SINE,
+
+  /* exponential */
+  CLUTTER_EASE_IN_EXPO,
+  CLUTTER_EASE_OUT_EXPO,
+  CLUTTER_EASE_IN_OUT_EXPO,
+
+  /* circular */
+  CLUTTER_EASE_IN_CIRC,
+  CLUTTER_EASE_OUT_CIRC,
+  CLUTTER_EASE_IN_OUT_CIRC,
+
+  /* elastic */
+  CLUTTER_EASE_IN_ELASTIC,
+  CLUTTER_EASE_OUT_ELASTIC,
+  CLUTTER_EASE_IN_OUT_ELASTIC,
+
+  /* overshooting cubic */
+  CLUTTER_EASE_IN_BACK,
+  CLUTTER_EASE_OUT_BACK,
+  CLUTTER_EASE_IN_OUT_BACK,
+
+  /* exponentially decaying parabolic */
+  CLUTTER_EASE_IN_BOUNCE,
+  CLUTTER_EASE_OUT_BOUNCE,
+  CLUTTER_EASE_IN_OUT_BOUNCE,
+
+  /* guard, before registered alpha functions */
+  CLUTTER_ANIMATION_LAST
+} ClutterAnimationMode;
+
+/**
+ * ClutterFontFlags:
+ * @CLUTTER_FONT_MIPMAPPING: Set to use mipmaps for the glyph cache textures.
+ * @CLUTTER_FONT_HINTING: Set to enable hinting on the glyphs.
+ *
+ * Runtime flags to change the font quality. To be used with
+ * clutter_set_font_flags().
+ *
+ * Since: 1.0
+ */
+typedef enum { /*< prefix=CLUTTER_FONT >*/
+  CLUTTER_FONT_MIPMAPPING = (1 << 0),
+  CLUTTER_FONT_HINTING    = (1 << 1)
+} ClutterFontFlags;
+
+/**
+ * ClutterTextDirection:
+ * @CLUTTER_TEXT_DIRECTION_DEFAULT: Use the default setting, as returned
+ *   by clutter_get_default_text_direction()
+ * @CLUTTER_TEXT_DIRECTION_LTR: Use left-to-right text direction
+ * @CLUTTER_TEXT_DIRECTION_RTL: Use right-to-left text direction
+ *
+ * The text direction to be used by #ClutterActor<!-- -->s
+ *
+ * Since: 1.2
+ */
+typedef enum {
+  CLUTTER_TEXT_DIRECTION_DEFAULT,
+  CLUTTER_TEXT_DIRECTION_LTR,
+  CLUTTER_TEXT_DIRECTION_RTL
+} ClutterTextDirection;
+
+/**
+ * ClutterShaderType:
+ * @CLUTTER_VERTEX_SHADER: a vertex shader
+ * @CLUTTER_FRAGMENT_SHADER: a fragment shader
+ *
+ * The type of GLSL shader program
+ *
+ * Since: 1.4
+ */
+typedef enum {
+  CLUTTER_VERTEX_SHADER,
+  CLUTTER_FRAGMENT_SHADER
+} ClutterShaderType;
+
+/**
+ * ClutterModifierType:
+ * @CLUTTER_SHIFT_MASK: Mask applied by the Shift key
+ * @CLUTTER_LOCK_MASK: Mask applied by the Caps Lock key
+ * @CLUTTER_CONTROL_MASK: Mask applied by the Control key
+ * @CLUTTER_MOD1_MASK: Mask applied by the first Mod key
+ * @CLUTTER_MOD2_MASK: Mask applied by the second Mod key
+ * @CLUTTER_MOD3_MASK: Mask applied by the third Mod key
+ * @CLUTTER_MOD4_MASK: Mask applied by the fourth Mod key
+ * @CLUTTER_MOD5_MASK: Mask applied by the fifth Mod key
+ * @CLUTTER_BUTTON1_MASK: Mask applied by the first pointer button
+ * @CLUTTER_BUTTON2_MASK: Mask applied by the second pointer button
+ * @CLUTTER_BUTTON3_MASK: Mask applied by the third pointer button
+ * @CLUTTER_BUTTON4_MASK: Mask applied by the fourth pointer button
+ * @CLUTTER_BUTTON5_MASK: Mask applied by the fifth pointer button
+ * @CLUTTER_SUPER_MASK: Mask applied by the Super key
+ * @CLUTTER_HYPER_MASK: Mask applied by the Hyper key
+ * @CLUTTER_META_MASK: Mask applied by the Meta key
+ * @CLUTTER_RELEASE_MASK: Mask applied during release
+ * @CLUTTER_MODIFIER_MASK: A mask covering all modifier types
+ *
+ * Masks applied to a #ClutterEvent by modifiers.
+ *
+ * Note that Clutter may add internal values to events which include
+ * reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK.  Your code
+ * should preserve and ignore them.  You can use %CLUTTER_MODIFIER_MASK to
+ * remove all reserved values.
+ *
+ * Since: 0.4
+ */
+typedef enum {
+  CLUTTER_SHIFT_MASK    = 1 << 0,
+  CLUTTER_LOCK_MASK     = 1 << 1,
+  CLUTTER_CONTROL_MASK  = 1 << 2,
+  CLUTTER_MOD1_MASK     = 1 << 3,
+  CLUTTER_MOD2_MASK     = 1 << 4,
+  CLUTTER_MOD3_MASK     = 1 << 5,
+  CLUTTER_MOD4_MASK     = 1 << 6,
+  CLUTTER_MOD5_MASK     = 1 << 7,
+  CLUTTER_BUTTON1_MASK  = 1 << 8,
+  CLUTTER_BUTTON2_MASK  = 1 << 9,
+  CLUTTER_BUTTON3_MASK  = 1 << 10,
+  CLUTTER_BUTTON4_MASK  = 1 << 11,
+  CLUTTER_BUTTON5_MASK  = 1 << 12,
+
+#ifndef __GTK_DOC_IGNORE__
+  CLUTTER_MODIFIER_RESERVED_13_MASK  = 1 << 13,
+  CLUTTER_MODIFIER_RESERVED_14_MASK  = 1 << 14,
+  CLUTTER_MODIFIER_RESERVED_15_MASK  = 1 << 15,
+  CLUTTER_MODIFIER_RESERVED_16_MASK  = 1 << 16,
+  CLUTTER_MODIFIER_RESERVED_17_MASK  = 1 << 17,
+  CLUTTER_MODIFIER_RESERVED_18_MASK  = 1 << 18,
+  CLUTTER_MODIFIER_RESERVED_19_MASK  = 1 << 19,
+  CLUTTER_MODIFIER_RESERVED_20_MASK  = 1 << 20,
+  CLUTTER_MODIFIER_RESERVED_21_MASK  = 1 << 21,
+  CLUTTER_MODIFIER_RESERVED_22_MASK  = 1 << 22,
+  CLUTTER_MODIFIER_RESERVED_23_MASK  = 1 << 23,
+  CLUTTER_MODIFIER_RESERVED_24_MASK  = 1 << 24,
+  CLUTTER_MODIFIER_RESERVED_25_MASK  = 1 << 25,
+#endif
+
+  CLUTTER_SUPER_MASK    = 1 << 26,
+  CLUTTER_HYPER_MASK    = 1 << 27,
+  CLUTTER_META_MASK     = 1 << 28,
+
+#ifndef __GTK_DOC_IGNORE__
+  CLUTTER_MODIFIER_RESERVED_29_MASK  = 1 << 29,
+#endif
+
+  CLUTTER_RELEASE_MASK  = 1 << 30,
+
+  /* Combination of CLUTTER_SHIFT_MASK..CLUTTER_BUTTON5_MASK + CLUTTER_SUPER_MASK
+     + CLUTTER_HYPER_MASK + CLUTTER_META_MASK + CLUTTER_RELEASE_MASK */
+  CLUTTER_MODIFIER_MASK = 0x5c001fff
+} ClutterModifierType;
+
+/**
+ * ClutterActorFlags:
+ * @CLUTTER_ACTOR_MAPPED: the actor will be painted (is visible, and inside
+ *   a toplevel, and all parents visible)
+ * @CLUTTER_ACTOR_REALIZED: the resources associated to the actor have been
+ *   allocated
+ * @CLUTTER_ACTOR_REACTIVE: the actor 'reacts' to mouse events emmitting event
+ *   signals
+ * @CLUTTER_ACTOR_VISIBLE: the actor has been shown by the application program
+ * @CLUTTER_ACTOR_NO_LAYOUT: the actor provides an explicit layout management
+ *   policy for its children; this flag will prevent Clutter from automatic
+ *   queueing of relayout and will defer all layouting to the actor itself
+ *
+ * Flags used to signal the state of an actor.
+ */
+typedef enum { /*< prefix=CLUTTER_ACTOR >*/
+  CLUTTER_ACTOR_MAPPED    = 1 << 1,
+  CLUTTER_ACTOR_REALIZED  = 1 << 2,
+  CLUTTER_ACTOR_REACTIVE  = 1 << 3,
+  CLUTTER_ACTOR_VISIBLE   = 1 << 4,
+  CLUTTER_ACTOR_NO_LAYOUT = 1 << 5
+} ClutterActorFlags;
+
+/**
+ * ClutterOffscreenRedirect:
+ * @CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY: Only redirect
+ *   the actor if it is semi-transparent and its has_overlaps()
+ *   virtual returns %TRUE. This is the default.
+ * @CLUTTER_OFFSCREEN_REDIRECT_ALWAYS: Always redirect the actor to an
+ *   offscreen buffer even if it is fully opaque.
+ *
+ * Possible flags to pass to clutter_actor_set_offscreen_redirect().
+ *
+ * Since: 1.8
+ */
+typedef enum { /*< prefix=CLUTTER_OFFSCREEN_REDIRECT >*/
+  CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY = 1<<0,
+  CLUTTER_OFFSCREEN_REDIRECT_ALWAYS = 1<<1
+} ClutterOffscreenRedirect;
+
+/**
+ * ClutterAllocationFlags:
+ * @CLUTTER_ALLOCATION_NONE: No flag set
+ * @CLUTTER_ABSOLUTE_ORIGIN_CHANGED: Whether the absolute origin of the
+ *   actor has changed; this implies that any ancestor of the actor has
+ *   been moved
+ *
+ * Flags passed to the #ClutterActor::allocate() virtual function and
+ * to the clutter_actor_allocate() function
+ *
+ * Since: 1.0
+ */
+typedef enum {
+  CLUTTER_ALLOCATION_NONE         = 0,
+  CLUTTER_ABSOLUTE_ORIGIN_CHANGED = 1 << 1
+} ClutterAllocationFlags;
+
+/**
+ * ClutterAlignAxis:
+ * @CLUTTER_ALIGN_X_AXIS: Maintain the alignment on the X axis
+ * @CLUTTER_ALIGN_Y_AXIS: Maintain the alignment on the Y axis
+ *
+ * Specifies the axis on which #ClutterAlignConstraint should maintain
+ * the alignment
+ *
+ * Since: 1.4
+ */
+typedef enum { /*< prefix=CLUTTER_ALIGN >*/
+  CLUTTER_ALIGN_X_AXIS,
+  CLUTTER_ALIGN_Y_AXIS
+} ClutterAlignAxis;
+
+/**
+ * ClutterInterpolation:
+ * @CLUTTER_INTERPOLATION_LINEAR: linear interpolation
+ * @CLUTTER_INTERPOLATION_CUBIC: cubic interpolation
+ *
+ * The mode of interpolation between key frames
+ *
+ * Since: 1.2
+ */
+typedef enum {
+  CLUTTER_INTERPOLATION_LINEAR,
+  CLUTTER_INTERPOLATION_CUBIC
+} ClutterInterpolation;
+
+/**
+ * ClutterBinAlignment:
+ * @CLUTTER_BIN_ALIGNMENT_FIXED: Fixed position alignment; the
+ *   #ClutterBinLayout will honour the fixed position provided
+ *   by the actors themselves when allocating them
+ * @CLUTTER_BIN_ALIGNMENT_FILL: Fill the allocation size
+ * @CLUTTER_BIN_ALIGNMENT_START: Position the actors at the top
+ *   or left side of the container, depending on the axis
+ * @CLUTTER_BIN_ALIGNMENT_END: Position the actors at the bottom
+ *   or right side of the container, depending on the axis
+ * @CLUTTER_BIN_ALIGNMENT_CENTER: Position the actors at the
+ *   center of the container, depending on the axis
+ *
+ * The alignment policies available on each axis for #ClutterBinLayout
+ *
+ * Since: 1.2
+ */
+typedef enum {
+  CLUTTER_BIN_ALIGNMENT_FIXED,
+  CLUTTER_BIN_ALIGNMENT_FILL,
+  CLUTTER_BIN_ALIGNMENT_START,
+  CLUTTER_BIN_ALIGNMENT_END,
+  CLUTTER_BIN_ALIGNMENT_CENTER
+} ClutterBinAlignment;
+
+/**
+ * ClutterBindCoordinate:
+ * @CLUTTER_BIND_X: Bind the X coordinate
+ * @CLUTTER_BIND_Y: Bind the Y coordinate
+ * @CLUTTER_BIND_WIDTH: Bind the width
+ * @CLUTTER_BIND_HEIGHT: Bind the height
+ * @CLUTTER_BIND_POSITION: Equivalent to to %CLUTTER_BIND_X and
+ *   %CLUTTER_BIND_Y
+ * @CLUTTER_BIND_SIZE: Equivalent to %CLUTTER_BIND_WIDTH and
+ *   %CLUTTER_BIND_HEIGHT
+ *
+ * Specifies which property should be used in a binding
+ *
+ * Since: 1.4
+ */
+typedef enum { /*< prefix=CLUTTER_BIND >*/
+  CLUTTER_BIND_X,
+  CLUTTER_BIND_Y,
+  CLUTTER_BIND_WIDTH,
+  CLUTTER_BIND_HEIGHT,
+  CLUTTER_BIND_POSITION,
+  CLUTTER_BIND_SIZE
+} ClutterBindCoordinate;
+
+/**
+ * ClutterEffectPaintFlags:
+ * @CLUTTER_EFFECT_PAINT_ACTOR_DIRTY: The actor or one of its children
+ *   has queued a redraw before this paint. This implies that the effect
+ *   should call clutter_actor_continue_paint() to chain to the next
+ *   effect and can not cache any results from a previous paint.
+ *
+ * Flags passed to the âpaintâ or âpickâ method of #ClutterEffect.
+ */
+typedef enum { /*< prefix=CLUTTER_EFFECT_PAINT >*/
+  CLUTTER_EFFECT_PAINT_ACTOR_DIRTY = (1 << 0)
+} ClutterEffectPaintFlags;
+
+/**
+ * ClutterBoxAlignment:
+ * @CLUTTER_BOX_ALIGNMENT_START: Align the child to the top or to
+ *   to the left, depending on the used axis
+ * @CLUTTER_BOX_ALIGNMENT_CENTER: Align the child to the center
+ * @CLUTTER_BOX_ALIGNMENT_END: Align the child to the bottom or to
+ *   the right, depending on the used axis
+ *
+ * The alignment policies available on each axis of the #ClutterBoxLayout
+ *
+ * Since: 1.2
+ */
+typedef enum {
+  CLUTTER_BOX_ALIGNMENT_START,
+  CLUTTER_BOX_ALIGNMENT_END,
+  CLUTTER_BOX_ALIGNMENT_CENTER
+} ClutterBoxAlignment;
+
+/**
+ * ClutterLongPressState:
+ * @CLUTTER_LONG_PRESS_QUERY: Queries the action whether it supports
+ *   long presses
+ * @CLUTTER_LONG_PRESS_ACTIVATE: Activates the action on a long press
+ * @CLUTTER_LONG_PRESS_CANCEL: The long press was cancelled
+ *
+ * The states for the #ClutterClikAction::long-press signal.
+ *
+ * Since: 1.8
+ */
+typedef enum { /*< prefix=CLUTTER_LONG_PRESS >*/
+  CLUTTER_LONG_PRESS_QUERY,
+  CLUTTER_LONG_PRESS_ACTIVATE,
+  CLUTTER_LONG_PRESS_CANCEL
+} ClutterLongPressState;
+
+/**
+ * ClutterStaticColor:
+ * @CLUTTER_COLOR_WHITE: White color (ffffffff)
+ * @CLUTTER_COLOR_BLACK: Black color (000000ff)
+ * @CLUTTER_COLOR_RED: Red color (ff0000ff)
+ * @CLUTTER_COLOR_DARK_RED: Dark red color (800000ff)
+ * @CLUTTER_COLOR_GREEN: Green color (00ff00ff)
+ * @CLUTTER_COLOR_DARK_GREEN: Dark green color (008000ff)
+ * @CLUTTER_COLOR_BLUE: Blue color (0000ffff)
+ * @CLUTTER_COLOR_DARK_BLUE: Dark blue color (000080ff)
+ * @CLUTTER_COLOR_CYAN: Cyan color (00ffffff)
+ * @CLUTTER_COLOR_DARK_CYAN: Dark cyan color (008080ff)
+ * @CLUTTER_COLOR_MAGENTA: Magenta color (ff00ffff)
+ * @CLUTTER_COLOR_DARK_MAGENTA: Dark magenta color (800080ff)
+ * @CLUTTER_COLOR_YELLOW: Yellow color (ffff00ff)
+ * @CLUTTER_COLOR_DARK_YELLOW: Dark yellow color (808000ff)
+ * @CLUTTER_COLOR_GRAY: Gray color (a0a0a4ff)
+ * @CLUTTER_COLOR_DARK_GRAY: Dark Gray color (808080ff)
+ * @CLUTTER_COLOR_LIGHT_GRAY: Light gray color (c0c0c0ff)
+ * @CLUTTER_COLOR_BUTTER: Butter color (edd400ff)
+ * @CLUTTER_COLOR_BUTTER_LIGHT: Light butter color (fce94fff)
+ * @CLUTTER_COLOR_BUTTER_DARK: Dark butter color (c4a000ff)
+ * @CLUTTER_COLOR_ORANGE: Orange color (f57900ff)
+ * @CLUTTER_COLOR_ORANGE_LIGHT: Light orange color (fcaf3fff)
+ * @CLUTTER_COLOR_ORANGE_DARK: Dark orange color (ce5c00ff)
+ * @CLUTTER_COLOR_CHOCOLATE: Chocolate color (c17d11ff)
+ * @CLUTTER_COLOR_CHOCOLATE_LIGHT: Light chocolate color (e9b96eff)
+ * @CLUTTER_COLOR_CHOCOLATE_DARK: Dark chocolate color (8f5902ff)
+ * @CLUTTER_COLOR_CHAMELEON: Chameleon color (73d216ff)
+ * @CLUTTER_COLOR_CHAMELEON_LIGHT: Light chameleon color (8ae234ff)
+ * @CLUTTER_COLOR_CHAMELEON_DARK: Dark chameleon color (4e9a06ff)
+ * @CLUTTER_COLOR_SKY_BLUE: Sky color (3465a4ff)
+ * @CLUTTER_COLOR_SKY_BLUE_LIGHT: Light sky color (729fcfff)
+ * @CLUTTER_COLOR_SKY_BLUE_DARK: Dark sky color (204a87ff)
+ * @CLUTTER_COLOR_PLUM: Plum color (75507bff)
+ * @CLUTTER_COLOR_PLUM_LIGHT: Light plum color (ad7fa8ff)
+ * @CLUTTER_COLOR_PLUM_DARK: Dark plum color (5c3566ff)
+ * @CLUTTER_COLOR_SCARLET_RED: Scarlet red color (cc0000ff)
+ * @CLUTTER_COLOR_SCARLET_RED_LIGHT: Light scarlet red color (ef2929ff)
+ * @CLUTTER_COLOR_SCARLET_RED_DARK: Dark scarlet red color (a40000ff)
+ * @CLUTTER_COLOR_ALUMINIUM_1: Aluminium, first variant (eeeeecff)
+ * @CLUTTER_COLOR_ALUMINIUM_2: Aluminium, second variant (d3d7cfff)
+ * @CLUTTER_COLOR_ALUMINIUM_3: Aluminium, third variant (babdb6ff)
+ * @CLUTTER_COLOR_ALUMINIUM_4: Aluminium, fourth variant (888a85ff)
+ * @CLUTTER_COLOR_ALUMINIUM_5: Aluminium, fifth variant (555753ff)
+ * @CLUTTER_COLOR_ALUMINIUM_6: Aluminium, sixth variant (2e3436ff)
+ * @CLUTTER_COLOR_TRANSPARENT: Transparent color (00000000)
+ *
+ * Named colors, for accessing global colors defined by Clutter
+ *
+ * Since: 1.6
+ */
+typedef enum { /*< prefix=CLUTTER_COLOR >*/
+  /* CGA/EGA-like palette */
+  CLUTTER_COLOR_WHITE           = 0,
+  CLUTTER_COLOR_BLACK,
+  CLUTTER_COLOR_RED,
+  CLUTTER_COLOR_DARK_RED,
+  CLUTTER_COLOR_GREEN,
+  CLUTTER_COLOR_DARK_GREEN,
+  CLUTTER_COLOR_BLUE,
+  CLUTTER_COLOR_DARK_BLUE,
+  CLUTTER_COLOR_CYAN,
+  CLUTTER_COLOR_DARK_CYAN,
+  CLUTTER_COLOR_MAGENTA,
+  CLUTTER_COLOR_DARK_MAGENTA,
+  CLUTTER_COLOR_YELLOW,
+  CLUTTER_COLOR_DARK_YELLOW,
+  CLUTTER_COLOR_GRAY,
+  CLUTTER_COLOR_DARK_GRAY,
+  CLUTTER_COLOR_LIGHT_GRAY,
+
+  /* Tango icon palette */
+  CLUTTER_COLOR_BUTTER,
+  CLUTTER_COLOR_BUTTER_LIGHT,
+  CLUTTER_COLOR_BUTTER_DARK,
+  CLUTTER_COLOR_ORANGE,
+  CLUTTER_COLOR_ORANGE_LIGHT,
+  CLUTTER_COLOR_ORANGE_DARK,
+  CLUTTER_COLOR_CHOCOLATE,
+  CLUTTER_COLOR_CHOCOLATE_LIGHT,
+  CLUTTER_COLOR_CHOCOLATE_DARK,
+  CLUTTER_COLOR_CHAMELEON,
+  CLUTTER_COLOR_CHAMELEON_LIGHT,
+  CLUTTER_COLOR_CHAMELEON_DARK,
+  CLUTTER_COLOR_SKY_BLUE,
+  CLUTTER_COLOR_SKY_BLUE_LIGHT,
+  CLUTTER_COLOR_SKY_BLUE_DARK,
+  CLUTTER_COLOR_PLUM,
+  CLUTTER_COLOR_PLUM_LIGHT,
+  CLUTTER_COLOR_PLUM_DARK,
+  CLUTTER_COLOR_SCARLET_RED,
+  CLUTTER_COLOR_SCARLET_RED_LIGHT,
+  CLUTTER_COLOR_SCARLET_RED_DARK,
+  CLUTTER_COLOR_ALUMINIUM_1,
+  CLUTTER_COLOR_ALUMINIUM_2,
+  CLUTTER_COLOR_ALUMINIUM_3,
+  CLUTTER_COLOR_ALUMINIUM_4,
+  CLUTTER_COLOR_ALUMINIUM_5,
+  CLUTTER_COLOR_ALUMINIUM_6,
+
+  /* Fully transparent black */
+  CLUTTER_COLOR_TRANSPARENT
+} ClutterStaticColor;
+
+/**
+ * ClutterDragAxis:
+ * @CLUTTER_DRAG_AXIS_NONE: No constraint
+ * @CLUTTER_DRAG_X_AXIS: Set a constraint on the X axis
+ * @CLUTTER_DRAG_Y_AXIS: Set a constraint on the Y axis
+ *
+ * The axis of the constraint that should be applied on the
+ * dragging action
+ *
+ * Since: 1.4
+ */
+typedef enum { /*< prefix=CLUTTER_DRAG >*/
+  CLUTTER_DRAG_AXIS_NONE = 0,
+
+  CLUTTER_DRAG_X_AXIS,
+  CLUTTER_DRAG_Y_AXIS
+} ClutterDragAxis;
+
+/**
+ * ClutterEventFlags:
+ * @CLUTTER_EVENT_NONE: No flag set
+ * @CLUTTER_EVENT_FLAG_SYNTHETIC: Synthetic event
+ *
+ * Flags for the #ClutterEvent
+ *
+ * Since: 0.6
+ */
+typedef enum { /*< flags prefix=CLUTTER_EVENT >*/
+  CLUTTER_EVENT_NONE           = 0,
+  CLUTTER_EVENT_FLAG_SYNTHETIC = 1 << 0
+} ClutterEventFlags;
+
+/**
+ * ClutterEventType:
+ * @CLUTTER_NOTHING: Empty event
+ * @CLUTTER_KEY_PRESS: Key press event
+ * @CLUTTER_KEY_RELEASE: Key release event
+ * @CLUTTER_MOTION: Pointer motion event
+ * @CLUTTER_ENTER: Actor enter event
+ * @CLUTTER_LEAVE: Actor leave event
+ * @CLUTTER_BUTTON_PRESS: Pointer button press event
+ * @CLUTTER_BUTTON_RELEASE: Pointer button release event
+ * @CLUTTER_SCROLL: Pointer scroll event
+ * @CLUTTER_STAGE_STATE: Stage stage change event
+ * @CLUTTER_DESTROY_NOTIFY: Destroy notification event
+ * @CLUTTER_CLIENT_MESSAGE: Client message event
+ * @CLUTTER_DELETE: Stage delete event
+ *
+ * Types of events.
+ *
+ * Since: 0.4
+ */
+typedef enum { /*< prefix=CLUTTER >*/
+  CLUTTER_NOTHING = 0,
+  CLUTTER_KEY_PRESS,
+  CLUTTER_KEY_RELEASE,
+  CLUTTER_MOTION,
+  CLUTTER_ENTER,
+  CLUTTER_LEAVE,
+  CLUTTER_BUTTON_PRESS,
+  CLUTTER_BUTTON_RELEASE,
+  CLUTTER_SCROLL,
+  CLUTTER_STAGE_STATE,
+  CLUTTER_DESTROY_NOTIFY,
+  CLUTTER_CLIENT_MESSAGE,
+  CLUTTER_DELETE
+} ClutterEventType;
+
+/**
+ * ClutterScrollDirection:
+ * @CLUTTER_SCROLL_UP: Scroll up
+ * @CLUTTER_SCROLL_DOWN: Scroll down
+ * @CLUTTER_SCROLL_LEFT: Scroll left
+ * @CLUTTER_SCROLL_RIGHT: Scroll right
+ *
+ * Direction of a pointer scroll event.
+ *
+ * Since: 0.4
+ */
+typedef enum { /*< prefix=CLUTTER_SCROLL >*/
+  CLUTTER_SCROLL_UP,
+  CLUTTER_SCROLL_DOWN,
+  CLUTTER_SCROLL_LEFT,
+  CLUTTER_SCROLL_RIGHT
+} ClutterScrollDirection;
+
+/**
+ * ClutterStageState:
+ * @CLUTTER_STAGE_STATE_FULLSCREEN: Fullscreen mask
+ * @CLUTTER_STAGE_STATE_OFFSCREEN: Offscreen mask
+ * @CLUTTER_STAGE_STATE_ACTIVATED: Activated mask
+ *
+ * Stage state masks
+ *
+ * Since: 0.4
+ */
+typedef enum {
+  CLUTTER_STAGE_STATE_FULLSCREEN       = (1<<1),
+  CLUTTER_STAGE_STATE_OFFSCREEN        = (1<<2),
+  CLUTTER_STAGE_STATE_ACTIVATED        = (1<<3)
+} ClutterStageState;
+
+/**
+ * ClutterFeatureFlags:
+ * @CLUTTER_FEATURE_TEXTURE_NPOT: Set if NPOTS textures supported.
+ * @CLUTTER_FEATURE_SYNC_TO_VBLANK: Set if vblank syncing supported.
+ * @CLUTTER_FEATURE_TEXTURE_YUV: Set if YUV based textures supported.
+ * @CLUTTER_FEATURE_TEXTURE_READ_PIXELS: Set if texture pixels can be read.
+ * @CLUTTER_FEATURE_STAGE_STATIC: Set if stage size if fixed (i.e framebuffer)
+ * @CLUTTER_FEATURE_STAGE_USER_RESIZE: Set if stage is able to be user resized.
+ * @CLUTTER_FEATURE_STAGE_CURSOR: Set if stage has a graphical cursor.
+ * @CLUTTER_FEATURE_SHADERS_GLSL: Set if the backend supports GLSL shaders.
+ * @CLUTTER_FEATURE_OFFSCREEN: Set if the backend supports offscreen rendering.
+ * @CLUTTER_FEATURE_STAGE_MULTIPLE: Set if multiple stages are supported.
+ * @CLUTTER_FEATURE_SWAP_EVENTS: Set if the GLX_INTEL_swap_event is supported.
+ *
+ * Runtime flags indicating specific features available via Clutter window
+ * sysytem and graphics backend.
+ *
+ * Since: 0.4
+ */
+typedef enum 
+{
+  CLUTTER_FEATURE_TEXTURE_NPOT           = (1 << 2),
+  CLUTTER_FEATURE_SYNC_TO_VBLANK         = (1 << 3),
+  CLUTTER_FEATURE_TEXTURE_YUV            = (1 << 4),
+  CLUTTER_FEATURE_TEXTURE_READ_PIXELS    = (1 << 5),
+  CLUTTER_FEATURE_STAGE_STATIC           = (1 << 6),
+  CLUTTER_FEATURE_STAGE_USER_RESIZE      = (1 << 7),
+  CLUTTER_FEATURE_STAGE_CURSOR           = (1 << 8),
+  CLUTTER_FEATURE_SHADERS_GLSL           = (1 << 9),
+  CLUTTER_FEATURE_OFFSCREEN              = (1 << 10),
+  CLUTTER_FEATURE_STAGE_MULTIPLE         = (1 << 11),
+  CLUTTER_FEATURE_SWAP_EVENTS            = (1 << 12)
+} ClutterFeatureFlags;
+
+/**
+ * ClutterFlowOrientation:
+ * @CLUTTER_FLOW_HORIZONTAL: Arrange the children of the flow layout
+ *   horizontally first
+ * @CLUTTER_FLOW_VERTICAL: Arrange the children of the flow layout
+ *   vertically first
+ *
+ * The direction of the arrangement of the children inside
+ * a #ClutterFlowLayout
+ *
+ * Since: 1.2
+ */
+typedef enum { /*< prefix=CLUTTER_FLOW >*/
+  CLUTTER_FLOW_HORIZONTAL,
+  CLUTTER_FLOW_VERTICAL
+} ClutterFlowOrientation;
+
+/**
+ * ClutterInputDeviceType:
+ * @CLUTTER_POINTER_DEVICE: A pointer device
+ * @CLUTTER_KEYBOARD_DEVICE: A keyboard device
+ * @CLUTTER_EXTENSION_DEVICE: A generic extension device
+ * @CLUTTER_JOYSTICK_DEVICE: A joystick device
+ * @CLUTTER_TABLET_DEVICE: A tablet device
+ * @CLUTTER_TOUCHPAD_DEVICE: A touchpad device
+ * @CLUTTER_TOUCHSCREEN_DEVICE: A touch screen device
+ * @CLUTTER_PEN_DEVICE: A pen device
+ * @CLUTTER_ERASER_DEVICE: An eraser device
+ * @CLUTTER_CURSOR_DEVICE: A cursor device
+ * @CLUTTER_N_DEVICE_TYPES: The number of device types
+ *
+ * The types of input devices available.
+ *
+ * The #ClutterInputDeviceType enumeration can be extended at later
+ * date; not every platform supports every input device type.
+ *
+ * Since: 1.0
+ */
+typedef enum {
+  CLUTTER_POINTER_DEVICE,
+  CLUTTER_KEYBOARD_DEVICE,
+  CLUTTER_EXTENSION_DEVICE,
+  CLUTTER_JOYSTICK_DEVICE,
+  CLUTTER_TABLET_DEVICE,
+  CLUTTER_TOUCHPAD_DEVICE,
+  CLUTTER_TOUCHSCREEN_DEVICE,
+  CLUTTER_PEN_DEVICE,
+  CLUTTER_ERASER_DEVICE,
+  CLUTTER_CURSOR_DEVICE,
+
+  CLUTTER_N_DEVICE_TYPES
+} ClutterInputDeviceType;
+
+/**
+ * ClutterInputMode:
+ * @CLUTTER_INPUT_MODE_MASTER: A master, virtual device
+ * @CLUTTER_INPUT_MODE_SLAVE: A slave, physical device, attached to
+ *   a master device
+ * @CLUTTER_INPUT_MODE_FLOATING: A slave, physical device, not attached
+ *   to a master device
+ *
+ * The mode for input devices available.
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  CLUTTER_INPUT_MODE_MASTER,
+  CLUTTER_INPUT_MODE_SLAVE,
+  CLUTTER_INPUT_MODE_FLOATING
+} ClutterInputMode;
+
+/**
+ * ClutterInputAxis:
+ * @CLUTTER_INPUT_AXIS_IGNORE: Unused axis
+ * @CLUTTER_INPUT_AXIS_X: The position on the X axis
+ * @CLUTTER_INPUT_AXIS_Y: The position of the Y axis
+ * @CLUTTER_INPUT_AXIS_PRESSURE: The pressure information
+ * @CLUTTER_INPUT_AXIS_XTILT: The tilt on the X axis
+ * @CLUTTER_INPUT_AXIS_YTILT: The tile on the Y axis
+ * @CLUTTER_INPUT_AXIS_WHEEL: A wheel
+ *
+ * The type of axes Clutter recognizes on a #ClutterInputDevice
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  CLUTTER_INPUT_AXIS_IGNORE,
+  CLUTTER_INPUT_AXIS_X,
+  CLUTTER_INPUT_AXIS_Y,
+  CLUTTER_INPUT_AXIS_PRESSURE,
+  CLUTTER_INPUT_AXIS_XTILT,
+  CLUTTER_INPUT_AXIS_YTILT,
+  CLUTTER_INPUT_AXIS_WHEEL
+} ClutterInputAxis;
+
+/**
+ * ClutterSnapEdge:
+ * @CLUTTER_SNAP_EDGE_TOP: the top edge
+ * @CLUTTER_SNAP_EDGE_RIGHT: the right edge
+ * @CLUTTER_SNAP_EDGE_BOTTOM: the bottom edge
+ * @CLUTTER_SNAP_EDGE_LEFT: the left edge
+ *
+ * The edge to snap
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  CLUTTER_SNAP_EDGE_TOP,
+  CLUTTER_SNAP_EDGE_RIGHT,
+  CLUTTER_SNAP_EDGE_BOTTOM,
+  CLUTTER_SNAP_EDGE_LEFT
+} ClutterSnapEdge;
+
+/**
+ * ClutterPickMode:
+ * @CLUTTER_PICK_NONE: Do not paint any actor
+ * @CLUTTER_PICK_REACTIVE: Paint only the reactive actors
+ * @CLUTTER_PICK_ALL: Paint all actors
+ *
+ * Controls the paint cycle of the scene graph when in pick mode
+ *
+ * Since: 1.0
+ */
+typedef enum {
+  CLUTTER_PICK_NONE = 0,
+  CLUTTER_PICK_REACTIVE,
+  CLUTTER_PICK_ALL
+} ClutterPickMode;
+
+/**
+ * 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_DIRECTION >*/
+  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;
+
+/**
+ * ClutterTableAlignment:
+ * @CLUTTER_TABLE_ALIGNMENT_START: Align the child to the top or to the
+ *   left of a cell in the table, depending on the axis
+ * @CLUTTER_TABLE_ALIGNMENT_CENTER: Align the child to the center of
+ *   a cell in the table
+ * @CLUTTER_TABLE_ALIGNMENT_END: Align the child to the bottom or to the
+ *   right of a cell in the table, depending on the axis
+ *
+ * The alignment policies available on each axis of the #ClutterTableLayout
+ *
+ * Since: 1.4
+ */
+typedef enum {
+  CLUTTER_TABLE_ALIGNMENT_START,
+  CLUTTER_TABLE_ALIGNMENT_CENTER,
+  CLUTTER_TABLE_ALIGNMENT_END
+} ClutterTableAlignment;
+
+/**
+ * ClutterTextureFlags:
+ * @CLUTTER_TEXTURE_NONE: No flags
+ * @CLUTTER_TEXTURE_RGB_FLAG_BGR: FIXME
+ * @CLUTTER_TEXTURE_RGB_FLAG_PREMULT: FIXME
+ * @CLUTTER_TEXTURE_YUV_FLAG_YUV2: FIXME
+ *
+ * Flags for clutter_texture_set_from_rgb_data() and
+ * clutter_texture_set_from_yuv_data().
+ *
+ * Since: 0.4
+ */
+typedef enum { /*< prefix=CLUTTER_TEXTURE >*/
+  CLUTTER_TEXTURE_NONE             = 0,
+  CLUTTER_TEXTURE_RGB_FLAG_BGR     = 1 << 1,
+  CLUTTER_TEXTURE_RGB_FLAG_PREMULT = 1 << 2, /* FIXME: not handled */
+  CLUTTER_TEXTURE_YUV_FLAG_YUV2    = 1 << 3
+
+  /* FIXME: add compressed types ? */
+} ClutterTextureFlags;
+
+/**
+ * ClutterTextureQuality:
+ * @CLUTTER_TEXTURE_QUALITY_LOW: fastest rendering will use nearest neighbour
+ *   interpolation when rendering. good setting.
+ * @CLUTTER_TEXTURE_QUALITY_MEDIUM: higher quality rendering without using
+ *   extra resources.
+ * @CLUTTER_TEXTURE_QUALITY_HIGH: render the texture with the best quality
+ *   available using extra memory.
+ *
+ * Enumaration controlling the texture quality.
+ *
+ * Since: 0.8
+ */
+typedef enum { /*< prefix=CLUTTER_TEXTURE_QUALITY >*/
+  CLUTTER_TEXTURE_QUALITY_LOW,
+  CLUTTER_TEXTURE_QUALITY_MEDIUM,
+  CLUTTER_TEXTURE_QUALITY_HIGH
+} ClutterTextureQuality;
+
+/**
+ * ClutterTimelineDirection:
+ * @CLUTTER_TIMELINE_FORWARD: forward direction for a timeline
+ * @CLUTTER_TIMELINE_BACKWARD: backward direction for a timeline
+ *
+ * The direction of a #ClutterTimeline
+ *
+ * Since: 0.6
+ */
+typedef enum {
+  CLUTTER_TIMELINE_FORWARD,
+  CLUTTER_TIMELINE_BACKWARD
+} ClutterTimelineDirection;
+
+/**
+ * ClutterUnitType:
+ * @CLUTTER_UNIT_PIXEL: Unit expressed in pixels (with subpixel precision)
+ * @CLUTTER_UNIT_EM: Unit expressed in em
+ * @CLUTTER_UNIT_MM: Unit expressed in millimeters
+ * @CLUTTER_UNIT_POINT: Unit expressed in points
+ * @CLUTTER_UNIT_CM: Unit expressed in centimeters
+ *
+ * The type of unit in which a value is expressed
+ *
+ * This enumeration might be expanded at later date
+ *
+ * Since: 1.0
+ */
+typedef enum { /*< prefix=CLUTTER_UNIT >*/
+  CLUTTER_UNIT_PIXEL,
+  CLUTTER_UNIT_EM,
+  CLUTTER_UNIT_MM,
+  CLUTTER_UNIT_POINT,
+  CLUTTER_UNIT_CM
+} ClutterUnitType;
+
+#define CLUTTER_PATH_RELATIVE           (32)
+
+/**
+ * ClutterPathNodeType:
+ * @CLUTTER_PATH_MOVE_TO: jump to the given position
+ * @CLUTTER_PATH_LINE_TO: create a line from the last node to the
+ *   given position
+ * @CLUTTER_PATH_CURVE_TO: bezier curve using the last position and
+ *   three control points.
+ * @CLUTTER_PATH_CLOSE: create a line from the last node to the last
+ *   %CLUTTER_PATH_MOVE_TO node.
+ * @CLUTTER_PATH_REL_MOVE_TO: same as %CLUTTER_PATH_MOVE_TO but with
+ *   coordinates relative to the last node.
+ * @CLUTTER_PATH_REL_LINE_TO: same as %CLUTTER_PATH_LINE_TO but with
+ *   coordinates relative to the last node.
+ * @CLUTTER_PATH_REL_CURVE_TO: same as %CLUTTER_PATH_CURVE_TO but with
+ *   coordinates relative to the last node.
+ *
+ * Types of nodes in a #ClutterPath.
+ *
+ * Since: 1.0
+ */
+typedef enum {
+  CLUTTER_PATH_MOVE_TO      = 0,
+  CLUTTER_PATH_LINE_TO      = 1,
+  CLUTTER_PATH_CURVE_TO     = 2,
+  CLUTTER_PATH_CLOSE        = 3,
+
+  CLUTTER_PATH_REL_MOVE_TO  = CLUTTER_PATH_MOVE_TO | CLUTTER_PATH_RELATIVE,
+  CLUTTER_PATH_REL_LINE_TO  = CLUTTER_PATH_LINE_TO | CLUTTER_PATH_RELATIVE,
+  CLUTTER_PATH_REL_CURVE_TO = CLUTTER_PATH_CURVE_TO | CLUTTER_PATH_RELATIVE
+} ClutterPathNodeType;
+
+G_END_DECLS
+
+#endif /* __CLUTTER_ENUMS_H__ */
diff --git a/clutter/clutter-event.h b/clutter/clutter-event.h
index d50b3cc..d07c927 100644
--- a/clutter/clutter-event.h
+++ b/clutter/clutter-event.h
@@ -28,9 +28,8 @@
 #ifndef __CLUTTER_EVENT_H__
 #define __CLUTTER_EVENT_H__
 
-#include <glib-object.h>
-#include <clutter/clutter-input-device.h>
 #include <clutter/clutter-types.h>
+#include <clutter/clutter-input-device.h>
 
 #define CLUTTER_TYPE_EVENT	(clutter_event_get_type ())
 
@@ -54,90 +53,6 @@
 
 G_BEGIN_DECLS
 
-/**
- * ClutterEventFlags:
- * @CLUTTER_EVENT_NONE: No flag set
- * @CLUTTER_EVENT_FLAG_SYNTHETIC: Synthetic event
- *
- * Flags for the #ClutterEvent
- *
- * Since: 0.6
- */
-typedef enum { /*< flags prefix=CLUTTER_EVENT >*/
-  CLUTTER_EVENT_NONE           = 0,
-  CLUTTER_EVENT_FLAG_SYNTHETIC = 1 << 0
-} ClutterEventFlags;
-
-/**
- * ClutterEventType:
- * @CLUTTER_NOTHING: Empty event
- * @CLUTTER_KEY_PRESS: Key press event
- * @CLUTTER_KEY_RELEASE: Key release event
- * @CLUTTER_MOTION: Pointer motion event
- * @CLUTTER_ENTER: Actor enter event
- * @CLUTTER_LEAVE: Actor leave event
- * @CLUTTER_BUTTON_PRESS: Pointer button press event
- * @CLUTTER_BUTTON_RELEASE: Pointer button release event
- * @CLUTTER_SCROLL: Pointer scroll event
- * @CLUTTER_STAGE_STATE: Stage stage change event
- * @CLUTTER_DESTROY_NOTIFY: Destroy notification event
- * @CLUTTER_CLIENT_MESSAGE: Client message event
- * @CLUTTER_DELETE: Stage delete event
- *
- * Types of events.
- *
- * Since: 0.4
- */
-typedef enum { /*< prefix=CLUTTER >*/
-  CLUTTER_NOTHING = 0,
-  CLUTTER_KEY_PRESS,
-  CLUTTER_KEY_RELEASE,
-  CLUTTER_MOTION,
-  CLUTTER_ENTER,
-  CLUTTER_LEAVE,
-  CLUTTER_BUTTON_PRESS,
-  CLUTTER_BUTTON_RELEASE,
-  CLUTTER_SCROLL,
-  CLUTTER_STAGE_STATE,
-  CLUTTER_DESTROY_NOTIFY,
-  CLUTTER_CLIENT_MESSAGE,
-  CLUTTER_DELETE
-} ClutterEventType;
-
-/**
- * ClutterScrollDirection:
- * @CLUTTER_SCROLL_UP: Scroll up
- * @CLUTTER_SCROLL_DOWN: Scroll down
- * @CLUTTER_SCROLL_LEFT: Scroll left
- * @CLUTTER_SCROLL_RIGHT: Scroll right
- *
- * Direction of a pointer scroll event.
- *
- * Since: 0.4
- */
-typedef enum { /*< prefix=CLUTTER_SCROLL >*/
-  CLUTTER_SCROLL_UP,
-  CLUTTER_SCROLL_DOWN,
-  CLUTTER_SCROLL_LEFT,
-  CLUTTER_SCROLL_RIGHT
-} ClutterScrollDirection;
-
-/**
- * ClutterStageState:
- * @CLUTTER_STAGE_STATE_FULLSCREEN: Fullscreen mask
- * @CLUTTER_STAGE_STATE_OFFSCREEN: Offscreen mask
- * @CLUTTER_STAGE_STATE_ACTIVATED: Activated mask
- *
- * Stage state masks
- *
- * Since: 0.4
- */
-typedef enum {
-  CLUTTER_STAGE_STATE_FULLSCREEN       = (1<<1),
-  CLUTTER_STAGE_STATE_OFFSCREEN        = (1<<2),
-  CLUTTER_STAGE_STATE_ACTIVATED        = (1<<3)
-} ClutterStageState;
-
 typedef struct _ClutterAnyEvent         ClutterAnyEvent;
 typedef struct _ClutterButtonEvent      ClutterButtonEvent;
 typedef struct _ClutterKeyEvent         ClutterKeyEvent;
diff --git a/clutter/clutter-feature.h b/clutter/clutter-feature.h
index 4b4ae9d..4242ce0 100644
--- a/clutter/clutter-feature.h
+++ b/clutter/clutter-feature.h
@@ -28,44 +28,10 @@
 #ifndef __CLUTTER_FEATURE_H__
 #define __CLUTTER_FEATURE_H__
 
-#include <glib.h>
+#include <clutter/clutter-types.h>
 
 G_BEGIN_DECLS
 
-/**
- * ClutterFeatureFlags:
- * @CLUTTER_FEATURE_TEXTURE_NPOT: Set if NPOTS textures supported.
- * @CLUTTER_FEATURE_SYNC_TO_VBLANK: Set if vblank syncing supported.
- * @CLUTTER_FEATURE_TEXTURE_YUV: Set if YUV based textures supported.
- * @CLUTTER_FEATURE_TEXTURE_READ_PIXELS: Set if texture pixels can be read.
- * @CLUTTER_FEATURE_STAGE_STATIC: Set if stage size if fixed (i.e framebuffer)
- * @CLUTTER_FEATURE_STAGE_USER_RESIZE: Set if stage is able to be user resized.
- * @CLUTTER_FEATURE_STAGE_CURSOR: Set if stage has a graphical cursor.
- * @CLUTTER_FEATURE_SHADERS_GLSL: Set if the backend supports GLSL shaders.
- * @CLUTTER_FEATURE_OFFSCREEN: Set if the backend supports offscreen rendering.
- * @CLUTTER_FEATURE_STAGE_MULTIPLE: Set if multiple stages are supported.
- * @CLUTTER_FEATURE_SWAP_EVENTS: Set if the GLX_INTEL_swap_event is supported.
- *
- * Runtime flags indicating specific features available via Clutter window
- * sysytem and graphics backend.
- *
- * Since: 0.4
- */
-typedef enum 
-{
-  CLUTTER_FEATURE_TEXTURE_NPOT           = (1 << 2),
-  CLUTTER_FEATURE_SYNC_TO_VBLANK         = (1 << 3),
-  CLUTTER_FEATURE_TEXTURE_YUV            = (1 << 4),
-  CLUTTER_FEATURE_TEXTURE_READ_PIXELS    = (1 << 5),
-  CLUTTER_FEATURE_STAGE_STATIC           = (1 << 6),
-  CLUTTER_FEATURE_STAGE_USER_RESIZE      = (1 << 7),
-  CLUTTER_FEATURE_STAGE_CURSOR           = (1 << 8),
-  CLUTTER_FEATURE_SHADERS_GLSL           = (1 << 9),
-  CLUTTER_FEATURE_OFFSCREEN              = (1 << 10),
-  CLUTTER_FEATURE_STAGE_MULTIPLE         = (1 << 11),
-  CLUTTER_FEATURE_SWAP_EVENTS            = (1 << 12)
-} ClutterFeatureFlags;
-
 gboolean            clutter_feature_available       (ClutterFeatureFlags feature);
 ClutterFeatureFlags clutter_feature_get_all         (void);
 
diff --git a/clutter/clutter-flow-layout.h b/clutter/clutter-flow-layout.h
index 5cbbcd3..abbf82c 100644
--- a/clutter/clutter-flow-layout.h
+++ b/clutter/clutter-flow-layout.h
@@ -45,23 +45,6 @@ typedef struct _ClutterFlowLayoutPrivate        ClutterFlowLayoutPrivate;
 typedef struct _ClutterFlowLayoutClass          ClutterFlowLayoutClass;
 
 /**
- * ClutterFlowOrientation:
- * @CLUTTER_FLOW_HORIZONTAL: Arrange the children of the flow layout
- *   horizontally first
- * @CLUTTER_FLOW_VERTICAL: Arrange the children of the flow layout
- *   vertically first
- *
- * The direction of the arrangement of the children inside
- * a #ClutterFlowLayout
- *
- * Since: 1.2
- */
-typedef enum { /*< prefix=CLUTTER_FLOW >*/
-  CLUTTER_FLOW_HORIZONTAL,
-  CLUTTER_FLOW_VERTICAL
-} ClutterFlowOrientation;
-
-/**
  * ClutterFlowLayout:
  *
  * The #ClutterFlowLayout structure contains only private data
diff --git a/clutter/clutter-input-device.h b/clutter/clutter-input-device.h
index 0128920..437a2cc 100644
--- a/clutter/clutter-input-device.h
+++ b/clutter/clutter-input-device.h
@@ -48,84 +48,6 @@ G_BEGIN_DECLS
 typedef struct _ClutterInputDevice      ClutterInputDevice;
 typedef struct _ClutterInputDeviceClass ClutterInputDeviceClass;
 
-/**
- * ClutterInputDeviceType:
- * @CLUTTER_POINTER_DEVICE: A pointer device
- * @CLUTTER_KEYBOARD_DEVICE: A keyboard device
- * @CLUTTER_EXTENSION_DEVICE: A generic extension device
- * @CLUTTER_JOYSTICK_DEVICE: A joystick device
- * @CLUTTER_TABLET_DEVICE: A tablet device
- * @CLUTTER_TOUCHPAD_DEVICE: A touchpad device
- * @CLUTTER_TOUCHSCREEN_DEVICE: A touch screen device
- * @CLUTTER_PEN_DEVICE: A pen device
- * @CLUTTER_ERASER_DEVICE: An eraser device
- * @CLUTTER_CURSOR_DEVICE: A cursor device
- * @CLUTTER_N_DEVICE_TYPES: The number of device types
- *
- * The types of input devices available.
- *
- * The #ClutterInputDeviceType enumeration can be extended at later
- * date; not every platform supports every input device type.
- *
- * Since: 1.0
- */
-typedef enum {
-  CLUTTER_POINTER_DEVICE,
-  CLUTTER_KEYBOARD_DEVICE,
-  CLUTTER_EXTENSION_DEVICE,
-  CLUTTER_JOYSTICK_DEVICE,
-  CLUTTER_TABLET_DEVICE,
-  CLUTTER_TOUCHPAD_DEVICE,
-  CLUTTER_TOUCHSCREEN_DEVICE,
-  CLUTTER_PEN_DEVICE,
-  CLUTTER_ERASER_DEVICE,
-  CLUTTER_CURSOR_DEVICE,
-
-  CLUTTER_N_DEVICE_TYPES
-} ClutterInputDeviceType;
-
-/**
- * ClutterInputMode:
- * @CLUTTER_INPUT_MODE_MASTER: A master, virtual device
- * @CLUTTER_INPUT_MODE_SLAVE: A slave, physical device, attached to
- *   a master device
- * @CLUTTER_INPUT_MODE_FLOATING: A slave, physical device, not attached
- *   to a master device
- *
- * The mode for input devices available.
- *
- * Since: 1.6
- */
-typedef enum {
-  CLUTTER_INPUT_MODE_MASTER,
-  CLUTTER_INPUT_MODE_SLAVE,
-  CLUTTER_INPUT_MODE_FLOATING
-} ClutterInputMode;
-
-/**
- * ClutterInputAxis:
- * @CLUTTER_INPUT_AXIS_IGNORE: Unused axis
- * @CLUTTER_INPUT_AXIS_X: The position on the X axis
- * @CLUTTER_INPUT_AXIS_Y: The position of the Y axis
- * @CLUTTER_INPUT_AXIS_PRESSURE: The pressure information
- * @CLUTTER_INPUT_AXIS_XTILT: The tilt on the X axis
- * @CLUTTER_INPUT_AXIS_YTILT: The tile on the Y axis
- * @CLUTTER_INPUT_AXIS_WHEEL: A wheel
- *
- * The type of axes Clutter recognizes on a #ClutterInputDevice
- *
- * Since: 1.6
- */
-typedef enum {
-  CLUTTER_INPUT_AXIS_IGNORE,
-  CLUTTER_INPUT_AXIS_X,
-  CLUTTER_INPUT_AXIS_Y,
-  CLUTTER_INPUT_AXIS_PRESSURE,
-  CLUTTER_INPUT_AXIS_XTILT,
-  CLUTTER_INPUT_AXIS_YTILT,
-  CLUTTER_INPUT_AXIS_WHEEL
-} ClutterInputAxis;
-
 GType clutter_input_device_get_type (void) G_GNUC_CONST;
 
 ClutterInputDeviceType  clutter_input_device_get_device_type    (ClutterInputDevice  *device);
diff --git a/clutter/clutter-path.h b/clutter/clutter-path.h
index 6d62512..cdc7206 100644
--- a/clutter/clutter-path.h
+++ b/clutter/clutter-path.h
@@ -41,39 +41,6 @@ G_BEGIN_DECLS
 #define CLUTTER_IS_PATH_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_PATH))
 #define CLUTTER_PATH_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_PATH, ClutterPathClass))
 
-#define CLUTTER_PATH_RELATIVE           (32)
-
-/**
- * ClutterPathNodeType:
- * @CLUTTER_PATH_MOVE_TO: jump to the given position
- * @CLUTTER_PATH_LINE_TO: create a line from the last node to the
- *   given position
- * @CLUTTER_PATH_CURVE_TO: bezier curve using the last position and
- *   three control points.
- * @CLUTTER_PATH_CLOSE: create a line from the last node to the last
- *   %CLUTTER_PATH_MOVE_TO node.
- * @CLUTTER_PATH_REL_MOVE_TO: same as %CLUTTER_PATH_MOVE_TO but with
- *   coordinates relative to the last node.
- * @CLUTTER_PATH_REL_LINE_TO: same as %CLUTTER_PATH_LINE_TO but with
- *   coordinates relative to the last node.
- * @CLUTTER_PATH_REL_CURVE_TO: same as %CLUTTER_PATH_CURVE_TO but with
- *   coordinates relative to the last node.
- *
- * Types of nodes in a #ClutterPath.
- *
- * Since: 1.0
- */
-typedef enum {
-  CLUTTER_PATH_MOVE_TO      = 0,
-  CLUTTER_PATH_LINE_TO      = 1,
-  CLUTTER_PATH_CURVE_TO     = 2,
-  CLUTTER_PATH_CLOSE        = 3,
-
-  CLUTTER_PATH_REL_MOVE_TO  = CLUTTER_PATH_MOVE_TO | CLUTTER_PATH_RELATIVE,
-  CLUTTER_PATH_REL_LINE_TO  = CLUTTER_PATH_LINE_TO | CLUTTER_PATH_RELATIVE,
-  CLUTTER_PATH_REL_CURVE_TO = CLUTTER_PATH_CURVE_TO | CLUTTER_PATH_RELATIVE
-} ClutterPathNodeType;
-
 typedef struct _ClutterPathClass   ClutterPathClass;
 typedef struct _ClutterPathPrivate ClutterPathPrivate;
 typedef struct _ClutterPathNode    ClutterPathNode;
diff --git a/clutter/clutter-snap-constraint.h b/clutter/clutter-snap-constraint.h
index b800f83..e27821e 100644
--- a/clutter/clutter-snap-constraint.h
+++ b/clutter/clutter-snap-constraint.h
@@ -48,24 +48,6 @@ G_BEGIN_DECLS
 typedef struct _ClutterSnapConstraint           ClutterSnapConstraint;
 typedef struct _ClutterSnapConstraintClass      ClutterSnapConstraintClass;
 
-/**
- * ClutterSnapEdge:
- * @CLUTTER_SNAP_EDGE_TOP: the top edge
- * @CLUTTER_SNAP_EDGE_RIGHT: the right edge
- * @CLUTTER_SNAP_EDGE_BOTTOM: the bottom edge
- * @CLUTTER_SNAP_EDGE_LEFT: the left edge
- *
- * The edge to snap
- *
- * Since: 1.6
- */
-typedef enum {
-  CLUTTER_SNAP_EDGE_TOP,
-  CLUTTER_SNAP_EDGE_RIGHT,
-  CLUTTER_SNAP_EDGE_BOTTOM,
-  CLUTTER_SNAP_EDGE_LEFT
-} ClutterSnapEdge;
-
 GType clutter_snap_constraint_get_type (void) G_GNUC_CONST;
 
 ClutterConstraint *     clutter_snap_constraint_new             (ClutterActor          *source,
diff --git a/clutter/clutter-stage.h b/clutter/clutter-stage.h
index cdd7797..029dbce 100644
--- a/clutter/clutter-stage.h
+++ b/clutter/clutter-stage.h
@@ -72,22 +72,6 @@ G_BEGIN_DECLS
 
 #endif /* !CLUTTER_DISABLE_DEPRECATED */
 
-/**
- * ClutterPickMode:
- * @CLUTTER_PICK_NONE: Do not paint any actor
- * @CLUTTER_PICK_REACTIVE: Paint only the reactive actors
- * @CLUTTER_PICK_ALL: Paint all actors
- *
- * Controls the paint cycle of the scene graph when in pick mode
- *
- * Since: 1.0
- */
-typedef enum {
-  CLUTTER_PICK_NONE = 0,
-  CLUTTER_PICK_REACTIVE,
-  CLUTTER_PICK_ALL
-} ClutterPickMode;
-
 typedef struct _ClutterPerspective  ClutterPerspective;
 typedef struct _ClutterFog          ClutterFog;
 
diff --git a/clutter/clutter-swipe-action.h b/clutter/clutter-swipe-action.h
index b32f211..087847d 100644
--- a/clutter/clutter-swipe-action.h
+++ b/clutter/clutter-swipe-action.h
@@ -49,24 +49,6 @@ 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_DIRECTION >*/
-  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
diff --git a/clutter/clutter-table-layout.h b/clutter/clutter-table-layout.h
index 145546d..99dc8e6 100644
--- a/clutter/clutter-table-layout.h
+++ b/clutter/clutter-table-layout.h
@@ -48,25 +48,6 @@ typedef struct _ClutterTableLayoutPrivate         ClutterTableLayoutPrivate;
 typedef struct _ClutterTableLayoutClass           ClutterTableLayoutClass;
 
 /**
- * ClutterTableAlignment:
- * @CLUTTER_TABLE_ALIGNMENT_START: Align the child to the top or to the
- *   left of a cell in the table, depending on the axis
- * @CLUTTER_TABLE_ALIGNMENT_CENTER: Align the child to the center of
- *   a cell in the table
- * @CLUTTER_TABLE_ALIGNMENT_END: Align the child to the bottom or to the
- *   right of a cell in the table, depending on the axis
- *
- * The alignment policies available on each axis of the #ClutterTableLayout
- *
- * Since: 1.4
- */
-typedef enum {
-  CLUTTER_TABLE_ALIGNMENT_START,
-  CLUTTER_TABLE_ALIGNMENT_CENTER,
-  CLUTTER_TABLE_ALIGNMENT_END
-} ClutterTableAlignment;
-
-/**
  * ClutterTableLayout:
  *
  * The #ClutterTableLayout structure contains only private data
diff --git a/clutter/clutter-texture.h b/clutter/clutter-texture.h
index 530e270..01b2ed6 100644
--- a/clutter/clutter-texture.h
+++ b/clutter/clutter-texture.h
@@ -121,46 +121,6 @@ struct _ClutterTextureClass
   void (*_clutter_texture5) (void);
 };
 
-/**
- * ClutterTextureFlags:
- * @CLUTTER_TEXTURE_NONE: No flags
- * @CLUTTER_TEXTURE_RGB_FLAG_BGR: FIXME
- * @CLUTTER_TEXTURE_RGB_FLAG_PREMULT: FIXME
- * @CLUTTER_TEXTURE_YUV_FLAG_YUV2: FIXME
- *
- * Flags for clutter_texture_set_from_rgb_data() and
- * clutter_texture_set_from_yuv_data().
- *
- * Since: 0.4
- */
-typedef enum { /*< prefix=CLUTTER_TEXTURE >*/
-  CLUTTER_TEXTURE_NONE             = 0,
-  CLUTTER_TEXTURE_RGB_FLAG_BGR     = 1 << 1,
-  CLUTTER_TEXTURE_RGB_FLAG_PREMULT = 1 << 2, /* FIXME: not handled */
-  CLUTTER_TEXTURE_YUV_FLAG_YUV2    = 1 << 3
-
-  /* FIXME: add compressed types ? */
-} ClutterTextureFlags;
-
-/**
- * ClutterTextureQuality:
- * @CLUTTER_TEXTURE_QUALITY_LOW: fastest rendering will use nearest neighbour
- *   interpolation when rendering. good setting.
- * @CLUTTER_TEXTURE_QUALITY_MEDIUM: higher quality rendering without using
- *   extra resources.
- * @CLUTTER_TEXTURE_QUALITY_HIGH: render the texture with the best quality
- *   available using extra memory.
- *
- * Enumaration controlling the texture quality.
- *
- * Since: 0.8
- */
-typedef enum { /*< prefix=CLUTTER_TEXTURE_QUALITY >*/
-  CLUTTER_TEXTURE_QUALITY_LOW,
-  CLUTTER_TEXTURE_QUALITY_MEDIUM,
-  CLUTTER_TEXTURE_QUALITY_HIGH
-} ClutterTextureQuality;
-
 GType clutter_texture_get_type (void) G_GNUC_CONST;
 
 ClutterActor *       clutter_texture_new                    (void);
diff --git a/clutter/clutter-timeline.h b/clutter/clutter-timeline.h
index ce28910..20f7725 100644
--- a/clutter/clutter-timeline.h
+++ b/clutter/clutter-timeline.h
@@ -28,7 +28,7 @@
 #ifndef __CLUTTER_TIMELINE_H__
 #define __CLUTTER_TIMELINE_H__
 
-#include <glib-object.h>
+#include <clutter/clutter-types.h>
 
 G_BEGIN_DECLS
 
@@ -39,20 +39,6 @@ G_BEGIN_DECLS
 #define CLUTTER_IS_TIMELINE_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_TIMELINE))
 #define CLUTTER_TIMELINE_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_TIMELINE, ClutterTimelineClass))
 
-/**
- * ClutterTimelineDirection:
- * @CLUTTER_TIMELINE_FORWARD: forward direction for a timeline
- * @CLUTTER_TIMELINE_BACKWARD: backward direction for a timeline
- *
- * The direction of a #ClutterTimeline
- *
- * Since: 0.6
- */
-typedef enum {
-  CLUTTER_TIMELINE_FORWARD,
-  CLUTTER_TIMELINE_BACKWARD
-} ClutterTimelineDirection;
-
 typedef struct _ClutterTimeline        ClutterTimeline;
 typedef struct _ClutterTimelineClass   ClutterTimelineClass; 
 typedef struct _ClutterTimelinePrivate ClutterTimelinePrivate;
diff --git a/clutter/clutter-types.h b/clutter/clutter-types.h
index 2df3766..75e24f4 100644
--- a/clutter/clutter-types.h
+++ b/clutter/clutter-types.h
@@ -28,7 +28,7 @@
 #ifndef __CLUTTER_TYPES_H__
 #define __CLUTTER_TYPES_H__
 
-#include <glib-object.h>
+#include <clutter/clutter-enums.h>
 
 G_BEGIN_DECLS
 
@@ -65,38 +65,6 @@ typedef struct _ClutterBehaviour        ClutterBehaviour;
 typedef struct _ClutterShader           ClutterShader;
 #endif /* DISABLE_DEPRECATED */
 
-/**
- * ClutterGravity:
- * @CLUTTER_GRAVITY_NONE: Do not apply any gravity
- * @CLUTTER_GRAVITY_NORTH: Scale from topmost downwards
- * @CLUTTER_GRAVITY_NORTH_EAST: Scale from the top right corner
- * @CLUTTER_GRAVITY_EAST: Scale from the right side
- * @CLUTTER_GRAVITY_SOUTH_EAST: Scale from the bottom right corner
- * @CLUTTER_GRAVITY_SOUTH: Scale from the bottom upwards
- * @CLUTTER_GRAVITY_SOUTH_WEST: Scale from the bottom left corner
- * @CLUTTER_GRAVITY_WEST: Scale from the left side
- * @CLUTTER_GRAVITY_NORTH_WEST: Scale from the top left corner
- * @CLUTTER_GRAVITY_CENTER: Scale from the center.
- *
- * Gravity of the scaling operations. When a gravity different than
- * %CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
- * of the specified portion at the same coordinates.
- *
- * Since: 0.2
- */
-typedef enum { /*< prefix=CLUTTER_GRAVITY >*/
-  CLUTTER_GRAVITY_NONE       = 0,
-  CLUTTER_GRAVITY_NORTH,
-  CLUTTER_GRAVITY_NORTH_EAST,
-  CLUTTER_GRAVITY_EAST,
-  CLUTTER_GRAVITY_SOUTH_EAST,
-  CLUTTER_GRAVITY_SOUTH,
-  CLUTTER_GRAVITY_SOUTH_WEST,
-  CLUTTER_GRAVITY_WEST,
-  CLUTTER_GRAVITY_NORTH_WEST,
-  CLUTTER_GRAVITY_CENTER
-} ClutterGravity;
-
 typedef struct _ClutterActorBox         ClutterActorBox;
 typedef struct _ClutterGeometry         ClutterGeometry;
 typedef struct _ClutterKnot             ClutterKnot;
@@ -253,226 +221,6 @@ void         clutter_knot_free     (ClutterKnot       *knot);
 gboolean     clutter_knot_equal    (const ClutterKnot *knot_a,
                                     const ClutterKnot *knot_b);
 
-/**
- * ClutterRotateAxis:
- * @CLUTTER_X_AXIS: Rotate around the X axis
- * @CLUTTER_Y_AXIS: Rotate around the Y axis
- * @CLUTTER_Z_AXIS: Rotate around the Z axis
- *
- * Axis of a rotation.
- *
- * Since: 0.4
- */
-typedef enum { /*< prefix=CLUTTER >*/
-  CLUTTER_X_AXIS,
-  CLUTTER_Y_AXIS,
-  CLUTTER_Z_AXIS
-} ClutterRotateAxis;
-
-/**
- * ClutterRotateDirection:
- * @CLUTTER_ROTATE_CW: Clockwise rotation
- * @CLUTTER_ROTATE_CCW: Counter-clockwise rotation
- *
- * Direction of a rotation.
- *
- * Since: 0.4
- */
-typedef enum { /*< prefix=CLUTTER_ROTATE >*/
-  CLUTTER_ROTATE_CW,
-  CLUTTER_ROTATE_CCW
-} ClutterRotateDirection;
-
-/**
- * ClutterRequestMode:
- * @CLUTTER_REQUEST_HEIGHT_FOR_WIDTH: Height for width requests
- * @CLUTTER_REQUEST_WIDTH_FOR_HEIGHT: Width for height requests
- *
- * Specifies the type of requests for a #ClutterActor.
- *
- * Since: 0.8
- */
-typedef enum {
-  CLUTTER_REQUEST_HEIGHT_FOR_WIDTH,
-  CLUTTER_REQUEST_WIDTH_FOR_HEIGHT
-} ClutterRequestMode;
-
-/**
- * ClutterAnimationMode:
- * @CLUTTER_CUSTOM_MODE: custom progress function
- * @CLUTTER_LINEAR: linear tweening
- * @CLUTTER_EASE_IN_QUAD: quadratic tweening
- * @CLUTTER_EASE_OUT_QUAD: quadratic tweening, inverse of
- *    %CLUTTER_EASE_IN_QUAD
- * @CLUTTER_EASE_IN_OUT_QUAD: quadratic tweening, combininig
- *    %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD
- * @CLUTTER_EASE_IN_CUBIC: cubic tweening
- * @CLUTTER_EASE_OUT_CUBIC: cubic tweening, invers of
- *    %CLUTTER_EASE_IN_CUBIC
- * @CLUTTER_EASE_IN_OUT_CUBIC: cubic tweening, combining
- *    %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC
- * @CLUTTER_EASE_IN_QUART: quartic tweening
- * @CLUTTER_EASE_OUT_QUART: quartic tweening, inverse of
- *    %CLUTTER_EASE_IN_QUART
- * @CLUTTER_EASE_IN_OUT_QUART: quartic tweening, combining
- *    %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART
- * @CLUTTER_EASE_IN_QUINT: quintic tweening
- * @CLUTTER_EASE_OUT_QUINT: quintic tweening, inverse of
- *    %CLUTTER_EASE_IN_QUINT
- * @CLUTTER_EASE_IN_OUT_QUINT: fifth power tweening, combining
- *    %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT
- * @CLUTTER_EASE_IN_SINE: sinusoidal tweening
- * @CLUTTER_EASE_OUT_SINE: sinusoidal tweening, inverse of
- *    %CLUTTER_EASE_IN_SINE
- * @CLUTTER_EASE_IN_OUT_SINE: sine wave tweening, combining
- *    %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE
- * @CLUTTER_EASE_IN_EXPO: exponential tweening
- * @CLUTTER_EASE_OUT_EXPO: exponential tweening, inverse of
- *    %CLUTTER_EASE_IN_EXPO
- * @CLUTTER_EASE_IN_OUT_EXPO: exponential tweening, combining
- *    %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO
- * @CLUTTER_EASE_IN_CIRC: circular tweening
- * @CLUTTER_EASE_OUT_CIRC: circular tweening, inverse of
- *    %CLUTTER_EASE_IN_CIRC
- * @CLUTTER_EASE_IN_OUT_CIRC: circular tweening, combining
- *    %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC
- * @CLUTTER_EASE_IN_ELASTIC: elastic tweening, with offshoot on start
- * @CLUTTER_EASE_OUT_ELASTIC: elastic tweening, with offshoot on end
- * @CLUTTER_EASE_IN_OUT_ELASTIC: elastic tweening with offshoot on both ends
- * @CLUTTER_EASE_IN_BACK: overshooting cubic tweening, with
- *   backtracking on start
- * @CLUTTER_EASE_OUT_BACK: overshooting cubic tweening, with
- *   backtracking on end
- * @CLUTTER_EASE_IN_OUT_BACK: overshooting cubic tweening, with
- *   backtracking on both ends
- * @CLUTTER_EASE_IN_BOUNCE: exponentially decaying parabolic (bounce)
- *   tweening, with bounce on start
- * @CLUTTER_EASE_OUT_BOUNCE: exponentially decaying parabolic (bounce)
- *   tweening, with bounce on end
- * @CLUTTER_EASE_IN_OUT_BOUNCE: exponentially decaying parabolic (bounce)
- *   tweening, with bounce on both ends
- * @CLUTTER_ANIMATION_LAST: last animation mode, used as a guard for
- *   registered global alpha functions
- *
- * The animation modes used by #ClutterAlpha and #ClutterAnimation. This
- * enumeration can be expanded in later versions of Clutter. See the
- * #ClutterAlpha documentation for a graph of all the animation modes.
- *
- * Every global alpha function registered using clutter_alpha_register_func()
- * or clutter_alpha_register_closure() will have a logical id greater than
- * %CLUTTER_ANIMATION_LAST.
- *
- * Since: 1.0
- */
-typedef enum {
-  CLUTTER_CUSTOM_MODE = 0,
-
-  /* linear */
-  CLUTTER_LINEAR,
-
-  /* quadratic */
-  CLUTTER_EASE_IN_QUAD,
-  CLUTTER_EASE_OUT_QUAD,
-  CLUTTER_EASE_IN_OUT_QUAD,
-
-  /* cubic */
-  CLUTTER_EASE_IN_CUBIC,
-  CLUTTER_EASE_OUT_CUBIC,
-  CLUTTER_EASE_IN_OUT_CUBIC,
-
-  /* quartic */
-  CLUTTER_EASE_IN_QUART,
-  CLUTTER_EASE_OUT_QUART,
-  CLUTTER_EASE_IN_OUT_QUART,
-
-  /* quintic */
-  CLUTTER_EASE_IN_QUINT,
-  CLUTTER_EASE_OUT_QUINT,
-  CLUTTER_EASE_IN_OUT_QUINT,
-
-  /* sinusoidal */
-  CLUTTER_EASE_IN_SINE,
-  CLUTTER_EASE_OUT_SINE,
-  CLUTTER_EASE_IN_OUT_SINE,
-
-  /* exponential */
-  CLUTTER_EASE_IN_EXPO,
-  CLUTTER_EASE_OUT_EXPO,
-  CLUTTER_EASE_IN_OUT_EXPO,
-
-  /* circular */
-  CLUTTER_EASE_IN_CIRC,
-  CLUTTER_EASE_OUT_CIRC,
-  CLUTTER_EASE_IN_OUT_CIRC,
-
-  /* elastic */
-  CLUTTER_EASE_IN_ELASTIC,
-  CLUTTER_EASE_OUT_ELASTIC,
-  CLUTTER_EASE_IN_OUT_ELASTIC,
-
-  /* overshooting cubic */
-  CLUTTER_EASE_IN_BACK,
-  CLUTTER_EASE_OUT_BACK,
-  CLUTTER_EASE_IN_OUT_BACK,
-
-  /* exponentially decaying parabolic */
-  CLUTTER_EASE_IN_BOUNCE,
-  CLUTTER_EASE_OUT_BOUNCE,
-  CLUTTER_EASE_IN_OUT_BOUNCE,
-
-  /* guard, before registered alpha functions */
-  CLUTTER_ANIMATION_LAST
-} ClutterAnimationMode;
-
-/**
- * ClutterFontFlags:
- * @CLUTTER_FONT_MIPMAPPING: Set to use mipmaps for the glyph cache textures.
- * @CLUTTER_FONT_HINTING: Set to enable hinting on the glyphs.
- *
- * Runtime flags to change the font quality. To be used with
- * clutter_set_font_flags().
- *
- * Since: 1.0
- *
- * Deprecated: 1.10: Use the #ClutterBackend and #cairo_font_options_t instead
- */
-typedef enum
-{
-  CLUTTER_FONT_MIPMAPPING = (1 << 0),
-  CLUTTER_FONT_HINTING    = (1 << 1)
-} ClutterFontFlags;
-
-/**
- * ClutterTextDirection:
- * @CLUTTER_TEXT_DIRECTION_DEFAULT: Use the default setting, as returned
- *   by clutter_get_default_text_direction()
- * @CLUTTER_TEXT_DIRECTION_LTR: Use left-to-right text direction
- * @CLUTTER_TEXT_DIRECTION_RTL: Use right-to-left text direction
- *
- * The text direction to be used by #ClutterActor<!-- -->s
- *
- * Since: 1.2
- */
-typedef enum {
-  CLUTTER_TEXT_DIRECTION_DEFAULT,
-  CLUTTER_TEXT_DIRECTION_LTR,
-  CLUTTER_TEXT_DIRECTION_RTL
-} ClutterTextDirection;
-
-/**
- * ClutterShaderType:
- * @CLUTTER_VERTEX_SHADER: a vertex shader
- * @CLUTTER_FRAGMENT_SHADER: a fragment shader
- *
- * The type of GLSL shader program
- *
- * Since: 1.4
- */
-typedef enum {
-  CLUTTER_VERTEX_SHADER,
-  CLUTTER_FRAGMENT_SHADER
-} ClutterShaderType;
-
 GType clutter_paint_volume_get_type (void) G_GNUC_CONST;
 
 ClutterPaintVolume *clutter_paint_volume_copy                (const ClutterPaintVolume *pv);
@@ -497,82 +245,6 @@ void                clutter_paint_volume_union               (ClutterPaintVolume
 gboolean            clutter_paint_volume_set_from_allocation (ClutterPaintVolume       *pv,
                                                               ClutterActor             *actor);
 
-/**
- * ClutterModifierType:
- * @CLUTTER_SHIFT_MASK: Mask applied by the Shift key
- * @CLUTTER_LOCK_MASK: Mask applied by the Caps Lock key
- * @CLUTTER_CONTROL_MASK: Mask applied by the Control key
- * @CLUTTER_MOD1_MASK: Mask applied by the first Mod key
- * @CLUTTER_MOD2_MASK: Mask applied by the second Mod key
- * @CLUTTER_MOD3_MASK: Mask applied by the third Mod key
- * @CLUTTER_MOD4_MASK: Mask applied by the fourth Mod key
- * @CLUTTER_MOD5_MASK: Mask applied by the fifth Mod key
- * @CLUTTER_BUTTON1_MASK: Mask applied by the first pointer button
- * @CLUTTER_BUTTON2_MASK: Mask applied by the second pointer button
- * @CLUTTER_BUTTON3_MASK: Mask applied by the third pointer button
- * @CLUTTER_BUTTON4_MASK: Mask applied by the fourth pointer button
- * @CLUTTER_BUTTON5_MASK: Mask applied by the fifth pointer button
- * @CLUTTER_SUPER_MASK: Mask applied by the Super key
- * @CLUTTER_HYPER_MASK: Mask applied by the Hyper key
- * @CLUTTER_META_MASK: Mask applied by the Meta key
- * @CLUTTER_RELEASE_MASK: Mask applied during release
- * @CLUTTER_MODIFIER_MASK: A mask covering all modifier types
- *
- * Masks applied to a #ClutterEvent by modifiers.
- *
- * Note that Clutter may add internal values to events which include
- * reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK.  Your code
- * should preserve and ignore them.  You can use %CLUTTER_MODIFIER_MASK to
- * remove all reserved values.
- *
- * Since: 0.4
- */
-typedef enum {
-  CLUTTER_SHIFT_MASK    = 1 << 0,
-  CLUTTER_LOCK_MASK     = 1 << 1,
-  CLUTTER_CONTROL_MASK  = 1 << 2,
-  CLUTTER_MOD1_MASK     = 1 << 3,
-  CLUTTER_MOD2_MASK     = 1 << 4,
-  CLUTTER_MOD3_MASK     = 1 << 5,
-  CLUTTER_MOD4_MASK     = 1 << 6,
-  CLUTTER_MOD5_MASK     = 1 << 7,
-  CLUTTER_BUTTON1_MASK  = 1 << 8,
-  CLUTTER_BUTTON2_MASK  = 1 << 9,
-  CLUTTER_BUTTON3_MASK  = 1 << 10,
-  CLUTTER_BUTTON4_MASK  = 1 << 11,
-  CLUTTER_BUTTON5_MASK  = 1 << 12,
-
-#ifndef __GTK_DOC_IGNORE__
-  CLUTTER_MODIFIER_RESERVED_13_MASK  = 1 << 13,
-  CLUTTER_MODIFIER_RESERVED_14_MASK  = 1 << 14,
-  CLUTTER_MODIFIER_RESERVED_15_MASK  = 1 << 15,
-  CLUTTER_MODIFIER_RESERVED_16_MASK  = 1 << 16,
-  CLUTTER_MODIFIER_RESERVED_17_MASK  = 1 << 17,
-  CLUTTER_MODIFIER_RESERVED_18_MASK  = 1 << 18,
-  CLUTTER_MODIFIER_RESERVED_19_MASK  = 1 << 19,
-  CLUTTER_MODIFIER_RESERVED_20_MASK  = 1 << 20,
-  CLUTTER_MODIFIER_RESERVED_21_MASK  = 1 << 21,
-  CLUTTER_MODIFIER_RESERVED_22_MASK  = 1 << 22,
-  CLUTTER_MODIFIER_RESERVED_23_MASK  = 1 << 23,
-  CLUTTER_MODIFIER_RESERVED_24_MASK  = 1 << 24,
-  CLUTTER_MODIFIER_RESERVED_25_MASK  = 1 << 25,
-#endif
-
-  CLUTTER_SUPER_MASK    = 1 << 26,
-  CLUTTER_HYPER_MASK    = 1 << 27,
-  CLUTTER_META_MASK     = 1 << 28,
-
-#ifndef __GTK_DOC_IGNORE__
-  CLUTTER_MODIFIER_RESERVED_29_MASK  = 1 << 29,
-#endif
-
-  CLUTTER_RELEASE_MASK  = 1 << 30,
-
-  /* Combination of CLUTTER_SHIFT_MASK..CLUTTER_BUTTON5_MASK + CLUTTER_SUPER_MASK
-     + CLUTTER_HYPER_MASK + CLUTTER_META_MASK + CLUTTER_RELEASE_MASK */
-  CLUTTER_MODIFIER_MASK = 0x5c001fff
-} ClutterModifierType;
-
 G_END_DECLS
 
 #endif /* __CLUTTER_TYPES_H__ */
diff --git a/clutter/clutter-units.h b/clutter/clutter-units.h
index 5563720..e50242b 100644
--- a/clutter/clutter-units.h
+++ b/clutter/clutter-units.h
@@ -38,28 +38,6 @@
 G_BEGIN_DECLS
 
 /**
- * ClutterUnitType:
- * @CLUTTER_UNIT_PIXEL: Unit expressed in pixels (with subpixel precision)
- * @CLUTTER_UNIT_EM: Unit expressed in em
- * @CLUTTER_UNIT_MM: Unit expressed in millimeters
- * @CLUTTER_UNIT_POINT: Unit expressed in points
- * @CLUTTER_UNIT_CM: Unit expressed in centimeters
- *
- * The type of unit in which a value is expressed
- *
- * This enumeration might be expanded at later date
- *
- * Since: 1.0
- */
-typedef enum {
-  CLUTTER_UNIT_PIXEL,
-  CLUTTER_UNIT_EM,
-  CLUTTER_UNIT_MM,
-  CLUTTER_UNIT_POINT,
-  CLUTTER_UNIT_CM
-} ClutterUnitType;
-
-/**
  * ClutterUnits:
  *
  * An opaque structure, to be used to store sizing and positioning
@@ -170,18 +148,18 @@ struct _ClutterParamSpecUnits
 
 GType clutter_param_units_get_type (void) G_GNUC_CONST;
 
-GParamSpec *                 clutter_param_spec_units (const gchar        *name,
-                                                       const gchar        *nick,
-                                                       const gchar        *blurb,
-                                                       ClutterUnitType     default_type,
-                                                       gfloat              minimum,
-                                                       gfloat              maximum,
-                                                       gfloat              default_value,
-                                                       GParamFlags         flags);
-
-void                    clutter_value_set_units (GValue             *value,
-                                                 const ClutterUnits *units);
-const ClutterUnits *    clutter_value_get_units (const GValue       *value);
+GParamSpec *            clutter_param_spec_units (const gchar        *name,
+                                                  const gchar        *nick,
+                                                  const gchar        *blurb,
+                                                  ClutterUnitType     default_type,
+                                                  gfloat              minimum,
+                                                  gfloat              maximum,
+                                                  gfloat              default_value,
+                                                  GParamFlags         flags);
+
+void                    clutter_value_set_units  (GValue             *value,
+                                                  const ClutterUnits *units);
+const ClutterUnits *    clutter_value_get_units  (const GValue       *value);
 
 G_END_DECLS
 
diff --git a/clutter/clutter.h b/clutter/clutter.h
index 05c36c9..7c5c85d 100644
--- a/clutter/clutter.h
+++ b/clutter/clutter.h
@@ -29,6 +29,7 @@
 #define __CLUTTER_H_INSIDE__
 
 #include "clutter-config.h"
+#include "clutter-types.h"
 
 #include "clutter-action.h"
 #include "clutter-actor.h"
@@ -60,6 +61,7 @@
 #include "clutter-drag-action.h"
 #include "clutter-drop-action.h"
 #include "clutter-effect.h"
+#include "clutter-enums.h"
 #include "clutter-event.h"
 #include "clutter-feature.h"
 #include "clutter-fixed-layout.h"
@@ -95,7 +97,6 @@
 #include "clutter-texture.h"
 #include "clutter-text.h"
 #include "clutter-timeline.h"
-#include "clutter-types.h"
 #include "clutter-units.h"
 #include "clutter-util.h"
 #include "clutter-version.h"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]