mirror of
https://github.com/brl/mutter.git
synced 2025-03-31 07:33:46 +00:00
clutter/actor: Remove deprecated clutter container foreach
This is deprecated, so replace it with ClutterActorIter or alternative funcs https://gitlab.gnome.org/GNOME/mutter/merge_requests/816
This commit is contained in:
parent
2773e8adf8
commit
d4ff5e2d31
clutter/clutter
cogl/tests/conform
@ -118,37 +118,6 @@ container_real_remove (ClutterContainer *container,
|
|||||||
clutter_actor_remove_child (CLUTTER_ACTOR (container), 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
|
static void
|
||||||
container_real_raise (ClutterContainer *container,
|
container_real_raise (ClutterContainer *container,
|
||||||
ClutterActor *child,
|
ClutterActor *child,
|
||||||
@ -243,7 +212,6 @@ clutter_container_default_init (ClutterContainerInterface *iface)
|
|||||||
|
|
||||||
iface->add = container_real_add;
|
iface->add = container_real_add;
|
||||||
iface->remove = container_real_remove;
|
iface->remove = container_real_remove;
|
||||||
iface->foreach = container_real_foreach;
|
|
||||||
iface->raise = container_real_raise;
|
iface->raise = container_real_raise;
|
||||||
iface->lower = container_real_lower;
|
iface->lower = container_real_lower;
|
||||||
iface->sort_depth_order = container_real_sort_depth_order;
|
iface->sort_depth_order = container_real_sort_depth_order;
|
||||||
@ -533,15 +501,6 @@ clutter_container_remove_valist (ClutterContainer *container,
|
|||||||
container_remove_valist (container, first_actor, var_args);
|
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:
|
* clutter_container_get_children:
|
||||||
* @container: a #ClutterContainer
|
* @container: a #ClutterContainer
|
||||||
@ -559,60 +518,9 @@ get_children_cb (ClutterActor *child,
|
|||||||
GList *
|
GList *
|
||||||
clutter_container_get_children (ClutterContainer *container)
|
clutter_container_get_children (ClutterContainer *container)
|
||||||
{
|
{
|
||||||
GList *retval;
|
|
||||||
|
|
||||||
g_return_val_if_fail (CLUTTER_IS_CONTAINER (container), NULL);
|
g_return_val_if_fail (CLUTTER_IS_CONTAINER (container), NULL);
|
||||||
|
|
||||||
retval = NULL;
|
return clutter_actor_get_children (CLUTTER_ACTOR (container));
|
||||||
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()).
|
|
||||||
*
|
|
||||||
* 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,8 +59,6 @@ typedef struct _ClutterContainerIface ClutterContainerIface;
|
|||||||
* function is deprecated, and it should not be overridden.
|
* function is deprecated, and it should not be overridden.
|
||||||
* @remove: virtual function for removing an actor from the container. This
|
* @remove: virtual function for removing an actor from the container. This
|
||||||
* virtual function is deprecated, and it should not be overridden.
|
* 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.
|
|
||||||
* @raise: virtual function for raising a child. This virtual function is
|
* @raise: virtual function for raising a child. This virtual function is
|
||||||
* deprecated and it should not be overridden.
|
* deprecated and it should not be overridden.
|
||||||
* @lower: virtual function for lowering a child. This virtual function is
|
* @lower: virtual function for lowering a child. This virtual function is
|
||||||
@ -82,7 +80,7 @@ typedef struct _ClutterContainerIface ClutterContainerIface;
|
|||||||
* @actor_removed: class handler for #ClutterContainer::actor-removed
|
* @actor_removed: class handler for #ClutterContainer::actor-removed
|
||||||
* @child_notify: class handler for #ClutterContainer::child-notify
|
* @child_notify: class handler for #ClutterContainer::child-notify
|
||||||
*
|
*
|
||||||
* Base interface for container actors. The @add, @remove and @foreach
|
* Base interface for container actors. The @add and @remove
|
||||||
* virtual functions must be provided by any implementation; the other
|
* virtual functions must be provided by any implementation; the other
|
||||||
* virtual functions are optional.
|
* virtual functions are optional.
|
||||||
*
|
*
|
||||||
@ -98,9 +96,6 @@ struct _ClutterContainerIface
|
|||||||
ClutterActor *actor);
|
ClutterActor *actor);
|
||||||
void (* remove) (ClutterContainer *container,
|
void (* remove) (ClutterContainer *container,
|
||||||
ClutterActor *actor);
|
ClutterActor *actor);
|
||||||
void (* foreach) (ClutterContainer *container,
|
|
||||||
ClutterCallback callback,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
/* child stacking */
|
/* child stacking */
|
||||||
void (* raise) (ClutterContainer *container,
|
void (* raise) (ClutterContainer *container,
|
||||||
|
@ -249,20 +249,6 @@ clutter_stage_real_remove (ClutterContainer *container,
|
|||||||
clutter_actor_remove_child (CLUTTER_ACTOR (container), 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
|
static void
|
||||||
clutter_stage_real_raise (ClutterContainer *container,
|
clutter_stage_real_raise (ClutterContainer *container,
|
||||||
ClutterActor *child,
|
ClutterActor *child,
|
||||||
@ -293,7 +279,6 @@ clutter_container_iface_init (ClutterContainerIface *iface)
|
|||||||
{
|
{
|
||||||
iface->add = clutter_stage_real_add;
|
iface->add = clutter_stage_real_add;
|
||||||
iface->remove = clutter_stage_real_remove;
|
iface->remove = clutter_stage_real_remove;
|
||||||
iface->foreach = clutter_stage_real_foreach;
|
|
||||||
iface->raise = clutter_stage_real_raise;
|
iface->raise = clutter_stage_real_raise;
|
||||||
iface->lower = clutter_stage_real_lower;
|
iface->lower = clutter_stage_real_lower;
|
||||||
iface->sort_depth_order = clutter_stage_real_sort_depth_order;
|
iface->sort_depth_order = clutter_stage_real_sort_depth_order;
|
||||||
|
@ -65,11 +65,6 @@ void clutter_container_remove_valist (ClutterContaine
|
|||||||
CLUTTER_DEPRECATED_FOR(clutter_actor_get_children)
|
CLUTTER_DEPRECATED_FOR(clutter_actor_get_children)
|
||||||
GList * clutter_container_get_children (ClutterContainer *container);
|
GList * clutter_container_get_children (ClutterContainer *container);
|
||||||
|
|
||||||
CLUTTER_DEPRECATED
|
|
||||||
void clutter_container_foreach (ClutterContainer *container,
|
|
||||||
ClutterCallback callback,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
CLUTTER_DEPRECATED_FOR(clutter_actor_set_child_above_sibling)
|
CLUTTER_DEPRECATED_FOR(clutter_actor_set_child_above_sibling)
|
||||||
void clutter_container_raise_child (ClutterContainer *container,
|
void clutter_container_raise_child (ClutterContainer *container,
|
||||||
ClutterActor *actor,
|
ClutterActor *actor,
|
||||||
|
@ -170,20 +170,6 @@ clutter_group_real_actor_removed (ClutterContainer *container,
|
|||||||
priv->children = g_list_remove (priv->children, actor);
|
priv->children = g_list_remove (priv->children, actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
clutter_group_real_foreach (ClutterContainer *container,
|
|
||||||
ClutterCallback callback,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
ClutterGroupPrivate *priv = CLUTTER_GROUP (container)->priv;
|
|
||||||
|
|
||||||
/* Using g_list_foreach instead of iterating the list manually
|
|
||||||
because it has better protection against the current node being
|
|
||||||
removed. This will happen for example if someone calls
|
|
||||||
clutter_container_foreach(container, clutter_actor_destroy) */
|
|
||||||
g_list_foreach (priv->children, (GFunc) callback, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_group_real_raise (ClutterContainer *container,
|
clutter_group_real_raise (ClutterContainer *container,
|
||||||
ClutterActor *actor,
|
ClutterActor *actor,
|
||||||
@ -285,7 +271,6 @@ clutter_container_iface_init (ClutterContainerIface *iface)
|
|||||||
iface->actor_added = clutter_group_real_actor_added;
|
iface->actor_added = clutter_group_real_actor_added;
|
||||||
iface->remove = clutter_group_real_remove;
|
iface->remove = clutter_group_real_remove;
|
||||||
iface->actor_removed = clutter_group_real_actor_removed;
|
iface->actor_removed = clutter_group_real_actor_removed;
|
||||||
iface->foreach = clutter_group_real_foreach;
|
|
||||||
iface->raise = clutter_group_real_raise;
|
iface->raise = clutter_group_real_raise;
|
||||||
iface->lower = clutter_group_real_lower;
|
iface->lower = clutter_group_real_lower;
|
||||||
iface->sort_depth_order = clutter_group_real_sort_depth_order;
|
iface->sort_depth_order = clutter_group_real_sort_depth_order;
|
||||||
@ -391,21 +376,28 @@ clutter_group_dispose (GObject *object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_group_real_show_all (ClutterActor *actor)
|
clutter_group_real_show_all (ClutterActor *self)
|
||||||
{
|
{
|
||||||
clutter_container_foreach (CLUTTER_CONTAINER (actor),
|
ClutterActorIter iter;
|
||||||
CLUTTER_CALLBACK (clutter_actor_show),
|
ClutterActor *actor;
|
||||||
NULL);
|
|
||||||
clutter_actor_show (actor);
|
clutter_actor_iter_init (&iter, self);
|
||||||
|
while (clutter_actor_iter_next (&iter, &actor))
|
||||||
|
clutter_actor_show (actor);
|
||||||
|
|
||||||
|
clutter_actor_show (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_group_real_hide_all (ClutterActor *actor)
|
clutter_group_real_hide_all (ClutterActor *actor)
|
||||||
{
|
{
|
||||||
|
ClutterActorIter iter;
|
||||||
|
|
||||||
clutter_actor_hide (actor);
|
clutter_actor_hide (actor);
|
||||||
clutter_container_foreach (CLUTTER_CONTAINER (actor),
|
|
||||||
CLUTTER_CALLBACK (clutter_actor_hide),
|
clutter_actor_iter_init (&iter, actor);
|
||||||
NULL);
|
while (clutter_actor_iter_next (&iter, &actor))
|
||||||
|
clutter_actor_hide (actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -152,6 +152,8 @@ test_readpixels (TestUtilsGTestFixture *fixture,
|
|||||||
{
|
{
|
||||||
unsigned int idle_source;
|
unsigned int idle_source;
|
||||||
ClutterActor *stage;
|
ClutterActor *stage;
|
||||||
|
ClutterActorIter iter;
|
||||||
|
ClutterActor *actor;
|
||||||
|
|
||||||
stage = clutter_stage_get_default ();
|
stage = clutter_stage_get_default ();
|
||||||
clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color);
|
clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color);
|
||||||
@ -168,9 +170,7 @@ test_readpixels (TestUtilsGTestFixture *fixture,
|
|||||||
g_source_remove (idle_source);
|
g_source_remove (idle_source);
|
||||||
|
|
||||||
/* Remove all of the actors from the stage */
|
/* Remove all of the actors from the stage */
|
||||||
clutter_container_foreach (CLUTTER_CONTAINER (stage),
|
clutter_actor_remove_all_children (stage);
|
||||||
(ClutterCallback) clutter_actor_destroy,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (cogl_test_verbose ())
|
if (cogl_test_verbose ())
|
||||||
g_print ("OK\n");
|
g_print ("OK\n");
|
||||||
|
@ -406,9 +406,7 @@ test_viewport (TestUtilsGTestFixture *fixture,
|
|||||||
g_source_remove (idle_source);
|
g_source_remove (idle_source);
|
||||||
|
|
||||||
/* Remove all of the actors from the stage */
|
/* Remove all of the actors from the stage */
|
||||||
clutter_container_foreach (CLUTTER_CONTAINER (stage),
|
clutter_actor_remove_all_children (stage);
|
||||||
(ClutterCallback) clutter_actor_destroy,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (cogl_test_verbose ())
|
if (cogl_test_verbose ())
|
||||||
g_print ("OK\n");
|
g_print ("OK\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user