+gtk_clutter_embed_add (ClutterContainer *container,
+ ClutterActor *actor)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ clutter_container_add_actor (stage, actor);
+ g_signal_emit_by_name (container, "actor-added", actor);
+}
+
+static void
+gtk_clutter_embed_remove (ClutterContainer *container,
+ ClutterActor *actor)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ g_object_ref (actor);
+
+ clutter_container_remove_actor (stage, actor);
+ g_signal_emit_by_name (container, "actor-removed", actor);
+
+ g_object_unref (actor);
+}
+
+static void
+gtk_clutter_embed_foreach (ClutterContainer *container,
+ ClutterCallback callback,
+ gpointer callback_data)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ clutter_container_foreach (stage, callback, callback_data);
+}
+
+static void
+gtk_clutter_embed_raise (ClutterContainer *container,
+ ClutterActor *child,
+ ClutterActor *sibling)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ clutter_container_raise_child (stage, child, sibling);
+}
+
+static void
+gtk_clutter_embed_lower (ClutterContainer *container,
+ ClutterActor *child,
+ ClutterActor *sibling)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ clutter_container_lower_child (stage, child, sibling);
+}
+
+static void
+gtk_clutter_embed_sort_depth_order (ClutterContainer *container)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (container)->priv;
+ ClutterContainer *stage = CLUTTER_CONTAINER (priv->stage);
+
+ clutter_container_sort_depth_order (stage);
+}
+
+static void
+clutter_container_iface_init (ClutterContainerIface *iface)
+{
+ iface->add = gtk_clutter_embed_add;
+ iface->remove = gtk_clutter_embed_remove;
+ iface->foreach = gtk_clutter_embed_foreach;
+ iface->raise = gtk_clutter_embed_raise;
+ iface->lower = gtk_clutter_embed_lower;
+ iface->sort_depth_order = gtk_clutter_embed_sort_depth_order;
+}
+
+static void