static void champlain_group_real_add (ClutterContainer *container, ClutterActor *actor) { ChamplainGroupPrivate *priv = CHAMPLAIN_GROUP (container)->priv; g_object_ref (actor); if (priv->children_end) { priv->children_end = g_list_append (priv->children_end, actor); priv->children_end = g_list_next (priv->children_end); } else { priv->children = g_list_append (priv->children, actor); priv->children_end = priv->children; } clutter_actor_set_parent (actor, CLUTTER_ACTOR (container)); /* queue a relayout, to get the correct positioning inside * the ::actor-added signal handlers */ clutter_actor_queue_relayout (CLUTTER_ACTOR (container)); g_signal_emit_by_name (container, "actor-added", actor); clutter_container_sort_depth_order (container); g_object_unref (actor); }
static VALUE rbclt_container_sort_depth_order (VALUE self) { ClutterContainer *container = CLUTTER_CONTAINER (RVAL2GOBJ (self)); clutter_container_sort_depth_order (container); return self; }
/* ClutterContainer methods */ static void tweet_overlay_add (ClutterContainer *container, ClutterActor *actor) { TweetOverlayPrivate *priv = TWEET_OVERLAY (container)->priv; priv->children = g_list_append (priv->children, actor); clutter_actor_set_parent (actor, CLUTTER_ACTOR (container)); g_signal_emit_by_name (container, "actor-added", actor); clutter_container_sort_depth_order (container); }
static void tweet_overlay_remove (ClutterContainer *container, ClutterActor *actor) { TweetOverlayPrivate *priv = TWEET_OVERLAY (container)->priv; g_object_ref (actor); priv->children = g_list_remove (priv->children, actor); clutter_actor_unparent (actor); g_signal_emit_by_name (container, "actor-removed", actor); clutter_container_sort_depth_order (container); g_object_unref (actor); }
static void clutter_group_real_add (ClutterContainer *container, ClutterActor *actor) { ClutterGroupPrivate *priv = CLUTTER_GROUP (container)->priv; g_object_ref (actor); priv->children = g_list_append (priv->children, actor); clutter_actor_set_parent (actor, CLUTTER_ACTOR (container)); clutter_actor_queue_relayout (CLUTTER_ACTOR (container)); g_signal_emit_by_name (container, "actor-added", actor); clutter_container_sort_depth_order (container); g_object_unref (actor); }
static void clutter_group_real_actor_added (ClutterContainer *container, ClutterActor *actor) { ClutterGroupPrivate *priv = CLUTTER_GROUP (container)->priv; /* XXX - children added using clutter_actor_add_child() will * cause actor-added to be emitted without going through the * add() virtual function. * * if we get an actor-added for a child that is not in our * list of children already, then we go in compatibility * mode. */ if (g_list_find (priv->children, actor) != NULL) return; priv->children = g_list_append (priv->children, actor); clutter_container_sort_depth_order (container); }
static void st_container_add (ClutterContainer *container, ClutterActor *actor) { StContainerPrivate *priv = ST_CONTAINER (container)->priv; g_object_ref (actor); priv->children = g_list_append (priv->children, actor); clutter_actor_add_child (CLUTTER_ACTOR (container), actor); /* queue a relayout, to get the correct positioning inside * the ::actor-added signal handlers */ clutter_actor_queue_relayout (CLUTTER_ACTOR (container)); g_signal_emit_by_name (container, "actor-added", actor); clutter_container_sort_depth_order (container); st_container_update_pseudo_classes (ST_CONTAINER (container)); g_object_unref (actor); }