void
mnb_fancy_bin_set_child (MnbFancyBin *bin, ClutterActor *child)
{
  MnbFancyBinPrivate *priv = bin->priv;

  if (priv->real_child)
    {
      clutter_clone_set_source (CLUTTER_CLONE (priv->child), NULL);
      clutter_clone_set_source (CLUTTER_CLONE (priv->clone), NULL);
      clutter_actor_remove_child (clutter_actor_get_parent(priv->real_child), priv->real_child);
    }

  priv->real_child = child;

  if (priv->real_child)
    {
	  clutter_actor_add_child(CLUTTER_ACTOR (bin), priv->real_child);
      clutter_clone_set_source (CLUTTER_CLONE (priv->child), priv->real_child);
      clutter_clone_set_source (CLUTTER_CLONE (priv->clone), priv->real_child);
    }

  clutter_actor_queue_relayout (CLUTTER_ACTOR (bin));
}
예제 #2
0
static void
clutter_clone_set_property (GObject      *gobject,
                            guint         prop_id,
                            const GValue *value,
                            GParamSpec   *pspec)
{
  ClutterClone *self = CLUTTER_CLONE (gobject);

  switch (prop_id)
    {
    case PROP_SOURCE:
      clutter_clone_set_source (self, g_value_get_object (value));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
  }
}