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);
}
Example #2
0
static VALUE
rbclt_container_sort_depth_order (VALUE self)
{
  ClutterContainer *container = CLUTTER_CONTAINER (RVAL2GOBJ (self));
  clutter_container_sort_depth_order (container);
  return self;
}
Example #3
0
/* 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);
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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);
}
Example #7
0
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);
}