Avoid the shadowing of 'clone'
The clone() call can creep into the build environment, so it's a good thing to avoid using 'clone' as a variable name.
This commit is contained in:
parent
b240b95a97
commit
a18a8a3ae2
@ -154,19 +154,17 @@ clutter_clone_apply_transform (ClutterActor *self, CoglMatrix *matrix)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_clone_paint (ClutterActor *self)
|
clutter_clone_paint (ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterClone *clone = CLUTTER_CLONE (self);
|
ClutterClone *self = CLUTTER_CLONE (actor);
|
||||||
ClutterClonePrivate *priv = clone->priv;
|
ClutterClonePrivate *priv = self->priv;
|
||||||
gboolean was_unmapped = FALSE;
|
gboolean was_unmapped = FALSE;
|
||||||
|
|
||||||
if (priv->clone_source == NULL)
|
if (priv->clone_source == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CLUTTER_NOTE (PAINT,
|
CLUTTER_NOTE (PAINT, "painting clone actor '%s'",
|
||||||
"painting clone actor '%s'",
|
_clutter_actor_get_debug_name (actor));
|
||||||
clutter_actor_get_name (self) ? clutter_actor_get_name (self)
|
|
||||||
: "unknown");
|
|
||||||
|
|
||||||
/* The final bits of magic:
|
/* The final bits of magic:
|
||||||
* - We need to override the paint opacity of the actor with our own
|
* - We need to override the paint opacity of the actor with our own
|
||||||
@ -178,7 +176,7 @@ clutter_clone_paint (ClutterActor *self)
|
|||||||
*/
|
*/
|
||||||
_clutter_actor_set_in_clone_paint (priv->clone_source, TRUE);
|
_clutter_actor_set_in_clone_paint (priv->clone_source, TRUE);
|
||||||
_clutter_actor_set_opacity_override (priv->clone_source,
|
_clutter_actor_set_opacity_override (priv->clone_source,
|
||||||
clutter_actor_get_paint_opacity (self));
|
clutter_actor_get_paint_opacity (actor));
|
||||||
_clutter_actor_set_enable_model_view_transform (priv->clone_source, FALSE);
|
_clutter_actor_set_enable_model_view_transform (priv->clone_source, FALSE);
|
||||||
|
|
||||||
if (!CLUTTER_ACTOR_IS_MAPPED (priv->clone_source))
|
if (!CLUTTER_ACTOR_IS_MAPPED (priv->clone_source))
|
||||||
@ -200,10 +198,10 @@ clutter_clone_paint (ClutterActor *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
clutter_clone_get_paint_volume (ClutterActor *self,
|
clutter_clone_get_paint_volume (ClutterActor *actor,
|
||||||
ClutterPaintVolume *volume)
|
ClutterPaintVolume *volume)
|
||||||
{
|
{
|
||||||
ClutterClonePrivate *priv = CLUTTER_CLONE (self)->priv;
|
ClutterClonePrivate *priv = CLUTTER_CLONE (actor)->priv;
|
||||||
const ClutterPaintVolume *source_volume;
|
const ClutterPaintVolume *source_volume;
|
||||||
|
|
||||||
/* if the source is not set the paint volume is defined to be empty */
|
/* if the source is not set the paint volume is defined to be empty */
|
||||||
@ -213,18 +211,19 @@ clutter_clone_get_paint_volume (ClutterActor *self,
|
|||||||
/* query the volume of the source actor and simply masquarade it as
|
/* query the volume of the source actor and simply masquarade it as
|
||||||
* the clones volume... */
|
* the clones volume... */
|
||||||
source_volume = clutter_actor_get_paint_volume (priv->clone_source);
|
source_volume = clutter_actor_get_paint_volume (priv->clone_source);
|
||||||
if (!source_volume)
|
if (source_volume == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
_clutter_paint_volume_set_from_volume (volume, source_volume);
|
_clutter_paint_volume_set_from_volume (volume, source_volume);
|
||||||
_clutter_paint_volume_set_reference_actor (volume, self);
|
_clutter_paint_volume_set_reference_actor (volume, actor);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
clutter_clone_has_overlaps (ClutterActor *self)
|
clutter_clone_has_overlaps (ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterClonePrivate *priv = CLUTTER_CLONE (self)->priv;
|
ClutterClonePrivate *priv = CLUTTER_CLONE (actor)->priv;
|
||||||
|
|
||||||
/* The clone has overlaps iff the source has overlaps */
|
/* The clone has overlaps iff the source has overlaps */
|
||||||
|
|
||||||
@ -249,15 +248,21 @@ clutter_clone_allocate (ClutterActor *self,
|
|||||||
if (priv->clone_source == NULL)
|
if (priv->clone_source == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* XXX - this is wrong: ClutterClone cannot clone unparented
|
||||||
|
* actors, as it will break all invariants
|
||||||
|
*/
|
||||||
|
|
||||||
/* we act like a "foster parent" for the source we are cloning;
|
/* we act like a "foster parent" for the source we are cloning;
|
||||||
* if the source has not been parented we have to force an
|
* if the source has not been parented we have to force an
|
||||||
* allocation on it, so that we can paint it correctly from
|
* allocation on it, so that we can paint it correctly from
|
||||||
* within out paint() implementation. since the actor does not
|
* within our paint() implementation. since the actor does not
|
||||||
* have a parent, and thus it won't be painted by the usual
|
* have a parent, and thus it won't be painted by the usual
|
||||||
* paint cycle, we can safely give it as much size as it requires
|
* paint cycle, we can safely give it as much size as it requires
|
||||||
*/
|
*/
|
||||||
if (clutter_actor_get_parent (priv->clone_source) == NULL)
|
if (clutter_actor_get_parent (priv->clone_source) == NULL)
|
||||||
clutter_actor_allocate_preferred_size (priv->clone_source, flags);
|
clutter_actor_allocate_preferred_size (priv->clone_source, flags);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -266,12 +271,12 @@ clutter_clone_set_property (GObject *gobject,
|
|||||||
const GValue *value,
|
const GValue *value,
|
||||||
GParamSpec *pspec)
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
ClutterClone *clone = CLUTTER_CLONE (gobject);
|
ClutterClone *self = CLUTTER_CLONE (gobject);
|
||||||
|
|
||||||
switch (prop_id)
|
switch (prop_id)
|
||||||
{
|
{
|
||||||
case PROP_SOURCE:
|
case PROP_SOURCE:
|
||||||
clutter_clone_set_source (clone, g_value_get_object (value));
|
clutter_clone_set_source (self, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -343,9 +348,7 @@ clutter_clone_class_init (ClutterCloneClass *klass)
|
|||||||
G_PARAM_CONSTRUCT |
|
G_PARAM_CONSTRUCT |
|
||||||
CLUTTER_PARAM_READWRITE);
|
CLUTTER_PARAM_READWRITE);
|
||||||
|
|
||||||
g_object_class_install_properties (gobject_class,
|
g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
|
||||||
PROP_LAST,
|
|
||||||
obj_props);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -377,84 +380,84 @@ clutter_clone_new (ClutterActor *source)
|
|||||||
static void
|
static void
|
||||||
clone_source_queue_redraw_cb (ClutterActor *source,
|
clone_source_queue_redraw_cb (ClutterActor *source,
|
||||||
ClutterActor *origin,
|
ClutterActor *origin,
|
||||||
ClutterClone *clone)
|
ClutterClone *self)
|
||||||
{
|
{
|
||||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (clone));
|
clutter_actor_queue_redraw (CLUTTER_ACTOR (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clone_source_queue_relayout_cb (ClutterActor *source,
|
clone_source_queue_relayout_cb (ClutterActor *source,
|
||||||
ClutterClone *clone)
|
ClutterClone *self)
|
||||||
{
|
{
|
||||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (clone));
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_clone_set_source_internal (ClutterClone *clone,
|
clutter_clone_set_source_internal (ClutterClone *self,
|
||||||
ClutterActor *source)
|
ClutterActor *source)
|
||||||
{
|
{
|
||||||
ClutterClonePrivate *priv = clone->priv;
|
ClutterClonePrivate *priv = self->priv;
|
||||||
|
|
||||||
if (priv->clone_source)
|
if (priv->clone_source != NULL)
|
||||||
{
|
{
|
||||||
g_signal_handlers_disconnect_by_func (priv->clone_source,
|
g_signal_handlers_disconnect_by_func (priv->clone_source,
|
||||||
(void *) clone_source_queue_redraw_cb,
|
G_CALLBACK (clone_source_queue_redraw_cb),
|
||||||
clone);
|
self);
|
||||||
g_signal_handlers_disconnect_by_func (priv->clone_source,
|
g_signal_handlers_disconnect_by_func (priv->clone_source,
|
||||||
(void *) clone_source_queue_relayout_cb,
|
G_CALLBACK (clone_source_queue_relayout_cb),
|
||||||
clone);
|
self);
|
||||||
g_object_unref (priv->clone_source);
|
g_object_unref (priv->clone_source);
|
||||||
priv->clone_source = NULL;
|
priv->clone_source = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source)
|
if (source != NULL)
|
||||||
{
|
{
|
||||||
priv->clone_source = g_object_ref (source);
|
priv->clone_source = g_object_ref (source);
|
||||||
g_signal_connect (priv->clone_source, "queue-redraw",
|
g_signal_connect (priv->clone_source, "queue-redraw",
|
||||||
G_CALLBACK (clone_source_queue_redraw_cb), clone);
|
G_CALLBACK (clone_source_queue_redraw_cb), self);
|
||||||
g_signal_connect (priv->clone_source, "queue-relayout",
|
g_signal_connect (priv->clone_source, "queue-relayout",
|
||||||
G_CALLBACK (clone_source_queue_relayout_cb), clone);
|
G_CALLBACK (clone_source_queue_relayout_cb), self);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (clone), obj_props[PROP_SOURCE]);
|
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_SOURCE]);
|
||||||
|
|
||||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (clone));
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_clone_set_source:
|
* clutter_clone_set_source:
|
||||||
* @clone: a #ClutterClone
|
* @self: a #ClutterClone
|
||||||
* @source: a #ClutterActor, or %NULL
|
* @source: (allow-none): a #ClutterActor, or %NULL
|
||||||
*
|
*
|
||||||
* Sets @source as the source actor to be cloned by @clone.
|
* Sets @source as the source actor to be cloned by @self.
|
||||||
*
|
*
|
||||||
* Since: 1.0
|
* Since: 1.0
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
clutter_clone_set_source (ClutterClone *clone,
|
clutter_clone_set_source (ClutterClone *self,
|
||||||
ClutterActor *source)
|
ClutterActor *source)
|
||||||
{
|
{
|
||||||
g_return_if_fail (CLUTTER_IS_CLONE (clone));
|
g_return_if_fail (CLUTTER_IS_CLONE (self));
|
||||||
g_return_if_fail (source == NULL || CLUTTER_IS_ACTOR (source));
|
g_return_if_fail (source == NULL || CLUTTER_IS_ACTOR (source));
|
||||||
|
|
||||||
clutter_clone_set_source_internal (clone, source);
|
clutter_clone_set_source_internal (self, source);
|
||||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (clone));
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_clone_get_source:
|
* clutter_clone_get_source:
|
||||||
* @clone: a #ClutterClone
|
* @self: a #ClutterClone
|
||||||
*
|
*
|
||||||
* Retrieves the source #ClutterActor being cloned by @clone
|
* Retrieves the source #ClutterActor being cloned by @self.
|
||||||
*
|
*
|
||||||
* Return value: (transfer none): the actor source for the clone
|
* Return value: (transfer none): the actor source for the clone
|
||||||
*
|
*
|
||||||
* Since: 1.0
|
* Since: 1.0
|
||||||
*/
|
*/
|
||||||
ClutterActor *
|
ClutterActor *
|
||||||
clutter_clone_get_source (ClutterClone *clone)
|
clutter_clone_get_source (ClutterClone *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (CLUTTER_IS_CLONE (clone), NULL);
|
g_return_val_if_fail (CLUTTER_IS_CLONE (self), NULL);
|
||||||
|
|
||||||
return clone->priv->clone_source;
|
return self->priv->clone_source;
|
||||||
}
|
}
|
||||||
|
@ -81,9 +81,9 @@ struct _ClutterCloneClass
|
|||||||
GType clutter_clone_get_type (void) G_GNUC_CONST;
|
GType clutter_clone_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
ClutterActor *clutter_clone_new (ClutterActor *source);
|
ClutterActor *clutter_clone_new (ClutterActor *source);
|
||||||
void clutter_clone_set_source (ClutterClone *clone,
|
void clutter_clone_set_source (ClutterClone *self,
|
||||||
ClutterActor *source);
|
ClutterActor *source);
|
||||||
ClutterActor *clutter_clone_get_source (ClutterClone *clone);
|
ClutterActor *clutter_clone_get_source (ClutterClone *self);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user