[cluttermm] Revert "Remove deprecated classes."



commit 889f1bb3bae679905928e15def26db5d93b6ff90
Author: Murray Cumming <murrayc murrayc com>
Date:   Sun Aug 21 00:19:48 2016 +0200

    Revert "Remove deprecated classes."
    
    This reverts commit cfbad9805da66912651fbca176e413696b4f7300.
    
    All these commits for cluttermm-2.0, to use clutter-2.0, are now in the
    clutterm-2.0 branch, because clutter-2.0 will probably never happen:
    https://blogs.gnome.org/clutter/2015/01/04/changes-in-the-layout-of-the-git-repository/

 clutter/cluttermm.h                              |   24 ++++-
 clutter/src/alpha.ccg                            |   75 +++++++++++++
 clutter/src/alpha.hg                             |   83 +++++++++++++++
 clutter/src/animation.ccg                        |   24 ++++
 clutter/src/animation.hg                         |   91 ++++++++++++++++
 clutter/src/animator.ccg                         |   24 ++++
 clutter/src/animator.hg                          |   85 +++++++++++++++
 clutter/src/behaviour-depth.ccg                  |   24 ++++
 clutter/src/behaviour-depth.hg                   |   54 ++++++++++
 clutter/src/behaviour-ellipse.ccg                |   34 ++++++
 clutter/src/behaviour-ellipse.hg                 |   81 ++++++++++++++
 clutter/src/behaviour-opacity.ccg                |   24 ++++
 clutter/src/behaviour-opacity.hg                 |   54 ++++++++++
 clutter/src/behaviour-path.ccg                   |   49 +++++++++
 clutter/src/behaviour-path.hg                    |   68 ++++++++++++
 clutter/src/behaviour-rotate.ccg                 |   24 ++++
 clutter/src/behaviour-rotate.hg                  |   69 ++++++++++++
 clutter/src/behaviour-scale.ccg                  |   24 ++++
 clutter/src/behaviour-scale.hg                   |   57 ++++++++++
 clutter/src/behaviour.ccg                        |   82 ++++++++++++++
 clutter/src/behaviour.hg                         |   89 ++++++++++++++++
 clutter/src/box.ccg                              |   46 ++++++++
 clutter/src/box.hg                               |   72 +++++++++++++
 clutter/src/cairo-texture.ccg                    |   34 ++++++
 clutter/src/cairo-texture.hg                     |   68 ++++++++++++
 clutter/src/filelist.am                          |   20 ++++
 clutter/src/group.ccg                            |   24 ++++
 clutter/src/group.hg                             |   70 ++++++++++++
 clutter/src/media.ccg                            |   24 ++++
 clutter/src/media.hg                             |   76 +++++++++++++
 clutter/src/rectangle.ccg                        |   38 +++++++
 clutter/src/rectangle.hg                         |   69 ++++++++++++
 clutter/src/score.ccg                            |   58 ++++++++++
 clutter/src/score.hg                             |   88 +++++++++++++++
 clutter/src/shader.ccg                           |   34 ++++++
 clutter/src/shader.hg                            |   80 ++++++++++++++
 clutter/src/texture.ccg                          |   31 ++++++
 clutter/src/texture.hg                           |  124 ++++++++++++++++++++++
 codegen/extradefs/generate_extra_defs_clutter.cc |   20 ++++
 configure.ac                                     |    6 +-
 examples/example-stage.cc                        |    2 +-
 41 files changed, 2116 insertions(+), 7 deletions(-)
---
diff --git a/clutter/cluttermm.h b/clutter/cluttermm.h
index 8478d33..664fdf2 100644
--- a/clutter/cluttermm.h
+++ b/clutter/cluttermm.h
@@ -25,7 +25,7 @@
  *
  * cluttermm is a C++ wrapper for <a href="http://www.clutter-project.org/";>Clutter</a>.
  * See Clutter::Stage and Clutter::Actor, for instance, and see the
- * <a href="http://www.openismus.com/documents/cluttermm_tutorial/2.0/docs/tutorial/html/";>Programming with 
cluttermm</a> tutorial.
+ * <a href="http://www.openismus.com/documents/cluttermm_tutorial/1.0/docs/tutorial/html/";>Programming with 
cluttermm</a> tutorial.
  *
  * @section basics Basic Usage
  *
@@ -37,12 +37,12 @@
  *
  * If your source file is @c program.cc, you can compile it with:
  * @code
- * g++ program.cc -o program `pkg-config --cflags --libs cluttermm-2.0`
+ * g++ program.cc -o program `pkg-config --cflags --libs cluttermm-1.0`
  * @endcode
  *
  * Alternatively, if using autoconf, use the following in @c configure.ac:
  * @code
- * PKG_CHECK_MODULES([CLUTTERMM], [cluttermm-2.0])
+ * PKG_CHECK_MODULES([CLUTTERMM], [cluttermm-1.0])
  * @endcode
  * Then use the generated @c CLUTTERMM_CFLAGS and @c CLUTTERMM_LIBS variables
  * in the project @c Makefile.am files. For example:
@@ -59,12 +59,24 @@
 #include <cluttermm/actor-box.h>
 #include <cluttermm/actor-meta.h>
 #include <cluttermm/align-constraint.h>
+#include <cluttermm/alpha.h>
 #include <cluttermm/animatable.h>
+#include <cluttermm/animation.h>
+#include <cluttermm/animator.h>
+#include <cluttermm/behaviour.h>
+#include <cluttermm/behaviour-depth.h>
+#include <cluttermm/behaviour-ellipse.h>
+#include <cluttermm/behaviour-opacity.h>
+#include <cluttermm/behaviour-path.h>
+#include <cluttermm/behaviour-rotate.h>
+#include <cluttermm/behaviour-scale.h>
 #include <cluttermm/bin-layout.h>
 #include <cluttermm/bind-constraint.h>
+#include <cluttermm/box.h>
 #include <cluttermm/box-layout.h>
 #include <cluttermm/blur-effect.h>
 #include <cluttermm/brightness-contrast-effect.h>
+#include <cluttermm/cairo-texture.h>
 #include <cluttermm/canvas.h>
 #include <cluttermm/childmeta.h>
 #include <cluttermm/clone.h>
@@ -81,6 +93,7 @@
 #include <cluttermm/flow-layout.h>
 #include <cluttermm/frame-source.h>
 #include <cluttermm/grid-layout.h>
+#include <cluttermm/group.h>
 #include <cluttermm/image.h>
 #include <cluttermm/init.h>
 #include <cluttermm/input-device.h>
@@ -89,6 +102,7 @@
 #include <cluttermm/layout-manager.h>
 #include <cluttermm/layoutmeta.h>
 #include <cluttermm/main.h>
+#include <cluttermm/media.h>
 #include <cluttermm/model.h>
 #include <cluttermm/model-iter.h>
 #include <cluttermm/offscreen-effect.h>
@@ -96,14 +110,18 @@
 #include <cluttermm/path.h>
 #include <cluttermm/path-constraint.h>
 #include <cluttermm/property-transition.h>
+#include <cluttermm/rectangle.h>
+#include <cluttermm/score.h>
 #include <cluttermm/script.h>
 #include <cluttermm/scroll-actor.h>
+#include <cluttermm/shader.h>
 #include <cluttermm/shader-effect.h>
 #include <cluttermm/size.h>
 #include <cluttermm/snap-constraint.h>
 #include <cluttermm/stage.h>
 #include <cluttermm/text.h>
 #include <cluttermm/text-buffer.h>
+#include <cluttermm/texture.h>
 #include <cluttermm/threads.h>
 #include <cluttermm/timeline.h>
 #include <cluttermm/transition.h>
diff --git a/clutter/src/alpha.ccg b/clutter/src/alpha.ccg
new file mode 100644
index 0000000..0066059
--- /dev/null
+++ b/clutter/src/alpha.ccg
@@ -0,0 +1,75 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace
+{
+
+static double SignalProxy_Alpha_callback(ClutterAlpha *alpha, gpointer user_data)
+{
+  double value = 0;
+  Clutter::Alpha::SlotAlphaFunc* the_slot = static_cast<Clutter::Alpha::SlotAlphaFunc*>(user_data);
+
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+#endif
+    Glib::RefPtr<Clutter::Alpha> cpp_alpha = Glib::wrap(alpha, true /* take reference */);
+    value = (*the_slot)(cpp_alpha);
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+#endif
+  return value;
+}
+
+static void SignalProxy_Alpha_callback_destroy(void* data)
+{
+  delete static_cast<Clutter::Alpha::SlotAlphaFunc*>(data);
+}
+
+} // anonymous namespace
+
+namespace Clutter
+{
+
+Alpha::Alpha(const Glib::RefPtr<Timeline>& timeline, const SlotAlphaFunc& slot)
+:
+  _CONSTRUCT()
+{
+  _INITIALLY_UNOWNED_SINK
+  set_timeline(timeline);
+  set_func(slot);
+}
+
+void Alpha::set_func(const SlotAlphaFunc& slot)
+{
+  //Create a copy of the slot. A pointer to this will be passed through the callback's data parameter.
+  //It will be deleted when SignalProxy_Alpha_callback_destroy() is called.
+  SlotAlphaFunc *const slot_copy = new SlotAlphaFunc(slot);
+
+  clutter_alpha_set_func(
+      gobj(),
+      &SignalProxy_Alpha_callback, slot_copy,
+      &SignalProxy_Alpha_callback_destroy);
+}
+
+} // namespace Clutter
diff --git a/clutter/src/alpha.hg b/clutter/src/alpha.hg
new file mode 100644
index 0000000..cab463f
--- /dev/null
+++ b/clutter/src/alpha.hg
@@ -0,0 +1,83 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cluttermm/timeline.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use the "progress-mode" property of Clutter::Timeline, or the 
+ * Clutter::Timeline::set_progress_func() method instead.
+ */
+class Alpha : public Glib::Object
+{
+  _CLASS_GOBJECT(Alpha, ClutterAlpha, CLUTTER_ALPHA, Glib::Object, GObject)
+  _DERIVES_INITIALLY_UNOWNED()
+  _IS_DEPRECATED
+
+public:
+  /** For instance,
+   * double on_alpha(const Glib::RefPtr<Alpha>& alpha);
+   */
+  typedef sigc::slot<double, const Glib::RefPtr<Alpha>&> SlotAlphaFunc;
+
+protected:
+  _CTOR_DEFAULT()
+  _WRAP_CTOR(Alpha(const Glib::RefPtr<Timeline>& timeline, gulong mode), clutter_alpha_new_full)
+
+  /** Creates a new Alpha instance and sets the timeline and the alpha function.
+   * @param timeline Timeline.
+   * @param slot Alpha function.
+   */
+  Alpha(const Glib::RefPtr<Timeline>& timeline, const SlotAlphaFunc& slot);
+
+public:
+  enum { MAX_ALPHA = 0xFFFF };
+
+  _WRAP_CREATE()
+  _WRAP_CREATE(const Glib::RefPtr<Timeline>& timeline, const SlotAlphaFunc& slot)
+  _WRAP_CREATE(const Glib::RefPtr<Timeline>& timeline, gulong mode)
+
+  _WRAP_METHOD(void set_timeline(const Glib::RefPtr<Timeline>& timeline), clutter_alpha_set_timeline)
+  _WRAP_METHOD(Glib::RefPtr<Timeline> get_timeline(), clutter_alpha_get_timeline, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Timeline> get_timeline() const, clutter_alpha_get_timeline, refreturn, 
constversion)
+  _WRAP_METHOD(double get_alpha() const, clutter_alpha_get_alpha)
+
+  _IGNORE(clutter_alpha_set_func)
+  void set_func(const SlotAlphaFunc& slot);
+
+  //TODO: Special methods that take AnimationMode?
+  _WRAP_METHOD(void set_mode(gulong mode), clutter_alpha_set_mode)
+  _WRAP_METHOD(gulong get_mode() const, clutter_alpha_get_mode)
+
+  _WRAP_PROPERTY("alpha", double)
+  _WRAP_PROPERTY("timeline", Glib::RefPtr<Timeline>)
+
+  // We don't need the GClosure stuff in C++:
+  _IGNORE(clutter_alpha_set_closure)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/animation.ccg b/clutter/src/animation.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/animation.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/animation.hg b/clutter/src/animation.hg
new file mode 100644
index 0000000..4abe71d
--- /dev/null
+++ b/clutter/src/animation.hg
@@ -0,0 +1,91 @@
+/* Copyright (C) 2009 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cluttermm/alpha.h>
+#include <cluttermm/actor.h>
+#include <cluttermm/interval.h>
+#include <cluttermm/timeline.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use PropertyTransition instead.
+ */
+class Animation : public Glib::Object
+{
+  _CLASS_GOBJECT(Animation, ClutterAnimation, CLUTTER_ANIMATION, Glib::Object, GObject)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  _WRAP_CREATE()
+
+  _WRAP_METHOD(void set_object(const Glib::RefPtr<Glib::Object>& object), clutter_animation_set_object, 
deprecated "Use PropertyTransition instead.")
+  _WRAP_METHOD(Glib::RefPtr<Glib::Object> get_object(), clutter_animation_get_objec, deprecated "Use 
PropertyTransition instead.")
+  _WRAP_METHOD(Glib::RefPtr<const Glib::Object> get_object() const, clutter_animation_get_object, deprecated 
"Use PropertyTransition instead.")
+  _WRAP_METHOD(void set_mode(gulong mode), clutter_animation_set_mode, deprecated "Use PropertyTransition 
instead.")
+  _WRAP_METHOD(gulong get_mode() const, clutter_animation_get_mode, deprecated "Use PropertyTransition 
instead.")
+
+  _WRAP_METHOD(void set_duration(guint msecs), clutter_animation_set_duration, deprecated "Use 
PropertyTransition instead.")
+  _WRAP_METHOD(guint get_duration() const, clutter_animation_get_duration, deprecated "Use 
PropertyTransition instead.")
+
+  _WRAP_METHOD(void set_loop(bool loop = true), clutter_animation_set_loop, deprecated "Use 
PropertyTransition instead.")
+  _WRAP_METHOD(bool get_loop() const, clutter_animation_get_loop, deprecated "Use PropertyTransition 
instead.")
+  _WRAP_METHOD(void set_timeline(const Glib::RefPtr<Timeline>& timeline), clutter_animation_set_timeline, 
deprecated "Use PropertyTransition instead.")
+  _WRAP_METHOD(Glib::RefPtr<Timeline> get_timeline() const, clutter_animation_get_timeline, deprecated "Use 
PropertyTransition instead.")
+  _WRAP_METHOD(void set_alpha(const Glib::RefPtr<Alpha>& alpha), clutter_animation_set_alpha, deprecated 
"Use get_timeline() and set_progress_mode() instead.")
+  _WRAP_METHOD(Glib::RefPtr<Alpha> get_alpha() const, clutter_animation_get_alpha, deprecated "Use 
get_timeline() and set_progress_mode() instead.")
+  _WRAP_METHOD(void completed(), clutter_animation_completed, deprecated "Use PropertyTransition instead.")
+  _WRAP_METHOD(Glib::RefPtr<Animation> bind(const std::string& property_name, const Glib::ValueBase& final), 
clutter_animation_bind, deprecated "Use PropertyTransition instead.")
+   //TODO: Add templated bind().
+
+  _WRAP_METHOD(void bind_interval(const std::string& property_name, const Glib::RefPtr<Interval>& interval), 
clutter_animation_bind_interval, deprecated "Use PropertyTransition instead.")
+  _WRAP_METHOD(void update_interval(const std::string& property_name, const Glib::RefPtr<Interval>& 
interval), clutter_animation_update_interval, deprecated "Use PropertyTransition instead.")
+  _WRAP_METHOD(bool has_property(const std::string& property_name) const, clutter_animation_has_property, 
deprecated "Use PropertyTransition instead.")
+
+  _WRAP_METHOD(Glib::RefPtr<Animation> update(const std::string& property_name, const Glib::ValueBase& 
final), clutter_animation_update, deprecated "Use PropertyTransition instead.")
+  //TODO: Add templated update().
+
+  _WRAP_METHOD(void unbind_property(const std::string& property_name), clutter_animation_unbind_property, 
deprecated "Use PropertyTransition instead.")
+
+  //This needs at least a comment about the constness, though this is deprecated anyway.
+  _WRAP_METHOD(Glib::RefPtr<Interval> get_interval(const std::string& property_name) const, 
clutter_animation_get_interval, deprecated "Use PropertyTransition instead.")
+
+  _WRAP_SIGNAL(void started(), "started", deprecated "Use PropertyTransition instead.")
+  _WRAP_SIGNAL(void completed(), "completed", deprecated "Use PropertyTransition instead.")
+
+  _WRAP_PROPERTY("object", Glib::RefPtr<Glib::Object>)
+  _WRAP_PROPERTY("mode", gulong)
+  _WRAP_PROPERTY("duration", guint)
+  _WRAP_PROPERTY("loop", bool)
+  _WRAP_PROPERTY("timeline", Glib::RefPtr<Timeline>)
+  _WRAP_PROPERTY("alpha", Glib::RefPtr<Alpha>)
+
+};
+
+} // namespace Clutter
diff --git a/clutter/src/animator.ccg b/clutter/src/animator.ccg
new file mode 100644
index 0000000..b01d605
--- /dev/null
+++ b/clutter/src/animator.ccg
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2011  The cluttermm Development Team
+ *
+ * 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/>.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} // namespace Clutter
+
diff --git a/clutter/src/animator.hg b/clutter/src/animator.hg
new file mode 100644
index 0000000..b4e5eb9
--- /dev/null
+++ b/clutter/src/animator.hg
@@ -0,0 +1,85 @@
+/* Copyright (C) 2011 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cluttermm/scriptable.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+_WRAP_ENUM(Interpolation, ClutterInterpolation)
+
+class Timeline;
+
+/**
+ * @deprecated Use KeyframeTransition instead.
+ */
+class Animator : public Glib::Object
+{
+  _CLASS_GOBJECT(Animator, ClutterAnimator, CLUTTER_ANIMATOR, Glib::Object, GObject)
+  _IMPLEMENTS_INTERFACE(Scriptable)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  _WRAP_CREATE()
+
+  _IGNORE(clutter_animator_set)
+  _WRAP_METHOD(Glib::RefPtr<Animator> set_key(const Glib::RefPtr<Glib::Object>& object, const Glib::ustring& 
property_name, guint mode, double progress, const Glib::ValueBase& value), clutter_animator_set_key, 
refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Animator> set_key(const Glib::RefPtr<Glib::Object>& object, const 
Glib::ustring& property_name, guint mode, double progress, const Glib::ValueBase& value) const, 
clutter_animator_set_key, refreturn, constversion)
+  _WRAP_METHOD(void remove_key(const Glib::RefPtr<Glib::Object>& object, const Glib::ustring& property_name, 
double progress), clutter_animator_remove_key)
+  // TODO: _WRAP_METHOD(std::vector<Glib::RefPtr<Animator> > get_keys(const Glib::RefPtr<Glib::Object>& 
object, const std::string &property_name, double progress), clutter_animator_get_keys)
+  _IGNORE(clutter_animator_get_keys)
+  _WRAP_METHOD(Glib::RefPtr<Timeline> start(), clutter_animator_start, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Timeline> start() const, clutter_animator_start, refreturn, constversion)
+  _WRAP_METHOD(bool compute_value(const Glib::RefPtr<Glib::Object>& object, const Glib::ustring& 
property_name, double progress, Glib::ValueBase& value), clutter_animator_compute_value)
+
+  _WRAP_METHOD(void set_timeline(const Glib::RefPtr<Timeline>& timeline), clutter_animator_set_timeline)
+  _WRAP_METHOD(Glib::RefPtr<Timeline> get_timeline(), clutter_animator_get_timeline, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Timeline> get_timeline() const, clutter_animator_get_timeline, refreturn, 
constversion)
+  _WRAP_METHOD(void set_duration(guint duration), clutter_animator_set_duration)
+  _WRAP_METHOD(guint get_duration() const, clutter_animator_get_duration)
+
+  _WRAP_METHOD(void property_set_ease_in(const Glib::RefPtr<Glib::Object>& object, const Glib::ustring& 
property_name, bool ease_in), clutter_animator_property_set_ease_in)
+  _WRAP_METHOD(bool property_get_ease_in(const Glib::RefPtr<Glib::Object>& object, const Glib::ustring& 
property_name), clutter_animator_property_get_ease_in)
+
+  _WRAP_METHOD(void property_set_interpolation(const Glib::RefPtr<Glib::Object>& object, const 
Glib::ustring& property_name, Interpolation interpolation), clutter_animator_property_set_interpolation)
+  _WRAP_METHOD(Interpolation property_get_interpolation(const Glib::RefPtr<Glib::Object>& object, const 
Glib::ustring& property_name), clutter_animator_property_get_interpolation)
+
+  // TODO: Decide if these are needed.
+  // _WRAP_METHOD(Glib::RefPtr<Glib::Object> get_object() const, clutter_animator_key_get_objec)
+  // _WRAP_METHOD(Glib::ustring get_property_name() const, clutter_animator_key_get_property_name)
+  // _WRAP_METHOD(GType get_property_type() const, clutter_animator_key_get_property_type)
+  // _WRAP_METHOD(gulong get_mode() const, clutter_animator_key_get_mod)
+  // _WRAP_METHOD(double get_progress() const , clutter_animator_key_get_progres)
+  // _WRAP_METHOD(bool get_value(GValue *value) const, clutter_animator_key_get_value)
+
+  _WRAP_PROPERTY("duration", guint)
+  _WRAP_PROPERTY("timeline", Glib::RefPtr<Timeline>)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-depth.ccg b/clutter/src/behaviour-depth.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/behaviour-depth.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/behaviour-depth.hg b/clutter/src/behaviour-depth.hg
new file mode 100644
index 0000000..1d84dab
--- /dev/null
+++ b/clutter/src/behaviour-depth.hg
@@ -0,0 +1,54 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/behaviour.h>
+#include <cluttermm/alpha.h>
+ 
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Actor::animate() with the Actor's depth
+ * property instead.
+ */
+class BehaviourDepth : public Behaviour
+{
+  _CLASS_GOBJECT(BehaviourDepth, ClutterBehaviourDepth, CLUTTER_BEHAVIOUR_DEPTH, Behaviour, ClutterBehaviour)
+  _IS_DEPRECATED
+
+protected:
+  _WRAP_CTOR(BehaviourDepth(const Glib::RefPtr<Alpha>& alpha, int depth_start, int depth_end), 
clutter_behaviour_depth_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, int start_depth, int end_depth)
+
+  _WRAP_METHOD(void set_bounds(int depth_start, int depth_end), clutter_behaviour_depth_set_bounds)
+  _WRAP_METHOD(void get_bounds(int& depth_start, int& depth_end), clutter_behaviour_depth_get_bounds)
+
+  _WRAP_PROPERTY("depth-end", int)
+  _WRAP_PROPERTY("depth-start", int)
+
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-ellipse.ccg b/clutter/src/behaviour-ellipse.ccg
new file mode 100644
index 0000000..c7f53a7
--- /dev/null
+++ b/clutter/src/behaviour-ellipse.ccg
@@ -0,0 +1,34 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+BehaviourEllipse::BehaviourEllipse(const Glib::RefPtr<Alpha>& alpha, int x, int y, int width, int height, 
RotateDirection direction, double angle_start, double angle_end)
+:
+  // Mark this class as non-derived to allow C++ vfuncs to be skipped.
+  Glib::ObjectBase(0),
+  Behaviour(Glib::ConstructParams(behaviourellipse_class_.init(), "alpha", Glib::unwrap(alpha), /* "center", 
ClutterKnot(x, y), */ "width", width, "height", height, "direction", ((ClutterRotateDirection)(direction)), 
"angle-start", angle_start, "angle-end", angle_end, static_cast<char*>(0)))
+{
+  //Hopefully it's OK to set this later:
+  Knot knot(x, y);
+  property_center() = knot;
+}
+
+} //namespace Clutter
diff --git a/clutter/src/behaviour-ellipse.hg b/clutter/src/behaviour-ellipse.hg
new file mode 100644
index 0000000..3fa1317
--- /dev/null
+++ b/clutter/src/behaviour-ellipse.hg
@@ -0,0 +1,81 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/behaviour.h>
+#include <cluttermm/alpha.h>
+#include <cluttermm/types.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Behaviour and its sub-classes have been deprecated since Clutter
+ * 1.6, in favour of the animation framework API.
+ */
+class BehaviourEllipse : public Behaviour
+{
+  _CLASS_GOBJECT(BehaviourEllipse, ClutterBehaviourEllipse, CLUTTER_BEHAVIOUR_ELLIPSE, Behaviour, 
ClutterBehaviour)
+  _IS_DEPRECATED
+
+protected:
+  //Hand-coded because x and y must be combined into one ClutterKnot center parameter.
+  BehaviourEllipse(const Glib::RefPtr<Alpha>& alpha, int x, int y, int width, int height, RotateDirection 
direction, double angle_start, double angle_end);
+  _IGNORE(clutter_behaviour_ellipse_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, int x, int y, int width, int height, RotateDirection 
direction, double begin, double end)
+
+  _WRAP_METHOD(void set_center(int x, int y), clutter_behaviour_ellipse_set_center)
+  _WRAP_METHOD(void get_center(int& x, int& y) const, clutter_behaviour_ellipse_get_center)
+
+  _WRAP_METHOD(void set_height(int height), clutter_behaviour_ellipse_set_height)
+  _WRAP_METHOD(int get_height() const, clutter_behaviour_ellipse_get_height)
+  _WRAP_METHOD(void set_width(int width), clutter_behaviour_ellipse_set_width)
+  _WRAP_METHOD(int get_width() const, clutter_behaviour_ellipse_get_width)
+
+  _WRAP_METHOD(void set_angle_start(double angle_start), clutter_behaviour_ellipse_set_angle_start)
+  _WRAP_METHOD(double get_angle_start() const, clutter_behaviour_ellipse_get_angle_start)
+  _WRAP_METHOD(void set_angle_end(double angle_end), clutter_behaviour_ellipse_set_angle_end)
+  _WRAP_METHOD(double get_angle_end() const, clutter_behaviour_ellipse_get_angle_end)
+  _WRAP_METHOD(void set_angle_tilt(RotateAxis axis, double angle_tilt), 
clutter_behaviour_ellipse_set_angle_tilt)
+  _WRAP_METHOD(double get_angle_tilt(RotateAxis axis) const, clutter_behaviour_ellipse_get_angle_tilt)
+
+  _WRAP_METHOD(void set_tilt(double angle_tilt_x, double angle_tilt_y, double angle_tilt_z), 
clutter_behaviour_ellipse_set_tilt)
+  _WRAP_METHOD(void get_tilt(double& angle_tilt_x, double& angle_tilt_y, double& angle_tilt_z) const, 
clutter_behaviour_ellipse_get_tilt)
+
+  _WRAP_METHOD(void set_direction(RotateDirection direction), clutter_behaviour_ellipse_set_direction)
+  _WRAP_METHOD(RotateDirection get_direction() const, clutter_behaviour_ellipse_get_direction)
+
+  _WRAP_PROPERTY("angle-end", double)
+  _WRAP_PROPERTY("angle-start", double)
+  _WRAP_PROPERTY("angle-tilt-x", double)
+  _WRAP_PROPERTY("angle-tilt-y", double)
+  _WRAP_PROPERTY("angle-tilt-z", double)
+  _WRAP_PROPERTY("center", Knot)
+  _WRAP_PROPERTY("direction", RotateDirection)
+  _WRAP_PROPERTY("height", int)
+  _WRAP_PROPERTY("width", int)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-opacity.ccg b/clutter/src/behaviour-opacity.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/behaviour-opacity.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/behaviour-opacity.hg b/clutter/src/behaviour-opacity.hg
new file mode 100644
index 0000000..d953c97
--- /dev/null
+++ b/clutter/src/behaviour-opacity.hg
@@ -0,0 +1,54 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cluttermm/behaviour.h>
+#include <cluttermm/alpha.h>
+ 
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Actor::animate() with the Actor's opacity property,
+ * or Animator, or State instead.
+ */
+class BehaviourOpacity : public Behaviour
+{
+  _CLASS_GOBJECT(BehaviourOpacity, ClutterBehaviourOpacity, CLUTTER_BEHAVIOUR_OPACITY, Behaviour, 
ClutterBehaviour)
+  _IS_DEPRECATED
+
+protected:
+  _WRAP_CTOR(BehaviourOpacity(const Glib::RefPtr<Alpha>& alpha, guint8 opacity_start, guint8 opacity_end), 
clutter_behaviour_opacity_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, guint8 opacity_start, guint8 opacity_end)
+
+  _WRAP_METHOD(void set_bounds(guint8 opacity_start, guint8 opacity_end), 
clutter_behaviour_opacity_set_bounds)
+  _WRAP_METHOD(void get_bounds(guint8& opacity_start, guint8& opacity_end) const, 
clutter_behaviour_opacity_get_bounds)
+
+  _WRAP_PROPERTY("opacity-end", guint)
+  _WRAP_PROPERTY("opacity-start", guint)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-path.ccg b/clutter/src/behaviour-path.ccg
new file mode 100644
index 0000000..2f669fe
--- /dev/null
+++ b/clutter/src/behaviour-path.ccg
@@ -0,0 +1,49 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+// static
+Glib::RefPtr<BehaviourPath> BehaviourPath::create_with_knots(const Glib::RefPtr<Alpha>& alpha,
+                                                             const std::vector<Knot>& knots)
+{
+  const Glib::RefPtr<Path> path = Path::create();
+  const Knot* data  = knots.data();
+  const int n_knots = knots.size();
+
+  if (n_knots > 0)
+  {
+    clutter_path_add_move_to(path->gobj(), data[0].gobj()->x, data[0].gobj()->y);
+
+    for (int i = 1; i < n_knots; ++i)
+      clutter_path_add_line_to(path->gobj(), data[i].gobj()->x, data[i].gobj()->y);
+  }
+
+  return Glib::RefPtr<BehaviourPath>(new BehaviourPath(alpha, path));
+}
+
+// static
+Glib::RefPtr<BehaviourPath> create_with_description(const Glib::RefPtr<Alpha>& alpha,
+                                                    const Glib::ustring& description)
+{
+  return BehaviourPath::create(alpha, Path::create(description));
+}
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-path.hg b/clutter/src/behaviour-path.hg
new file mode 100644
index 0000000..5ac8ae3
--- /dev/null
+++ b/clutter/src/behaviour-path.hg
@@ -0,0 +1,68 @@
+
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/behaviour.h>
+#include <cluttermm/scriptable.h>
+#include <cluttermm/alpha.h>
+#include <cluttermm/path.h>
+#include <cluttermm/types.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Path and PathConstraint with Actor::animate() instead.
+ */
+class BehaviourPath
+: public Behaviour,
+  public Scriptable
+{
+  _CLASS_GOBJECT(BehaviourPath, ClutterBehaviourPath, CLUTTER_BEHAVIOUR_PATH, Behaviour, ClutterBehaviour)
+  _IS_DEPRECATED
+  _IMPLEMENTS_INTERFACE(Scriptable)
+
+protected:
+  _WRAP_CTOR(BehaviourPath(const Glib::RefPtr<Alpha>& alpha, const Glib::RefPtr<Path>& path),
+             clutter_behaviour_path_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, const Glib::RefPtr<Path>& path)
+  _IGNORE(clutter_behaviour_path_new_with_knots,
+          clutter_behaviour_path_new_with_description)
+  static Glib::RefPtr<BehaviourPath> create_with_knots(const Glib::RefPtr<Alpha>& alpha,
+                                                       const std::vector<Knot>& knots);
+  static Glib::RefPtr<BehaviourPath> create_with_description(const Glib::RefPtr<Alpha>& alpha,
+                                                             const Glib::ustring& description);
+
+  _WRAP_METHOD(void set_path(const Glib::RefPtr<Path>& path), clutter_behaviour_path_set_path)
+  _WRAP_METHOD(Glib::RefPtr<Path> get_path(), clutter_behaviour_path_get_path, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Path> get_path() const, clutter_behaviour_path_get_path, refreturn, 
constversion)
+
+  _WRAP_PROPERTY("path", Glib::RefPtr<Path>)
+
+  _WRAP_SIGNAL(void knot_reached(guint knot_num), "knot_reached")
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-rotate.ccg b/clutter/src/behaviour-rotate.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/behaviour-rotate.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/behaviour-rotate.hg b/clutter/src/behaviour-rotate.hg
new file mode 100644
index 0000000..fdc454e
--- /dev/null
+++ b/clutter/src/behaviour-rotate.hg
@@ -0,0 +1,69 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/behaviour.h>
+#include <cluttermm/alpha.h>
+#include <cluttermm/types.h>
+ 
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use the Actor rotation properties and
+ * Actor::animate(), or Animator, or State
+ * instead.
+ */
+class BehaviourRotate : public Behaviour
+{
+  _CLASS_GOBJECT(BehaviourRotate, ClutterBehaviourRotate, CLUTTER_BEHAVIOUR_ROTATE, Behaviour, 
ClutterBehaviour)
+  _IS_DEPRECATED
+
+protected:
+  _WRAP_CTOR(BehaviourRotate(const Glib::RefPtr<Alpha>& alpha, RotateAxis axis, RotateDirection direction, 
double angle_begin, double angle_end), clutter_behaviour_rotate_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, RotateAxis axis, RotateDirection direction, double 
angle_begin, double angle_end)
+
+  _WRAP_METHOD(void set_axis(RotateAxis axis), clutter_behaviour_rotate_set_axis)
+  _WRAP_METHOD(RotateAxis get_axis() const, clutter_behaviour_rotate_get_axis)
+
+  _WRAP_METHOD(void set_direction(RotateDirection direction), clutter_behaviour_rotate_set_direction)
+  _WRAP_METHOD(RotateDirection get_direction() const, clutter_behaviour_rotate_get_direction)
+
+  _WRAP_METHOD(void set_center(int x, int y, int z), clutter_behaviour_rotate_set_center)
+  _WRAP_METHOD(void get_center(int& x, int& y, int& z) const, clutter_behaviour_rotate_get_center)
+
+  _WRAP_METHOD(void set_bounds(double angle_begin, double angle_end), clutter_behaviour_rotate_set_bounds)
+  _WRAP_METHOD(void get_bounds(double& angle_begin, double& angle_end) const, 
clutter_behaviour_rotate_get_bounds)
+
+  _WRAP_PROPERTY("angle-end", double)
+  _WRAP_PROPERTY("angle-start", double)
+  _WRAP_PROPERTY("axis", RotateAxis)
+  _WRAP_PROPERTY("center-x", int)
+  _WRAP_PROPERTY("center-y", int)
+  _WRAP_PROPERTY("center-z", int)
+  _WRAP_PROPERTY("direction", RotateDirection)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour-scale.ccg b/clutter/src/behaviour-scale.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/behaviour-scale.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/behaviour-scale.hg b/clutter/src/behaviour-scale.hg
new file mode 100644
index 0000000..1adf1d5
--- /dev/null
+++ b/clutter/src/behaviour-scale.hg
@@ -0,0 +1,57 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/behaviour.h>
+#include <cluttermm/alpha.h>
+#include <cluttermm/types.h>
+ 
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/behaviour_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use the Actor's scale-x and scale-y  properties, with Actor::animate(),
+ * or Animator or State instead.
+ */
+class BehaviourScale : public Behaviour
+{
+  _CLASS_GOBJECT(BehaviourScale, ClutterBehaviourScale, CLUTTER_BEHAVIOUR_SCALE, Behaviour, ClutterBehaviour)
+  _IS_DEPRECATED
+
+protected:
+  _WRAP_CTOR(BehaviourScale(const Glib::RefPtr<Alpha>& alpha, double x_scale_start, double y_scale_start, 
double x_scale_end, double y_scale_end), clutter_behaviour_scale_new)
+
+public:
+  _WRAP_CREATE(const Glib::RefPtr<Alpha>& alpha, double x_scale_start, double y_scale_start, double 
x_scale_end, double y_scale_end)
+
+  _WRAP_METHOD(void set_bounds(double x_scale_start, double y_scale_start, double x_scale_end, double 
y_scale_end), clutter_behaviour_scale_set_bounds)
+  _WRAP_METHOD(void get_bounds(double& x_scale_start, double& y_scale_start, double& x_scale_end, double& 
y_scale_end) const, clutter_behaviour_scale_get_bounds)
+
+  _WRAP_PROPERTY("x-scale-start", double)
+  _WRAP_PROPERTY("x-scale-end", double)
+  _WRAP_PROPERTY("y-scale-start", double)
+  _WRAP_PROPERTY("y-scale-end", double)
+
+};
+
+} // namespace Clutter
diff --git a/clutter/src/behaviour.ccg b/clutter/src/behaviour.ccg
new file mode 100644
index 0000000..81f2417
--- /dev/null
+++ b/clutter/src/behaviour.ccg
@@ -0,0 +1,82 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+static void SignalProxy_behaviours_foreach_callback(ClutterBehaviour* behaviour, ClutterActor *actor, 
gpointer user_data)
+{
+  Clutter::Behaviour::SlotForEach* the_slot = static_cast<Clutter::Behaviour::SlotForEach*>(user_data);
+
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  try
+  {
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+    Glib::RefPtr<Clutter::Behaviour> cpp_behaviour = Glib::wrap(behaviour, true /* take reference */);
+    Glib::RefPtr<Clutter::Actor> cpp_actor = Glib::wrap(actor, true /* take reference */);
+    (*the_slot)(cpp_behaviour, cpp_actor);
+  #ifdef GLIBMM_EXCEPTIONS_ENABLED
+  }
+  catch(...)
+  {
+    Glib::exception_handlers_invoke();
+  }
+  #endif //GLIBMM_EXCEPTIONS_ENABLED
+}
+namespace Clutter
+{
+
+void Behaviour::actors_foreach(const SlotForEach& slot)
+{
+  clutter_behaviour_actors_foreach(
+      gobj(),
+      &SignalProxy_behaviours_foreach_callback, const_cast<SlotForEach*>(&slot));
+}
+
+std::vector<Glib::RefPtr<Actor> > Behaviour::get_actors()
+{
+  GSList* actorList = clutter_behaviour_get_actors(gobj());
+
+  const guint actorCount = g_slist_length(actorList);
+  std::vector<Glib::RefPtr<Actor> > actorVec;
+  actorVec.reserve(actorCount);
+
+  for(GSList* actorNode = actorList; actorNode->next; actorNode = actorList->next)
+  {
+    actorVec.push_back(Glib::wrap(static_cast<ClutterActor*>(actorNode->data), true));
+  }
+
+  return actorVec;
+}
+
+std::vector<Glib::RefPtr<const Actor> > Behaviour::get_actors() const
+{
+  GSList* actorList = clutter_behaviour_get_actors(const_cast<ClutterBehaviour*>(gobj()));
+
+  const guint actorCount = g_slist_length(actorList);
+  std::vector<Glib::RefPtr<const Actor> > actorVec;
+  actorVec.reserve(actorCount);
+
+  for(GSList* actorNode = actorList; actorNode->next; actorNode = actorList->next)
+  {
+    actorVec.push_back(Glib::wrap(static_cast<ClutterActor*>(actorNode->data), true));
+  }
+
+  return actorVec;
+}
+
+} //namespace Clutter
+
diff --git a/clutter/src/behaviour.hg b/clutter/src/behaviour.hg
new file mode 100644
index 0000000..3529c9f
--- /dev/null
+++ b/clutter/src/behaviour.hg
@@ -0,0 +1,89 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/alpha.h>
+#include <cluttermm/actor.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Behaviour and its sub-classes have been deprecated since Clutter
+ * 1.6, in favour of the animation framework API.
+ */
+class Behaviour : public Glib::Object
+{
+  _CLASS_GOBJECT(Behaviour, ClutterBehaviour, CLUTTER_BEHAVIOUR, Glib::Object, GObject)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  //There is no create() because this is an abstract base class.
+  //_WRAP_CREATE()
+
+  _WRAP_METHOD(void apply(const Glib::RefPtr<Actor>& actor), clutter_behaviour_apply)
+  _WRAP_METHOD(void remove(const Glib::RefPtr<Actor>& actor), clutter_behaviour_remove)
+  _WRAP_METHOD(void remove_all(), clutter_behaviour_remove_all)
+  _WRAP_METHOD(bool is_applied(const Glib::RefPtr<Actor>& actor), clutter_behaviour_is_applied)
+
+  std::vector<Glib::RefPtr<Actor> >       get_actors();
+  std::vector<Glib::RefPtr<Actor const> > get_actors() const;
+
+  _WRAP_METHOD(int get_n_actors() const, clutter_behaviour_get_n_actors)
+
+  _WRAP_METHOD(Glib::RefPtr<Actor> get_nth_actor(int index), clutter_behaviour_get_nth_actor)
+  _WRAP_METHOD(Glib::RefPtr<const Actor> get_nth_actor(int index) const, clutter_behaviour_get_nth_actor, 
constversion)
+
+  _WRAP_METHOD(Glib::RefPtr<Alpha> get_alpha(), clutter_behaviour_get_alpha)
+  _WRAP_METHOD(Glib::RefPtr<const Alpha> get_alpha() const, clutter_behaviour_get_alpha, constversion)
+
+  _WRAP_METHOD(void set_alpha(const Glib::RefPtr<Alpha>& alpha), clutter_behaviour_set_alpha)
+
+  _IGNORE(clutter_behaviour_get_actors) //deprecated
+
+  // TODO: does this need the 'behaviour' argument, or could that be
+  // approximated with an Object-oriented 'this' pointer?
+  /** For instance,
+   * void on_foreach(const Glib::RefPtr<Behaviour>& behaviour, const Glib::RefPtr<Actor>& actor)
+   */
+  typedef sigc::slot<void, const Glib::RefPtr<Behaviour>&, const Glib::RefPtr<Actor>&> SlotForEach;
+
+  void actors_foreach(const SlotForEach& slot);
+  _IGNORE(clutter_behaviour_actors_foreach)
+
+
+_CONVERSION(`ClutterActor*',`const Glib::RefPtr<Actor>&',`Glib::wrap($3)')
+  _WRAP_SIGNAL(void applied(const Glib::RefPtr<Actor>& actor), "applied")
+  _WRAP_SIGNAL(void removed(const Glib::RefPtr<Actor>& actor), "removed")
+
+  _WRAP_PROPERTY("alpha", Glib::RefPtr<Alpha>)
+
+protected:
+  _WRAP_VFUNC(void alpha_notify(double alpha_value), alpha_notify)
+};
+
+} // namespace Clutter
+// vim:ts=2,sw=2
diff --git a/clutter/src/box.ccg b/clutter/src/box.ccg
new file mode 100644
index 0000000..01979c9
--- /dev/null
+++ b/clutter/src/box.ccg
@@ -0,0 +1,46 @@
+/* Copyright (C) 2011 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+Color Box::get_color() const
+{
+  Color color;
+  clutter_box_get_color(const_cast<ClutterBox*>(gobj()), color.gobj());
+  return color;
+}
+
+// void Box::pack(const Glib::RefPtr<Actor>& actor, const std::map<std::string, Glib::ValueBase>& properties)
+// {
+//   gchar* c_properties[properties.size()];
+//   GValue values[properties.size()];
+
+//   for(std::map<std::string, Glib::ValueBase>::const_iterator iter = properties.begin(); iter != 
properties.end(); ++iter)
+//   {
+//     c_properties[std::distance(properties.begin(), iter)] = g_strdup(iter->first.c_str());
+//     g_value_copy(iter->second.gobj(), &values[std::distance(properties.begin(), iter)]);
+//   }
+
+//   clutter_box_packv(gobj(), actor->gobj(), properties.size(), c_properties, values);
+
+// }
+
+} //namespace Clutter
+
diff --git a/clutter/src/box.hg b/clutter/src/box.hg
new file mode 100644
index 0000000..42b6325
--- /dev/null
+++ b/clutter/src/box.hg
@@ -0,0 +1,72 @@
+/* Copyright (C) 2011 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/container.h>
+#include <cluttermm/layout-manager.h>
+#include <cluttermm/color.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/actor_p.h)
+_PINCLUDE(cluttermm/private/container_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Actor instead.
+ */
+class Box :
+    public Actor,
+    public Container
+{
+  _CLASS_GOBJECT(Box, ClutterBox, CLUTTER_BOX, Actor, ClutterActor)
+  _IMPLEMENTS_INTERFACE(Container)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+  _WRAP_CTOR(Box(const Glib::RefPtr<LayoutManager>& layoutManager), clutter_box_new)
+
+public:
+  _WRAP_CREATE()
+  _WRAP_CREATE(const Glib::RefPtr<LayoutManager>& layoutManager)
+
+  _WRAP_METHOD(Glib::RefPtr<LayoutManager> get_layout_manager(), clutter_box_get_layout_manager, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const LayoutManager> get_layout_manager() const, clutter_box_get_layout_manager, 
refreturn, constversion)
+
+  _IGNORE(clutter_box_set_layout_manager) //deprecated
+
+  _WRAP_METHOD(void set_color(const Color& color), clutter_box_set_color)
+
+  _WRAP_METHOD_DOCS_ONLY(clutter_box_get_color)
+  Color get_color() const;
+
+  _IGNORE(clutter_box_packv, clutter_box_pack, clutter_box_pack_before, clutter_box_pack_after, 
clutter_box_pack_at)
+
+  // TODO: Documentation
+  // FIXME: The std::map with a Glib::ValueBase does not work.
+  // void pack(const Glib::RefPtr<Actor>& actor, const std::map<std::string, Glib::ValueBase>& properties);
+
+  _WRAP_PROPERTY("color", Color)
+  _WRAP_PROPERTY("color-set", bool)
+};
+
+} // namespace Clutter
diff --git a/clutter/src/cairo-texture.ccg b/clutter/src/cairo-texture.ccg
new file mode 100644
index 0000000..b726e2d
--- /dev/null
+++ b/clutter/src/cairo-texture.ccg
@@ -0,0 +1,34 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+namespace Cairo
+{
+
+void set_source_color(::Cairo::RefPtr< ::Cairo::Context >& context, ::Clutter::Color color)
+{
+  clutter_cairo_set_source_color(context->cobj(), color.gobj());
+}
+
+} // namespace Cairo
+
+} //namespace Clutter
+
diff --git a/clutter/src/cairo-texture.hg b/clutter/src/cairo-texture.hg
new file mode 100644
index 0000000..61a66eb
--- /dev/null
+++ b/clutter/src/cairo-texture.hg
@@ -0,0 +1,68 @@
+/* Copyright (C) 2009 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cairomm/context.h>
+#include <cluttermm/color.h>
+#include <cluttermm/texture.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/texture_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+namespace Cairo
+{
+
+/**
+ * @deprecated Use Canvas instead.
+ */
+class Texture : public ::Clutter::Texture
+{
+  _GMMPROC_EXTRA_NAMESPACE(Cairo)
+  _CLASS_GOBJECT(Texture, ClutterCairoTexture, CLUTTER_CAIRO_TEXTURE, ::Clutter::Texture, ClutterTexture)
+  _IMPLEMENTS_INTERFACE(Scriptable)
+  _IS_DEPRECATED
+
+protected:
+  _WRAP_CTOR(Texture(guint surface_width, guint surface_height), clutter_cairo_texture_new)
+
+public:
+  _WRAP_CREATE(guint surface_width, guint surface_height)
+
+  _WRAP_METHOD(void clear(), clutter_cairo_texture_clear)
+
+  _WRAP_METHOD(void set_surface_size(guint width, guint height), clutter_cairo_texture_set_surface_size)
+  _WRAP_METHOD(void get_surface_size(guint& width, guint& height) const, 
clutter_cairo_texture_get_surface_size)
+
+  _WRAP_METHOD(::Cairo::RefPtr< ::Cairo::Context > create_context(), clutter_cairo_texture_create)
+  _WRAP_METHOD(::Cairo::RefPtr< ::Cairo::Context > create_context_region(int x_offset, int y_offset, int 
width, int height), clutter_cairo_texture_create_region)
+};
+
+  void set_source_color(::Cairo::RefPtr< ::Cairo::Context >& context, ::Clutter::Color color);
+
+  _IGNORE(clutter_cairo_texture_invalidate_rectangle, clutter_cairo_texture_invalidate, 
clutter_cairo_texture_get_auto_resize, clutter_cairo_texture_set_auto_resize)
+
+
+} // namespace Cairo
+
+} // namespace Clutter
diff --git a/clutter/src/filelist.am b/clutter/src/filelist.am
index 905ddd3..9907dd1 100644
--- a/clutter/src/filelist.am
+++ b/clutter/src/filelist.am
@@ -17,13 +17,25 @@ files_hg =                  \
        actor-meta.hg           \
        action.hg               \
        align-constraint.hg \
+       alpha.hg                \
        animatable.hg           \
+       animation.hg            \
+       animator.hg             \
        backend.hg              \
+       behaviour.hg            \
+       behaviour-depth.hg      \
+       behaviour-ellipse.hg    \
+       behaviour-opacity.hg    \
+       behaviour-path.hg       \
+       behaviour-rotate.hg     \
+       behaviour-scale.hg      \
        bin-layout.hg           \
        bind-constraint.hg \
+       box.hg                  \
        box-layout.hg           \
        blur-effect.hg          \
        brightness-contrast-effect.hg \
+       cairo-texture.hg        \
        canvas.hg               \
        childmeta.hg            \
        clone.hg                \
@@ -39,12 +51,14 @@ files_hg =                  \
        fixed-layout.hg         \
        flow-layout.hg          \
        grid-layout.hg          \
+       group.hg                \
        image.hg                \
        input-device.hg         \
        interval.hg             \
        keyframe-transition.hg \
        layoutmeta.hg           \
        layout-manager.hg       \
+       media.hg                \
        model.hg \
        model-iter.hg \
        offscreen-effect.hg \
@@ -52,13 +66,19 @@ files_hg =                  \
        path.hg                 \
        path-constraint.hg \
        property-transition.hg  \
+       rectangle.hg            \
        scroll-actor.hg         \
+       score.hg                \
        script.hg               \
        scriptable.hg           \
+       shader.hg               \
        shader-effect.hg \
        size.hg                 \
        snap-constraint.hg \
        stage.hg                \
+       text.hg                 \
+       text-buffer.hg                  \
+       texture.hg              \
        timeline.hg             \
        transition.hg \
        types.hg
diff --git a/clutter/src/group.ccg b/clutter/src/group.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/group.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/group.hg b/clutter/src/group.hg
new file mode 100644
index 0000000..333c709
--- /dev/null
+++ b/clutter/src/group.hg
@@ -0,0 +1,70 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/actor.h>
+#include <cluttermm/container.h>
+ 
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/actor_p.h)
+_PINCLUDE(cluttermm/private/container_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Actor instead.
+ */
+class Group :
+    public Actor,
+    public Container
+{
+  _CLASS_GOBJECT(Group, ClutterGroup, CLUTTER_GROUP, Actor, ClutterActor)
+  _IMPLEMENTS_INTERFACE(Container)
+  //We don't want this in ifdef because Stage still derives from Group: _IS_DEPRECATED
+  //TODO: Remove Group from Stage's heirarchy when clutter does that, when it breaks ABI.
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  _WRAP_CREATE()
+
+  _WRAP_METHOD(void remove_all(), clutter_group_remove_all, deprecated "Use Actor::remove_all_children() 
instead.")
+  _WRAP_METHOD(int get_n_children() const, clutter_group_get_n_children, deprecated "Use 
Actor::get_n_children() instead.")
+  _WRAP_METHOD(Glib::RefPtr<Actor> get_nth_child(int index), clutter_group_get_nth_child, refreturn, 
deprecated "Use Actor::get_child_at_index() instead.")
+  _WRAP_METHOD(Glib::RefPtr<const Actor> get_nth_child(int index) const, clutter_group_get_nth_child, 
constversion, deprecated "Use Actor::get_child_at_index() instead.")
+
+
+  // these functions were deprecated in favor of their Container counterparts
+  _IGNORE(clutter_group_add)
+  _IGNORE(clutter_group_add_many)
+  _IGNORE(clutter_group_add_many_valist)
+  _IGNORE(clutter_group_remove)
+  _IGNORE(clutter_group_find_child_by_id)
+  _IGNORE(clutter_group_raise)
+  _IGNORE(clutter_group_lower)
+  _IGNORE(clutter_group_sort_depth_order)
+  _IGNORE_SIGNAL("add")
+  _IGNORE_SIGNAL("remove")
+};
+
+} // namespace Clutter
+
diff --git a/clutter/src/media.ccg b/clutter/src/media.ccg
new file mode 100644
index 0000000..d53eef8
--- /dev/null
+++ b/clutter/src/media.ccg
@@ -0,0 +1,24 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+} //namespace Clutter
+
diff --git a/clutter/src/media.hg b/clutter/src/media.hg
new file mode 100644
index 0000000..9734b6b
--- /dev/null
+++ b/clutter/src/media.hg
@@ -0,0 +1,76 @@
+
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/interface.h>
+#include <glibmm/ustring.h>
+#include <clutter/clutter.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/interface_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated
+ */
+class Media : public Glib::Interface
+{
+  _CLASS_INTERFACE(Media, ClutterMedia, CLUTTER_MEDIA, ClutterMediaIface)
+  _IS_DEPRECATED
+
+public:
+
+  _WRAP_METHOD(void set_uri(const Glib::ustring& uri), clutter_media_set_uri)
+  _WRAP_METHOD(Glib::ustring get_uri() const, clutter_media_get_uri)
+  _WRAP_METHOD(void set_playing(bool playing=true), clutter_media_set_playing)
+  _WRAP_METHOD(bool get_playing() const, clutter_media_get_playing)
+  _WRAP_METHOD(void set_progress(double progress), clutter_media_set_progress)
+  _WRAP_METHOD(double get_progress() const, clutter_media_get_progress)
+  _WRAP_METHOD(void set_subtitle_uri(const gchar  *uri), clutter_media_set_subtitle_uri)
+  _WRAP_METHOD(std::string get_subtitle_uri() const, clutter_media_get_subtitle_uri)
+  _WRAP_METHOD(void set_subtitle_font_name(const std::string& font_name), 
clutter_media_set_subtitle_font_name)
+  _WRAP_METHOD(std::string get_subtitle_font_name() const, clutter_media_get_subtitle_font_name)
+  _WRAP_METHOD(void set_audio_volume(double volume), clutter_media_set_audio_volume)
+  _WRAP_METHOD(double get_audio_volume() const, clutter_media_get_audio_volume)
+  _WRAP_METHOD(double get_buffer_percent() const, clutter_media_get_buffer_fill)
+  _WRAP_METHOD(void set_filename(const std::string& filename), clutter_media_set_filename)
+  _WRAP_METHOD(bool get_can_seek() const, clutter_media_get_can_seek)
+  _WRAP_METHOD(double get_duration() const, clutter_media_get_duration)
+
+  _WRAP_SIGNAL(void eos(), "eos")
+  // TODO: figure out what to do with this GError parameter
+  //_WRAP_SIGNAL(void error(GError* error), "error")
+
+  _WRAP_PROPERTY("buffer-fill", double)
+  _WRAP_PROPERTY("can-seek", bool)
+  _WRAP_PROPERTY("duration", guint)
+  _WRAP_PROPERTY("playing", bool)
+  _WRAP_PROPERTY("progress", double)
+  _WRAP_PROPERTY("uri", Glib::ustring)
+  _WRAP_PROPERTY("audio-volume", double)
+  _WRAP_PROPERTY("subtitle-font-name", Glib::ustring)
+  _WRAP_PROPERTY("subtitle-uri", Glib::ustring)
+};
+
+} // namespace Clutter
+//vim: ts=2,sw=2
diff --git a/clutter/src/rectangle.ccg b/clutter/src/rectangle.ccg
new file mode 100644
index 0000000..47f7225
--- /dev/null
+++ b/clutter/src/rectangle.ccg
@@ -0,0 +1,38 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+Color Rectangle::get_color() const
+{
+  Color color;
+  clutter_rectangle_get_color(const_cast<ClutterRectangle*>(gobj()), color.gobj());
+  return color;
+}
+
+Color Rectangle::get_border_color() const
+{
+  Color color;
+  clutter_rectangle_get_border_color(const_cast<ClutterRectangle*>(gobj()), color.gobj());
+  return color;
+}
+
+} //namespace Clutter
+
diff --git a/clutter/src/rectangle.hg b/clutter/src/rectangle.hg
new file mode 100644
index 0000000..9063f22
--- /dev/null
+++ b/clutter/src/rectangle.hg
@@ -0,0 +1,69 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/actor.h>
+#include <cluttermm/color.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/actor_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use Actor instead.
+ */
+class Rectangle :
+  public Actor
+{
+  _CLASS_GOBJECT(Rectangle, ClutterRectangle, CLUTTER_RECTANGLE, Actor, ClutterActor)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+  _WRAP_CTOR(Rectangle(const Color& color), clutter_rectangle_new_with_color)
+
+public:
+  _WRAP_CREATE()
+  _WRAP_CREATE(const Color& color)
+
+#m4 _CONVERSION(`ClutterActor*',`Glib::RefPtr<Rectangle>',`Glib::wrap((ClutterRectangle*)$3)')
+
+  _WRAP_METHOD_DOCS_ONLY(clutter_rectangle_get_color)
+  Color get_color() const;
+  _WRAP_METHOD(void set_color(const Color& color), clutter_rectangle_set_color)
+
+  _WRAP_METHOD_DOCS_ONLY(clutter_rectangle_get_border_color)
+  Color get_border_color() const;
+  _WRAP_METHOD(void set_border_color(const Color& color), clutter_rectangle_set_border_color)
+
+  _WRAP_METHOD(guint get_border_width() const, clutter_rectangle_get_border_width)
+  _WRAP_METHOD(void set_border_width(guint width), clutter_rectangle_set_border_width)
+
+  _WRAP_PROPERTY("border-color", Color)
+  _WRAP_PROPERTY("border-width", guint)
+  _WRAP_PROPERTY("color", Color)
+  _WRAP_PROPERTY("has-border", bool)
+};
+
+} // namespace Clutter
+
+//vim: ts=2,sw=2
diff --git a/clutter/src/score.ccg b/clutter/src/score.ccg
new file mode 100644
index 0000000..dd8cd94
--- /dev/null
+++ b/clutter/src/score.ccg
@@ -0,0 +1,58 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+gulong Score::append(const Glib::RefPtr<Timeline>& timeline)
+{
+  return clutter_score_append(gobj(), NULL, timeline->gobj());
+}
+
+std::vector<Glib::RefPtr<Timeline> > Score::list_timelines()
+{
+  GSList* timelineList = clutter_score_list_timelines(gobj());
+  const guint timelineCount = g_slist_length(timelineList);
+  std::vector<Glib::RefPtr<Timeline> > timelineVec;
+  timelineVec.reserve(timelineCount);
+
+  for(GSList* timelineNode = timelineList; timelineNode->next; timelineNode = timelineList->next)
+  {
+    timelineVec.push_back(Glib::wrap(static_cast<ClutterTimeline*>(timelineNode->data), true));
+  }
+
+  return timelineVec;
+}
+
+    std::vector<Glib::RefPtr<const Timeline> > Score::list_timelines() const
+{
+  GSList* timelineList = clutter_score_list_timelines(const_cast<ClutterScore*>(gobj()));
+  const guint timelineCount = g_slist_length(timelineList);
+  std::vector<Glib::RefPtr<const Timeline> > timelineVec;
+  timelineVec.reserve(timelineCount);
+
+  for(GSList* timelineNode = timelineList; timelineNode->next; timelineNode = timelineList->next)
+  {
+    timelineVec.push_back(Glib::wrap(static_cast<ClutterTimeline*>(timelineNode->data), true));
+  }
+
+  return timelineVec;
+}
+
+} // namespace Clutter
diff --git a/clutter/src/score.hg b/clutter/src/score.hg
new file mode 100644
index 0000000..36378e0
--- /dev/null
+++ b/clutter/src/score.hg
@@ -0,0 +1,88 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cluttermm/timeline.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+//Note: The ClutterScore deprecation warning recommends using ClutterAnimator or
+//ClutterState, but they are also now also deprecated in favour of ClutterKeyframeTransition.
+
+/**
+ * @deprecated Use KeyFrameTransition instead.
+ */
+class Score : public Glib::Object
+{
+  _CLASS_GOBJECT(Score, ClutterScore, CLUTTER_SCORE, Glib::Object, GObject)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  _WRAP_CREATE()
+
+  _WRAP_METHOD(void set_loop(bool loop = true), clutter_score_set_loop)
+  _WRAP_METHOD(bool get_loop() const, clutter_score_get_loop)
+
+  _WRAP_METHOD(gulong append(const Glib::RefPtr<Timeline>& parent, const Glib::RefPtr<Timeline>& timeline), 
clutter_score_append)
+
+  /** Appends a timeline to another one existing in the score. The new timeline
+   * will be started when start() is called.
+   *
+   * @param timeline the Timeline to append
+   * @return the id of the newly added timeline, to be used with get_timeline() and remove().
+   */
+  gulong append(const Glib::RefPtr<Timeline>& timeline);
+
+  _WRAP_METHOD(void append_at_marker(const Glib::RefPtr<Timeline>& parent, const Glib::ustring& marker_name, 
const Glib::RefPtr<Timeline>& timeline), clutter_score_append_at_marker)
+
+  _WRAP_METHOD(void remove(gulong id), clutter_score_remove)
+  _WRAP_METHOD(void remove_all(), clutter_score_remove_all)
+
+  _WRAP_METHOD(Glib::RefPtr<Timeline> get_timeline(gulong id), clutter_score_get_timeline, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Timeline> get_timeline(gulong id) const, clutter_score_get_timeline, , 
refreturn, constversion)
+
+  std::vector<Glib::RefPtr<Timeline> > list_timelines();
+  std::vector<Glib::RefPtr<const Timeline> > list_timelines() const;
+
+  _WRAP_METHOD(void start(), clutter_score_start)
+  _WRAP_METHOD(void pause(), clutter_score_pause)
+  _WRAP_METHOD(void stop(), clutter_score_stop)
+  _WRAP_METHOD(void rewind(), clutter_score_rewind)
+  _WRAP_METHOD(bool is_playing() const, clutter_score_is_playing)
+
+  _WRAP_PROPERTY("loop", bool)
+
+#m4 _CONVERSION(`ClutterTimeline*', `const Glib::RefPtr<Timeline>&', `Glib::wrap(($3), true)')
+  _WRAP_SIGNAL(void completed(), "completed")
+  _WRAP_SIGNAL(void paused(), "paused")
+  _WRAP_SIGNAL(void started(), "started")
+  _WRAP_SIGNAL(void timeline_completed(const Glib::RefPtr<Timeline>& timeline), "timeline-completed")
+  _WRAP_SIGNAL(void timeline_started(const Glib::RefPtr<Timeline>& timeline), "timeline-started")
+};
+
+} // namespace Clutter
diff --git a/clutter/src/shader.ccg b/clutter/src/shader.ccg
new file mode 100644
index 0000000..0ab70eb
--- /dev/null
+++ b/clutter/src/shader.ccg
@@ -0,0 +1,34 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+void Shader::set_vertex_source(const std::string& source_code)
+{
+  clutter_shader_set_vertex_source(gobj(), source_code.c_str(), source_code.size());
+}
+
+void Shader::set_fragment_source(const std::string& source_code)
+{
+  clutter_shader_set_fragment_source(gobj(), source_code.c_str(), source_code.size());
+}
+
+} //namespace Clutter
+
diff --git a/clutter/src/shader.hg b/clutter/src/shader.hg
new file mode 100644
index 0000000..c2f70ef
--- /dev/null
+++ b/clutter/src/shader.hg
@@ -0,0 +1,80 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/object.h>
+#include <cogl/cogl.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+/**
+ * @deprecated Use ShaderEffect instead.
+ */
+class Shader : public Glib::Object
+{
+  _CLASS_GOBJECT(Shader, ClutterShader, CLUTTER_SHADER, Glib::Object, GObject)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+
+public:
+  _WRAP_CREATE()
+
+  /** Sets the GLSL source code to be used by a Shader for the vertex program.
+   * @param source_code The GLSL source code.
+   */
+  void set_vertex_source(const std::string& source_code);
+  _IGNORE(clutter_shader_set_vertex_source)
+
+  _WRAP_METHOD(std::string get_vertex_source() const, clutter_shader_get_vertex_source)
+
+    //TODO: Documentation:
+  /** Sets the GLSL source code to be used by a Shader for the fragment
+   * program.
+   * @param source_code The GLSL source code.
+   */
+  void set_fragment_source(const std::string& source_code);
+  _IGNORE(clutter_shader_set_fragment_source)
+
+  _WRAP_METHOD(std::string get_fragment_source() const, clutter_shader_get_fragment_source)
+
+  _WRAP_METHOD(bool compile(), clutter_shader_compile, errthrow)
+  _WRAP_METHOD(bool is_compiled() const, clutter_shader_is_compiled)
+  _WRAP_METHOD(void release(), clutter_shader_release)
+  _WRAP_METHOD(void set_is_enabled(bool enabled = true), clutter_shader_set_is_enabled)
+  _WRAP_METHOD(bool get_is_enabled() const, clutter_shader_get_is_enabled)
+  _WRAP_METHOD(void set_uniform(const Glib::ustring& name, const Glib::ValueBase& value), 
clutter_shader_set_uniform)
+  _WRAP_METHOD(CoglHandle get_cogl_program() const, clutter_shader_get_cogl_program)
+  _WRAP_METHOD(CoglHandle get_cogl_vertex_shader() const, clutter_shader_get_cogl_vertex_shader)
+  _WRAP_METHOD(CoglHandle get_cogl_fragment_shader() const, clutter_shader_get_cogl_fragment_shader)
+
+  _WRAP_PROPERTY("compiled", bool)
+  _WRAP_PROPERTY("enabled", bool)
+  _WRAP_PROPERTY("fragment-source", std::string)
+  _WRAP_PROPERTY("vertex-source", std::string)
+};
+
+} // namespace Clutter
+// vim:ts=2,sw=2
diff --git a/clutter/src/texture.ccg b/clutter/src/texture.ccg
new file mode 100644
index 0000000..1acb0d4
--- /dev/null
+++ b/clutter/src/texture.ccg
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <clutter/clutter.h>
+
+namespace Clutter
+{
+
+Glib::RefPtr<Texture> Texture::create_from_file(const std::string& filename)
+{
+  const Glib::RefPtr<Texture> result (new Texture());
+  result->set_from_file(filename);
+  return result;
+}
+
+} // namespace Clutter
diff --git a/clutter/src/texture.hg b/clutter/src/texture.hg
new file mode 100644
index 0000000..0c901b0
--- /dev/null
+++ b/clutter/src/texture.hg
@@ -0,0 +1,124 @@
+/* Copyright (C) 2007 The cluttermm Development Team
+ *
+ * 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.1 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, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <cluttermm/actor.h>
+#include <cluttermm/types.h>
+
+_DEFS(cluttermm,clutter)
+_PINCLUDE(cluttermm/private/actor_p.h)
+
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+#define CLUTTER_DISABLE_DEPRECATION_WARNINGS 1
+#m4 _POP()
+
+namespace Clutter
+{
+
+_WRAP_ENUM(TextureFlags, ClutterTextureFlags)
+_WRAP_ENUM(TextureQuality, ClutterTextureQuality)
+
+/** Exception class for Clutter::Texture errors.
+ */
+_WRAP_GERROR(TextureError, ClutterTextureError, CLUTTER_TEXTURE_ERROR)
+
+/**
+ * @deprecated Use Image instead.
+ */
+class Texture : public Actor
+{
+  _CLASS_GOBJECT(Texture, ClutterTexture, CLUTTER_TEXTURE, Actor, ClutterActor)
+  _IS_DEPRECATED
+
+protected:
+  _CTOR_DEFAULT()
+  // We do not wrap this constructor because it might throw an error. This
+  // gets difficult to get right especially for disabled exceptions in glibmm,
+  // and it is easy enough to create a texture and call set_from_file() on
+  // it manually.  But we do wrap the create method at least. --danielk
+  _IGNORE(clutter_texture_new_from_file)
+
+  // TODO: Wrap clutter_texture_new_from_actor. This needs changes in clutter
+  // since the _new function does a lot more than calling g_object_new().
+  //_WRAP_CTOR(Texture(const Glib::RefPtr<Actor>& actor), clutter_texture_new_from_actor)
+
+public:
+#m4 _CONVERSION(`ClutterActor*',`Glib::RefPtr<Texture>',`Glib::wrap((ClutterTexture*)$3)')
+
+  _WRAP_CREATE()
+  static Glib::RefPtr<Texture> create_from_file(const std::string& filename);
+  //_WRAP_CREATE(const Glib::RefPtr<Actor>& actor);
+
+  _WRAP_METHOD(bool set_from_file(const std::string& filename), clutter_texture_set_from_file, errthrow)
+  _WRAP_METHOD(bool set_from_rgb_data(const guchar* data, bool has_alpha, int width, int height, int 
rowstride, int bpp, TextureFlags flags), clutter_texture_set_from_rgb_data, errthrow)
+  _WRAP_METHOD(bool set_from_yuv_data(const guchar* data, int width, int height, TextureFlags flags), 
clutter_texture_set_from_yuv_data, errthrow)
+  _WRAP_METHOD(bool set_area_from_rgb_data(const guchar* data, bool has_alpha, int x, int y, int width, int 
height, int rowstride, int bpp, TextureFlags flags), clutter_texture_set_area_from_rgb_data, errthrow)
+  _WRAP_METHOD(void get_base_size(int& width, int& height) const, clutter_texture_get_base_size)
+
+  _WRAP_METHOD(CoglPixelFormat get_pixel_format() const, clutter_texture_get_pixel_format)
+
+  _WRAP_METHOD(TextureQuality get_filter_quality() const, clutter_texture_get_filter_quality)
+  _WRAP_METHOD(void set_filter_quality(TextureQuality filter_quality), clutter_texture_set_filter_quality)
+
+  _WRAP_METHOD(int get_max_tile_waste() const, clutter_texture_get_max_tile_waste)
+  _WRAP_METHOD(void set_max_tile_waste(int max_tile_waste), clutter_texture_set_max_tile_waste)
+
+  // TODO: Is there a coglmm we could depend on for this?
+  _WRAP_METHOD(CoglHandle get_cogl_texture() const, clutter_texture_get_cogl_texture)
+  _WRAP_METHOD(void set_cogl_texture(CoglHandle handle), clutter_texture_set_cogl_texture)
+  _WRAP_METHOD(CoglHandle get_cogl_material() const, clutter_texture_get_cogl_material)
+  _WRAP_METHOD(void set_cogl_material(CoglHandle handle), clutter_texture_set_cogl_material)
+
+  _WRAP_METHOD(bool get_sync_size() const, clutter_texture_get_sync_size)
+  _WRAP_METHOD(void set_sync_size(bool sync_size=true), clutter_texture_set_sync_size)
+
+#m4 _CONVERSION(`bool&',`gboolean*',`reinterpret_cast<gboolean*>(&$3)')
+  _WRAP_METHOD(void get_repeat(bool& repeat_x, bool& repeat_y) const, clutter_texture_get_repeat)
+  _WRAP_METHOD(void set_repeat(bool repeat_x=true, bool repeat_y=true), clutter_texture_set_repeat)
+
+  _WRAP_METHOD(bool get_keep_aspect_ratio() const, clutter_texture_get_keep_aspect_ratio)
+  _WRAP_METHOD(void set_keep_aspect_ratio(bool keep_aspect=true), clutter_texture_set_keep_aspect_ratio)
+
+  _WRAP_METHOD(bool get_load_async() const, clutter_texture_get_load_async)
+  _WRAP_METHOD(void set_load_async(bool load_async=true), clutter_texture_set_load_async)
+
+  _WRAP_METHOD(bool get_load_data_async() const, clutter_texture_get_load_data_async)
+  _WRAP_METHOD(void set_load_data_async(bool load_async=true), clutter_texture_set_load_data_async)
+
+  _WRAP_METHOD(void set_pick_with_alpha(bool pick_with_alpha = true), clutter_texture_set_pick_with_alpha)
+  _WRAP_METHOD(bool get_pick_with_alpha() const, clutter_texture_get_pick_with_alpha)
+
+  // TODO: figure out what to do with this GError parameter
+  //_WRAP_SIGNAL(void load_finished(GError* error), "load_finished")
+  _WRAP_SIGNAL(void size_change(int width, int height), "size_change")
+  _WRAP_SIGNAL(void pixbuf_change(), "pixbuf_change")
+
+#m4 // TODO: What's with the C type?
+  _WRAP_PROPERTY("cogl-texture", CoglHandle)
+  _WRAP_PROPERTY("disable-slicing", bool)
+  _WRAP_PROPERTY("filename", std::string)
+  _WRAP_PROPERTY("filter-quality", TextureQuality)
+  _WRAP_PROPERTY("keep-aspect-ratio", bool)
+  _WRAP_PROPERTY("load-async", bool)
+  _WRAP_PROPERTY("load-data-async", bool)
+  _WRAP_PROPERTY("pixel-format", int)
+  _WRAP_PROPERTY("repeat-x", bool)
+  _WRAP_PROPERTY("repeat-y", bool)
+  _WRAP_PROPERTY("sync-size", bool)
+  _WRAP_PROPERTY("tile-waste", int)
+};
+
+} // namespace Clutter
diff --git a/codegen/extradefs/generate_extra_defs_clutter.cc 
b/codegen/extradefs/generate_extra_defs_clutter.cc
index c26864d..bf8017d 100644
--- a/codegen/extradefs/generate_extra_defs_clutter.cc
+++ b/codegen/extradefs/generate_extra_defs_clutter.cc
@@ -40,12 +40,25 @@ int main(int argc, char** argv)
     << get_defs(CLUTTER_TYPE_ACTION)
     << get_defs(CLUTTER_TYPE_ALIGN_CONSTRAINT)
     << get_defs(CLUTTER_TYPE_ANIMATABLE)
+    << get_defs(CLUTTER_TYPE_ALPHA)
+    << get_defs(CLUTTER_TYPE_ANIMATABLE)
+    << get_defs(CLUTTER_TYPE_ANIMATION)
+    << get_defs(CLUTTER_TYPE_ANIMATOR)
     << get_defs(CLUTTER_TYPE_BACKEND)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_DEPTH)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_ELLIPSE)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_OPACITY)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_PATH)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_ROTATE)
+    << get_defs(CLUTTER_TYPE_BEHAVIOUR_SCALE)
     << get_defs(CLUTTER_TYPE_BIN_LAYOUT)
     << get_defs(CLUTTER_TYPE_BIND_CONSTRAINT)
     << get_defs(CLUTTER_TYPE_BLUR_EFFECT)
+    << get_defs(CLUTTER_TYPE_BOX)
     << get_defs(CLUTTER_TYPE_BOX_LAYOUT)
     << get_defs(CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT)
+    << get_defs(CLUTTER_TYPE_CAIRO_TEXTURE)
     << get_defs(CLUTTER_TYPE_CANVAS)
     << get_defs(CLUTTER_TYPE_CHILD_META)
     << get_defs(CLUTTER_TYPE_CLICK_ACTION)
@@ -67,6 +80,7 @@ int main(int argc, char** argv)
     << get_defs(CLUTTER_TYPE_FLOW_LAYOUT)
     << get_defs(CLUTTER_TYPE_GESTURE_ACTION)
     << get_defs(CLUTTER_TYPE_GRID_LAYOUT)
+    << get_defs(CLUTTER_TYPE_GROUP)
     << get_defs(CLUTTER_TYPE_INTERVAL)
     << get_defs(CLUTTER_TYPE_IMAGE)
     << get_defs(CLUTTER_TYPE_INPUT_DEVICE)
@@ -77,6 +91,7 @@ int main(int argc, char** argv)
     << get_defs(CLUTTER_TYPE_LAYOUT_MANAGER)
     << get_defs(CLUTTER_TYPE_LAYOUT_META)
     << get_defs(CLUTTER_TYPE_LIST_MODEL)
+    << get_defs(CLUTTER_TYPE_MEDIA)
     << get_defs(CLUTTER_TYPE_MODEL)
     << get_defs(CLUTTER_TYPE_OFFSCREEN_EFFECT)
     << get_defs(CLUTTER_TYPE_PAGE_TURN_EFFECT)
@@ -85,10 +100,13 @@ int main(int argc, char** argv)
     << get_defs(CLUTTER_TYPE_PATH)
     << get_defs(CLUTTER_TYPE_PATH_CONSTRAINT)
     << get_defs(CLUTTER_TYPE_PROPERTY_TRANSITION)
+    << get_defs(CLUTTER_TYPE_RECTANGLE)
     << get_defs(CLUTTER_TYPE_ROTATE_ACTION)
+    << get_defs(CLUTTER_TYPE_SCORE)
     << get_defs(CLUTTER_TYPE_SCRIPT)
     << get_defs(CLUTTER_TYPE_SCRIPTABLE)
     << get_defs(CLUTTER_TYPE_SCROLL_ACTOR)
+    << get_defs(CLUTTER_TYPE_SHADER)
     << get_defs(CLUTTER_TYPE_SHADER_EFFECT)
     << get_defs(CLUTTER_TYPE_SNAP_CONSTRAINT)
     << get_defs(CLUTTER_TYPE_STAGE)
@@ -96,6 +114,8 @@ int main(int argc, char** argv)
     << get_defs(CLUTTER_TYPE_SWIPE_ACTION)
     << get_defs(CLUTTER_TYPE_TABLE_LAYOUT)
     << get_defs(CLUTTER_TYPE_TAP_ACTION)
+    << get_defs(CLUTTER_TYPE_TEXT)
+    << get_defs(CLUTTER_TYPE_TEXTURE)
     << get_defs(CLUTTER_TYPE_TEXT_BUFFER)
     << get_defs(CLUTTER_TYPE_TIMELINE)
     << get_defs(CLUTTER_TYPE_TRANSITION)
diff --git a/configure.ac b/configure.ac
index 4177ef7..81981e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@
 ## You should have received a copy of the GNU Lesser General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([cluttermm], [1.99.1],
+AC_INIT([cluttermm], [1.17.2],
         [http://bugzilla.gnome.org/enter_bug.cgi?product=cluttermm],
         [cluttermm], [http://www.gtkmm.org/])
 AC_PREREQ([2.59])
@@ -31,7 +31,7 @@ AM_MAINTAINER_MODE
 AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
 
 MM_PREREQ([0.8])
-MM_INIT_MODULE([cluttermm-2.0])
+MM_INIT_MODULE([cluttermm-1.0])
 
 # Copy the mm-common .pl scripts into docs/,
 # and use them from there,
@@ -46,7 +46,7 @@ AC_DISABLE_STATIC
 AC_LIBTOOL_WIN32_DLL
 AC_PROG_LIBTOOL
 
-AC_SUBST([CLUTTERMM_MODULES], ['clutter-2.0 >= 1.99.1 pangomm-1.4 >= 2.27.1 atkmm-1.6 >= 2.22.2'])
+AC_SUBST([CLUTTERMM_MODULES], ['clutter-1.0 >= 1.18.0 pangomm-1.4 >= 2.27.1 atkmm-1.6 >= 2.22.2'])
 PKG_CHECK_MODULES([CLUTTERMM], [$CLUTTERMM_MODULES])
 MM_PKG_CONFIG_SUBST([GMMPROC_DIR], [--variable=gmmprocdir glibmm-2.4])
 MM_PKG_CONFIG_SUBST([GMMPROC_EXTRA_M4_DIR], [--variable=gmmprocm4dir pangomm-1.4 atkmm-1.6])
diff --git a/examples/example-stage.cc b/examples/example-stage.cc
index b7bf634..bfcda66 100644
--- a/examples/example-stage.cc
+++ b/examples/example-stage.cc
@@ -15,7 +15,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
-// c++ -Wall -g `pkg-config --cflags --libs cluttermm-2.0` -o stage example-stage.cc
+// c++ -Wall -g `pkg-config --cflags --libs cluttermm-1.0` -o stage example-stage.cc
 
 /**A simple ClutterStage. */
 #include <cluttermm.h>


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