[clutter/wip/clutter-1.99: 159/195] 2.0: Remove deprecated ClutterContainer API



commit 8015be93527a7c95f6587811cf65a0df079755d8
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Aug 24 08:46:59 2012 +0100

    2.0: Remove deprecated ClutterContainer API

 clutter/clutter-bin-layout.c   |    3 +-
 clutter/clutter-box-layout.c   |    2 +-
 clutter/clutter-container.c    |  757 +---------------------------------------
 clutter/clutter-container.h    |  111 ++----
 clutter/clutter-stage.c        |   70 +----
 clutter/clutter-table-layout.c |    2 +-
 6 files changed, 42 insertions(+), 903 deletions(-)
---
diff --git a/clutter/clutter-bin-layout.c b/clutter/clutter-bin-layout.c
index de7370e..d7ad9bd 100644
--- a/clutter/clutter-bin-layout.c
+++ b/clutter/clutter-bin-layout.c
@@ -895,8 +895,7 @@ clutter_bin_layout_add (ClutterBinLayout    *self,
       return;
     }
 
-  clutter_container_add_actor (priv->container, child);
-
+  clutter_actor_add_child (CLUTTER_ACTOR (priv->container), child);
   manager = CLUTTER_LAYOUT_MANAGER (self);
   meta = clutter_layout_manager_get_child_meta (manager,
                                                 priv->container,
diff --git a/clutter/clutter-box-layout.c b/clutter/clutter-box-layout.c
index a87b32b..c91d971 100644
--- a/clutter/clutter-box-layout.c
+++ b/clutter/clutter-box-layout.c
@@ -1841,7 +1841,7 @@ clutter_box_layout_pack (ClutterBoxLayout    *layout,
       return;
     }
 
-  clutter_container_add_actor (priv->container, actor);
+  clutter_actor_add_child (CLUTTER_ACTOR (priv->container), actor);
 
   manager = CLUTTER_LAYOUT_MANAGER (layout);
   meta = clutter_layout_manager_get_child_meta (manager,
diff --git a/clutter/clutter-container.c b/clutter/clutter-container.c
index 8c64151..6633dd5 100644
--- a/clutter/clutter-container.c
+++ b/clutter/clutter-container.c
@@ -34,34 +34,14 @@
 #include <glib-object.h>
 #include <gobject/gvaluecollector.h>
 
-#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
-#include "deprecated/clutter-container.h"
-
 #include "clutter-actor-private.h"
 #include "clutter-child-meta.h"
+#include "clutter-container.h"
 #include "clutter-debug.h"
+#include "clutter-enum-types.h"
 #include "clutter-main.h"
 #include "clutter-marshal.h"
 #include "clutter-private.h"
-#include "clutter-enum-types.h"
-
-#define CLUTTER_CONTAINER_WARN_NOT_IMPLEMENTED(container,vfunc) \
-        G_STMT_START { \
-          g_warning ("Container of type '%s' does not implement " \
-                     "the required ClutterContainer::%s virtual " \
-                     "function.",                                 \
-                     G_OBJECT_TYPE_NAME ((container)),            \
-                     (vfunc));                                    \
-        } G_STMT_END
-
-#define CLUTTER_CONTAINER_NOTE_NOT_IMPLEMENTED(container,vfunc) \
-        G_STMT_START { \
-          CLUTTER_NOTE (ACTOR, "Container of type '%s' does not "    \
-                               "implement the ClutterContainer::%s " \
-                               "virtual function.",                  \
-                        G_OBJECT_TYPE_NAME ((container)),            \
-                        (vfunc));                                    \
-        } G_STMT_END
 
 /**
  * SECTION:clutter-container
@@ -71,13 +51,6 @@
  * it provides some common API for notifying when a child actor is added
  * or removed, as well as the infrastructure for accessing child properties
  * through #ClutterChildMeta.
- *
- * Until Clutter 1.10, the #ClutterContainer interface was also the public
- * API for implementing container actors; this part of the interface has
- * been deprecated: #ClutterContainer has a default implementation which
- * defers to #ClutterActor the child addition and removal, as well as the
- * iteration. See the documentation of #ClutterContainerIface for the list
- * of virtual functions that should be overridden.
  */
 
 enum
@@ -104,77 +77,7 @@ static void              child_notify       (ClutterContainer *container,
 
 typedef ClutterContainerIface   ClutterContainerInterface;
 
-G_DEFINE_INTERFACE (ClutterContainer, clutter_container, G_TYPE_OBJECT);
-
-static void
-container_real_add (ClutterContainer *container,
-                    ClutterActor     *actor)
-{
-  clutter_actor_add_child (CLUTTER_ACTOR (container), actor);
-}
-
-static void
-container_real_remove (ClutterContainer *container,
-                       ClutterActor     *actor)
-{
-  clutter_actor_remove_child (CLUTTER_ACTOR (container), actor);
-}
-
-typedef struct {
-  ClutterCallback callback;
-  gpointer data;
-} ForeachClosure;
-
-static gboolean
-foreach_cb (ClutterActor *actor,
-            gpointer      data)
-{
-  ForeachClosure *clos = data;
-
-  clos->callback (actor, clos->data);
-
-  return TRUE;
-}
-
-static void
-container_real_foreach (ClutterContainer *container,
-                        ClutterCallback   callback,
-                        gpointer          user_data)
-{
-  ForeachClosure clos;
-
-  clos.callback = callback;
-  clos.data = user_data;
-
-  _clutter_actor_foreach_child (CLUTTER_ACTOR (container),
-                                foreach_cb,
-                                &clos);
-}
-
-static void
-container_real_raise (ClutterContainer *container,
-                      ClutterActor     *child,
-                      ClutterActor     *sibling)
-{
-  ClutterActor *self = CLUTTER_ACTOR (container);
-
-  clutter_actor_set_child_above_sibling (self, child, sibling);
-}
-
-static void
-container_real_lower (ClutterContainer *container,
-                      ClutterActor     *child,
-                      ClutterActor     *sibling)
-{
-  ClutterActor *self = CLUTTER_ACTOR (container);
-
-  clutter_actor_set_child_below_sibling (self, child, sibling);
-}
-
-static void
-container_real_sort_depth_order (ClutterContainer *container)
-{
-}
+G_DEFINE_INTERFACE (ClutterContainer, clutter_container, G_TYPE_OBJECT)
 
 static void
 clutter_container_default_init (ClutterContainerInterface *iface)
@@ -182,7 +85,7 @@ clutter_container_default_init (ClutterContainerInterface *iface)
   GType iface_type = G_TYPE_FROM_INTERFACE (iface);
 
   quark_child_meta =
-    g_quark_from_static_string ("clutter-container-child-data");
+    g_quark_from_static_string ("-clutter-container-child-data");
 
   /**
    * ClutterContainer::actor-added:
@@ -245,13 +148,6 @@ clutter_container_default_init (ClutterContainerInterface *iface)
                   G_TYPE_NONE, 2,
                   CLUTTER_TYPE_ACTOR, G_TYPE_PARAM);
 
-  iface->add = container_real_add;
-  iface->remove = container_real_remove;
-  iface->foreach = container_real_foreach;
-  iface->raise = container_real_raise;
-  iface->lower = container_real_lower;
-  iface->sort_depth_order = container_real_sort_depth_order;
-
   iface->child_meta_type = G_TYPE_INVALID;
   iface->create_child_meta = create_child_meta;
   iface->destroy_child_meta = destroy_child_meta;
@@ -259,651 +155,6 @@ clutter_container_default_init (ClutterContainerInterface *iface)
   iface->child_notify = child_notify;
 }
 
-static inline void
-container_add_actor (ClutterContainer *container,
-                     ClutterActor     *actor)
-{
-  ClutterActor *parent;
-
-  parent = clutter_actor_get_parent (actor);
-  if (G_UNLIKELY (parent != NULL))
-    {
-      g_warning ("Attempting to add actor of type '%s' to a "
-                "container of type '%s', but the actor has "
-                 "already a parent of type '%s'.",
-                g_type_name (G_OBJECT_TYPE (actor)),
-                g_type_name (G_OBJECT_TYPE (container)),
-                g_type_name (G_OBJECT_TYPE (parent)));
-      return;
-    }
-
-  clutter_container_create_child_meta (container, actor);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      ClutterContainerIface *iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-      if (iface->add != container_real_add)
-        _clutter_diagnostic_message ("The ClutterContainer::add() virtual "
-                                     "function has been deprecated and it "
-                                     "should not be overridden by newly "
-                                     "written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  CLUTTER_CONTAINER_GET_IFACE (container)->add (container, actor);
-}
-
-static inline void
-container_remove_actor (ClutterContainer *container,
-                        ClutterActor     *actor)
-{
-  ClutterActor *parent;
-
-  parent = clutter_actor_get_parent (actor);
-  if (parent != CLUTTER_ACTOR (container))
-    {
-      g_warning ("Attempting to remove actor of type '%s' from "
-                "group of class '%s', but the container is not "
-                 "the actor's parent.",
-                g_type_name (G_OBJECT_TYPE (actor)),
-                g_type_name (G_OBJECT_TYPE (container)));
-      return;
-    }
-
-  clutter_container_destroy_child_meta (container, actor);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      ClutterContainerIface *iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-      if (iface->remove != container_real_remove)
-        _clutter_diagnostic_message ("The ClutterContainer::remove() virtual "
-                                     "function has been deprecated and it "
-                                     "should not be overridden by newly "
-                                     "written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  CLUTTER_CONTAINER_GET_IFACE (container)->remove (container, actor);
-}
-
-static inline void
-container_add_valist (ClutterContainer *container,
-                      ClutterActor     *first_actor,
-                      va_list           args)
-{
-  ClutterActor *actor = first_actor;
-
-  while (actor != NULL)
-    {
-      container_add_actor (container, actor);
-      actor = va_arg (args, ClutterActor *);
-    }
-}
-
-static inline void
-container_remove_valist (ClutterContainer *container,
-                         ClutterActor     *first_actor,
-                         va_list           args)
-{
-  ClutterActor *actor = first_actor;
-
-  while (actor != NULL)
-    {
-      container_remove_actor (container, actor);
-      actor = va_arg (args, ClutterActor *);
-    }
-}
-
-/**
- * clutter_container_add: (skip)
- * @container: a #ClutterContainer
- * @first_actor: the first #ClutterActor to add
- * @...: %NULL terminated list of actors to add
- *
- * Adds a list of #ClutterActor<!-- -->s to @container. Each time and
- * actor is added, the "actor-added" signal is emitted. Each actor should
- * be parented to @container, which takes a reference on the actor. You
- * cannot add a #ClutterActor to more than one #ClutterContainer.
- *
- * This function will call #ClutterContainerIface.add(), which is a
- * deprecated virtual function. The default implementation will
- * call clutter_actor_add_child().
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_add_child() instead.
- */
-void
-clutter_container_add (ClutterContainer *container,
-                       ClutterActor     *first_actor,
-                       ...)
-{
-  va_list args;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (first_actor));
-
-  va_start (args, first_actor);
-  container_add_valist (container, first_actor, args);
-  va_end (args);
-}
-
-/**
- * clutter_container_add_actor:
- * @container: a #ClutterContainer
- * @actor: the first #ClutterActor to add
- *
- * Adds a #ClutterActor to @container. This function will emit the
- * "actor-added" signal. The actor should be parented to
- * @container. You cannot add a #ClutterActor to more than one
- * #ClutterContainer.
- *
- * This function will call #ClutterContainerIface.add(), which is a
- * deprecated virtual function. The default implementation will
- * call clutter_actor_add_child().
- *
- * Virtual: add
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_add_child() instead.
- */
-void
-clutter_container_add_actor (ClutterContainer *container,
-                             ClutterActor     *actor)
-{
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (actor));
-
-  container_add_actor (container, actor);
-}
-
-/**
- * clutter_container_add_valist: (skip)
- * @container: a #ClutterContainer
- * @first_actor: the first #ClutterActor to add
- * @var_args: list of actors to add, followed by %NULL
- *
- * Alternative va_list version of clutter_container_add().
- *
- * This function will call #ClutterContainerIface.add(), which is a
- * deprecated virtual function. The default implementation will
- * call clutter_actor_add_child().
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_add_child() instead.
- */
-void
-clutter_container_add_valist (ClutterContainer *container,
-                              ClutterActor     *first_actor,
-                              va_list           var_args)
-{
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (first_actor));
-
-  container_add_valist (container, first_actor, var_args);
-}
-
-/**
- * clutter_container_remove: (skip)
- * @container: a #ClutterContainer
- * @first_actor: first #ClutterActor to remove
- * @...: a %NULL-terminated list of actors to remove
- *
- * Removes a %NULL terminated list of #ClutterActor<!-- -->s from
- * @container. Each actor should be unparented, so if you want to keep it
- * around you must hold a reference to it yourself, using g_object_ref().
- * Each time an actor is removed, the "actor-removed" signal is
- * emitted by @container.
- *
- * This function will call #ClutterContainerIface.remove(), which is a
- * deprecated virtual function. The default implementation will call
- * clutter_actor_remove_child().
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_remove_child() instead.
- */
-void
-clutter_container_remove (ClutterContainer *container,
-                          ClutterActor     *first_actor,
-                          ...)
-{
-  va_list var_args;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (first_actor));
-
-  va_start (var_args, first_actor);
-  container_remove_valist (container, first_actor, var_args);
-  va_end (var_args);
-}
-
-/**
- * clutter_container_remove_actor:
- * @container: a #ClutterContainer
- * @actor: a #ClutterActor
- *
- * Removes @actor from @container. The actor should be unparented, so
- * if you want to keep it around you must hold a reference to it
- * yourself, using g_object_ref(). When the actor has been removed,
- * the "actor-removed" signal is emitted by @container.
- *
- * This function will call #ClutterContainerIface.remove(), which is a
- * deprecated virtual function. The default implementation will call
- * clutter_actor_remove_child().
- *
- * Virtual: remove
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_remove_child() instead.
- */
-void
-clutter_container_remove_actor (ClutterContainer *container,
-                                ClutterActor     *actor)
-{
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (actor));
-
-  container_remove_actor (container, actor);
-}
-
-/**
- * clutter_container_remove_valist: (skip)
- * @container: a #ClutterContainer
- * @first_actor: the first #ClutterActor to add
- * @var_args: list of actors to remove, followed by %NULL
- *
- * Alternative va_list version of clutter_container_remove().
- *
- * This function will call #ClutterContainerIface.remove(), which is a
- * deprecated virtual function. The default implementation will call
- * clutter_actor_remove_child().
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_remove_child() instead.
- */
-void
-clutter_container_remove_valist (ClutterContainer *container,
-                                 ClutterActor     *first_actor,
-                                 va_list           var_args)
-{
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (first_actor));
-
-  container_remove_valist (container, first_actor, var_args);
-}
-
-static void
-get_children_cb (ClutterActor *child,
-                 gpointer      data)
-{
-  GList **children = data;
-
-  *children = g_list_prepend (*children, child);
-}
-
-/**
- * clutter_container_get_children:
- * @container: a #ClutterContainer
- *
- * Retrieves all the children of @container.
- *
- * Return value: (element-type Clutter.Actor) (transfer container): a list
- *   of #ClutterActor<!-- -->s. Use g_list_free() on the returned
- *   list when done.
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_get_children() instead.
- */
-GList *
-clutter_container_get_children (ClutterContainer *container)
-{
-  GList *retval;
-
-  g_return_val_if_fail (CLUTTER_IS_CONTAINER (container), NULL);
-
-  retval = NULL;
-  clutter_container_foreach (container, get_children_cb, &retval);
-
-  return g_list_reverse (retval);
-}
-
-/**
- * clutter_container_foreach:
- * @container: a #ClutterContainer
- * @callback: (scope call): a function to be called for each child
- * @user_data: data to be passed to the function, or %NULL
- *
- * Calls @callback for each child of @container that was added
- * by the application (with clutter_container_add_actor()). Does
- * not iterate over "internal" children that are part of the
- * container's own implementation, if any.
- *
- * This function calls the #ClutterContainerIface.foreach()
- * virtual function, which has been deprecated.
- *
- * Since: 0.4
- *
- * Deprecated: 1.10: Use clutter_actor_get_first_child() or
- *   clutter_actor_get_last_child() to retrieve the beginning of
- *   the list of children, and clutter_actor_get_next_sibling()
- *   and clutter_actor_get_previous_sibling() to iterate over it;
- *   alternatively, use the #ClutterActorIter API.
- */
-void
-clutter_container_foreach (ClutterContainer *container,
-                           ClutterCallback   callback,
-                           gpointer          user_data)
-{
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (callback != NULL);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      ClutterContainerIface *iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-      if (iface->foreach != container_real_foreach)
-        _clutter_diagnostic_message ("The ClutterContainer::foreach() "
-                                     "virtual function has been deprecated "
-                                     "and it should not be overridden by "
-                                     "newly written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  CLUTTER_CONTAINER_GET_IFACE (container)->foreach (container,
-                                                    callback,
-                                                    user_data);
-}
-
-/**
- * clutter_container_foreach_with_internals:
- * @container: a #ClutterContainer
- * @callback: (scope call): a function to be called for each child
- * @user_data: data to be passed to the function, or %NULL
- *
- * Calls @callback for each child of @container, including "internal"
- * children built in to the container itself that were never added
- * by the application.
- *
- * This function calls the #ClutterContainerIface.foreach_with_internals()
- * virtual function, which has been deprecated.
- *
- * Since: 1.0
- *
- * Deprecated: 1.10: See clutter_container_foreach().
- */
-void
-clutter_container_foreach_with_internals (ClutterContainer *container,
-                                          ClutterCallback   callback,
-                                          gpointer          user_data)
-{
-  ClutterContainerIface *iface;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (callback != NULL);
-
-  iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      if (iface->foreach_with_internals != NULL)
-        _clutter_diagnostic_message ("The ClutterContainer::foreach_with_internals() "
-                                     "virtual function has been deprecated "
-                                     "and it should not be overridden by "
-                                     "newly written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  if (iface->foreach_with_internals != NULL)
-    iface->foreach_with_internals (container, callback, user_data);
-  else
-    iface->foreach (container, callback, user_data);
-}
-
-/**
- * clutter_container_raise_child:
- * @container: a #ClutterContainer
- * @actor: the actor to raise
- * @sibling: (allow-none): the sibling to raise to, or %NULL to raise
- *   to the top
- *
- * Raises @actor to @sibling level, in the depth ordering.
- *
- * This function calls the #ClutterContainerIface.raise() virtual function,
- * which has been deprecated. The default implementation will call
- * clutter_actor_set_child_above_sibling().
- *
- * Virtual: raise
- *
- * Since: 0.6
- *
- * Deprecated: 1.10: Use clutter_actor_set_child_above_sibling() instead.
- */
-void
-clutter_container_raise_child (ClutterContainer *container,
-                               ClutterActor     *actor,
-                               ClutterActor     *sibling)
-{
-  ClutterContainerIface *iface;
-  ClutterActor *self;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (actor));
-  g_return_if_fail (sibling == NULL || CLUTTER_IS_ACTOR (sibling));
-
-  if (actor == sibling)
-    return;
-
-  self = CLUTTER_ACTOR (container);
-
-  if (clutter_actor_get_parent (actor) != self)
-    {
-      g_warning ("Actor of type '%s' is not a child of the container "
-                 "of type '%s'",
-                 g_type_name (G_OBJECT_TYPE (actor)),
-                 g_type_name (G_OBJECT_TYPE (container)));
-      return;
-    }
-
-  if (sibling != NULL &&
-      clutter_actor_get_parent (sibling) != self)
-    {
-      g_warning ("Actor of type '%s' is not a child of the container "
-                 "of type '%s'",
-                 g_type_name (G_OBJECT_TYPE (sibling)),
-                 g_type_name (G_OBJECT_TYPE (container)));
-      return;
-    }
-
-  iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      if (iface->raise != container_real_raise)
-        _clutter_diagnostic_message ("The ClutterContainer::raise() "
-                                     "virtual function has been deprecated "
-                                     "and it should not be overridden by "
-                                     "newly written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  iface->raise (container, actor, sibling);
-}
-
-/**
- * clutter_container_lower_child:
- * @container: a #ClutterContainer
- * @actor: the actor to raise
- * @sibling: (allow-none): the sibling to lower to, or %NULL to lower
- *   to the bottom
- *
- * Lowers @actor to @sibling level, in the depth ordering.
- *
- * This function calls the #ClutterContainerIface.lower() virtual function,
- * which has been deprecated. The default implementation will call
- * clutter_actor_set_child_below_sibling().
- *
- * Virtual: lower
- *
- * Since: 0.6
- *
- * Deprecated: 1.10: Use clutter_actor_set_child_below_sibling() instead.
- */
-void
-clutter_container_lower_child (ClutterContainer *container,
-                               ClutterActor     *actor,
-                               ClutterActor     *sibling)
-{
-  ClutterContainerIface *iface;
-  ClutterActor *self;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-  g_return_if_fail (CLUTTER_IS_ACTOR (actor));
-  g_return_if_fail (sibling == NULL || CLUTTER_IS_ACTOR (sibling));
-
-  if (actor == sibling)
-    return;
-
-  self = CLUTTER_ACTOR (container);
-
-  if (clutter_actor_get_parent (actor) != self)
-    {
-      g_warning ("Actor of type '%s' is not a child of the container "
-                 "of type '%s'",
-                 g_type_name (G_OBJECT_TYPE (actor)),
-                 g_type_name (G_OBJECT_TYPE (container)));
-      return;
-    }
-
-  if (sibling != NULL&&
-      clutter_actor_get_parent (sibling) != self)
-    {
-      g_warning ("Actor of type '%s' is not a child of the container "
-                 "of type '%s'",
-                 g_type_name (G_OBJECT_TYPE (sibling)),
-                 g_type_name (G_OBJECT_TYPE (container)));
-      return;
-    }
-
-  iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      if (iface->lower != container_real_lower)
-        _clutter_diagnostic_message ("The ClutterContainer::lower() "
-                                     "virtual function has been deprecated "
-                                     "and it should not be overridden by "
-                                     "newly written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  iface->lower (container, actor, sibling);
-}
-
-/**
- * clutter_container_sort_depth_order:
- * @container: a #ClutterContainer
- *
- * Sorts a container's children using their depth. This function should not
- * be normally used by applications.
- *
- * Since: 0.6
- *
- * Deprecated: 1.10: The #ClutterContainerIface.sort_depth_order() virtual
- *   function should not be used any more; the default implementation in
- *   #ClutterContainer does not do anything.
- */
-void
-clutter_container_sort_depth_order (ClutterContainer *container)
-{
-  ClutterContainerIface *iface;
-
-  g_return_if_fail (CLUTTER_IS_CONTAINER (container));
-
-  iface = CLUTTER_CONTAINER_GET_IFACE (container);
-
-#ifdef CLUTTER_ENABLE_DEBUG
-  if (G_UNLIKELY (_clutter_diagnostic_enabled ()))
-    {
-      if (iface->sort_depth_order != container_real_sort_depth_order)
-        _clutter_diagnostic_message ("The ClutterContainer::sort_depth_order() "
-                                     "virtual function has been deprecated "
-                                     "and it should not be overridden by "
-                                     "newly written code");
-    }
-#endif /* CLUTTER_ENABLE_DEBUG */
-
-  iface->sort_depth_order (container);
-}
-
-/**
- * clutter_container_find_child_by_name:
- * @container: a #ClutterContainer
- * @child_name: the name of the requested child.
- *
- * Finds a child actor of a container by its name. Search recurses
- * into any child container.
- *
- * Return value: (transfer none): The child actor with the requested name,
- *   or %NULL if no actor with that name was found.
- *
- * Since: 0.6
- */
-ClutterActor *
-clutter_container_find_child_by_name (ClutterContainer *container,
-                                      const gchar      *child_name)
-{
-  GList        *children;
-  GList        *iter;
-  ClutterActor *actor = NULL;
-
-  g_return_val_if_fail (CLUTTER_IS_CONTAINER (container), NULL);
-  g_return_val_if_fail (child_name != NULL, NULL);
-
-  children = clutter_container_get_children (container);
-
-  for (iter = children; iter; iter = g_list_next (iter))
-    {
-      ClutterActor *a;
-      const gchar  *iter_name;
-
-      a = CLUTTER_ACTOR (iter->data);
-      iter_name = clutter_actor_get_name (a);
-
-      if (iter_name && !strcmp (iter_name, child_name))
-        {
-          actor = a;
-          break;
-        }
-
-      if (CLUTTER_IS_CONTAINER (a))
-        {
-          ClutterContainer *c = CLUTTER_CONTAINER (a);
-
-          actor = clutter_container_find_child_by_name (c, child_name);
-          if (actor)
-            break;
-       }
-    }
-
-  g_list_free (children);
-
-  return actor;
-}
-
 static ClutterChildMeta *
 get_child_meta (ClutterContainer *container,
                 ClutterActor     *actor)
diff --git a/clutter/clutter-container.h b/clutter/clutter-container.h
index b7e3f2b..4673009 100644
--- a/clutter/clutter-container.h
+++ b/clutter/clutter-container.h
@@ -55,25 +55,6 @@ typedef struct _ClutterContainerIface   ClutterContainerIface;
 
 /**
  * ClutterContainerIface:
- * @add: virtual function for adding an actor to the container. This virtual
- *   function is deprecated, and it should not be overridden.
- * @remove: virtual function for removing an actor from the container. This
- *   virtual function is deprecated, and it should not be overridden.
- * @foreach: virtual function for iterating over the container's children.
- *   This virtual function is deprecated, and it should not be overridden.
- * @foreach_with_internals: virtual functions for iterating over the
- *   container's children, both added using the #ClutterContainer API
- *   and internal children. The implementation of this virtual function
- *   is required only if the #ClutterContainer implementation has
- *   internal children. This virtual function is deprecated, and it should
- *   not be overridden.
- * @raise: virtual function for raising a child. This virtual function is
- *   deprecated and it should not be overridden.
- * @lower: virtual function for lowering a child. This virtual function is
- *   deprecated and it should not be overridden.
- * @sort_depth_order: virtual function for sorting the children of a
- *   container depending on their depth. This virtual function is deprecated
- *   and it should not be overridden.
  * @child_meta_type: The GType used for storing auxiliary information about
  *   each of the containers children.
  * @create_child_meta: virtual function that gets called for each added
@@ -100,27 +81,6 @@ struct _ClutterContainerIface
   GTypeInterface g_iface;
 
   /*< public >*/
-  void (* add)              (ClutterContainer *container,
-                             ClutterActor     *actor);
-  void (* remove)           (ClutterContainer *container,
-                             ClutterActor     *actor);
-  void (* foreach)          (ClutterContainer *container,
-                             ClutterCallback   callback,
-                             gpointer          user_data);
-
-  void (* foreach_with_internals) (ClutterContainer *container,
-                                   ClutterCallback   callback,
-                                   gpointer          user_data);
-
-  /* child stacking */
-  void (* raise)            (ClutterContainer *container,
-                             ClutterActor     *actor,
-                             ClutterActor     *sibling);
-  void (* lower)            (ClutterContainer *container,
-                             ClutterActor     *actor,
-                             ClutterActor     *sibling);
-  void (* sort_depth_order) (ClutterContainer *container);
-
   /* ClutterChildMeta management */
   GType                child_meta_type;
   void              (* create_child_meta)  (ClutterContainer *container,
@@ -141,43 +101,40 @@ struct _ClutterContainerIface
                           GParamSpec       *pspec);
 };
 
-GType         clutter_container_get_type         (void) G_GNUC_CONST;
-
-ClutterActor *clutter_container_find_child_by_name     (ClutterContainer *container,
-                                                        const gchar      *child_name);
-
-GParamSpec *      clutter_container_class_find_child_property   (GObjectClass     *klass,
-                                                                 const gchar      *property_name);
-GParamSpec **     clutter_container_class_list_child_properties (GObjectClass     *klass,
-                                                                 guint            *n_properties);
-
-void              clutter_container_create_child_meta           (ClutterContainer *container,
-                                                                 ClutterActor     *actor);
-void              clutter_container_destroy_child_meta          (ClutterContainer *container,
-                                                                 ClutterActor     *actor);
-ClutterChildMeta *clutter_container_get_child_meta              (ClutterContainer *container,
-                                                                 ClutterActor     *actor);
-
-void              clutter_container_child_set_property          (ClutterContainer *container,
-                                                                 ClutterActor     *child,
-                                                                 const gchar      * property,
-                                                                 const GValue     *value);
-void              clutter_container_child_get_property          (ClutterContainer *container,
-                                                                 ClutterActor     *child,
-                                                                 const gchar      *property,
-                                                                 GValue           *value);
-void              clutter_container_child_set                   (ClutterContainer *container,
-                                                                 ClutterActor     *actor,
-                                                                 const gchar      *first_prop,
-                                                                 ...) G_GNUC_NULL_TERMINATED;
-void              clutter_container_child_get                   (ClutterContainer *container,
-                                                                 ClutterActor     *actor,
-                                                                 const gchar      *first_prop,
-                                                                 ...) G_GNUC_NULL_TERMINATED;
-
-void              clutter_container_child_notify                (ClutterContainer *container,
-                                                                 ClutterActor     *child,
-                                                                 GParamSpec       *pspec);
+GType clutter_container_get_type (void) G_GNUC_CONST;
+
+GParamSpec *            clutter_container_class_find_child_property     (GObjectClass     *klass,
+                                                                         const gchar      *property_name);
+GParamSpec **           clutter_container_class_list_child_properties   (GObjectClass     *klass,
+                                                                         guint            *n_properties);
+
+void                    clutter_container_create_child_meta             (ClutterContainer *container,
+                                                                         ClutterActor     *actor);
+void                    clutter_container_destroy_child_meta            (ClutterContainer *container,
+                                                                         ClutterActor     *actor);
+ClutterChildMeta *      clutter_container_get_child_meta                (ClutterContainer *container,
+                                                                         ClutterActor     *actor);
+
+void                    clutter_container_child_set_property            (ClutterContainer *container,
+                                                                         ClutterActor     *child,
+                                                                         const gchar      * property,
+                                                                         const GValue     *value);
+void                    clutter_container_child_get_property            (ClutterContainer *container,
+                                                                         ClutterActor     *child,
+                                                                         const gchar      *property,
+                                                                         GValue           *value);
+void                    clutter_container_child_set                     (ClutterContainer *container,
+                                                                         ClutterActor     *actor,
+                                                                         const gchar      *first_prop,
+                                                                         ...) G_GNUC_NULL_TERMINATED;
+void                    clutter_container_child_get                     (ClutterContainer *container,
+                                                                         ClutterActor     *actor,
+                                                                         const gchar      *first_prop,
+                                                                         ...) G_GNUC_NULL_TERMINATED;
+
+void                    clutter_container_child_notify                  (ClutterContainer *container,
+                                                                         ClutterActor     *child,
+                                                                         GParamSpec       *pspec);
 
 G_END_DECLS
 
diff --git a/clutter/clutter-stage.c b/clutter/clutter-stage.c
index cec955d..322fcfb 100644
--- a/clutter/clutter-stage.c
+++ b/clutter/clutter-stage.c
@@ -79,11 +79,7 @@
 
 #include "cogl/cogl.h"
 
-static void clutter_container_iface_init (ClutterContainerIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (ClutterStage, clutter_stage, CLUTTER_TYPE_ACTOR,
-                         G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
-                                                clutter_container_iface_init))
+G_DEFINE_TYPE (ClutterStage, clutter_stage, CLUTTER_TYPE_ACTOR)
 
 #define CLUTTER_STAGE_GET_PRIVATE(obj) \
 (G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_STAGE, ClutterStagePrivate))
@@ -211,70 +207,6 @@ static void _clutter_stage_maybe_finish_queue_redraws (ClutterStage *stage);
 static void free_queue_redraw_entry (ClutterStageQueueRedrawEntry *entry);
 
 static void
-clutter_stage_real_add (ClutterContainer *container,
-                        ClutterActor     *child)
-{
-  clutter_actor_add_child (CLUTTER_ACTOR (container), child);
-}
-
-static void
-clutter_stage_real_remove (ClutterContainer *container,
-                           ClutterActor     *child)
-{
-  clutter_actor_remove_child (CLUTTER_ACTOR (container), child);
-}
-
-static void
-clutter_stage_real_foreach (ClutterContainer *container,
-                            ClutterCallback   callback,
-                            gpointer          user_data)
-{
-  ClutterActorIter iter;
-  ClutterActor *child;
-
-  clutter_actor_iter_init (&iter, CLUTTER_ACTOR (container));
-
-  while (clutter_actor_iter_next (&iter, &child))
-    callback (child, user_data);
-}
-
-static void
-clutter_stage_real_raise (ClutterContainer *container,
-                          ClutterActor     *child,
-                          ClutterActor     *sibling)
-{
-  clutter_actor_set_child_above_sibling (CLUTTER_ACTOR (container),
-                                         child,
-                                         sibling);
-}
-
-static void
-clutter_stage_real_lower (ClutterContainer *container,
-                          ClutterActor     *child,
-                          ClutterActor     *sibling)
-{
-  clutter_actor_set_child_below_sibling (CLUTTER_ACTOR (container),
-                                         child,
-                                         sibling);
-}
-
-static void
-clutter_stage_real_sort_depth_order (ClutterContainer *container)
-{
-}
-
-static void
-clutter_container_iface_init (ClutterContainerIface *iface)
-{
-  iface->add = clutter_stage_real_add;
-  iface->remove = clutter_stage_real_remove;
-  iface->foreach = clutter_stage_real_foreach;
-  iface->raise = clutter_stage_real_raise;
-  iface->lower = clutter_stage_real_lower;
-  iface->sort_depth_order = clutter_stage_real_sort_depth_order;
-}
-
-static void
 clutter_stage_get_preferred_width (ClutterActor *self,
                                    gfloat        for_height,
                                    gfloat       *min_width_p,
diff --git a/clutter/clutter-table-layout.c b/clutter/clutter-table-layout.c
index 9927ad5..eff66f0 100644
--- a/clutter/clutter-table-layout.c
+++ b/clutter/clutter-table-layout.c
@@ -1896,7 +1896,7 @@ clutter_table_layout_pack (ClutterTableLayout  *layout,
 
   update_row_col (CLUTTER_TABLE_LAYOUT (layout), priv->container);
 
-  clutter_container_add_actor (priv->container, actor);
+  clutter_actor_add_child (CLUTTER_ACTOR (priv->container), actor);
 
   manager = CLUTTER_LAYOUT_MANAGER (layout);
   meta = clutter_layout_manager_get_child_meta (manager,



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