[mutter] clutter/actor-meta: Use G_DECLARE_DERIVABLE_TYPE
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] clutter/actor-meta: Use G_DECLARE_DERIVABLE_TYPE
- Date: Fri, 22 May 2020 09:16:00 +0000 (UTC)
commit 8c131b32b1ed5acb8d983f6bca3f1b5e2cdf7e91
Author: Jonas Dreßler <verdre v0yd nl>
Date: Mon Jul 15 11:51:29 2019 +0200
clutter/actor-meta: Use G_DECLARE_DERIVABLE_TYPE
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/788
clutter/clutter/clutter-actor-meta.c | 139 ++++++++++++++++++++++-----------
clutter/clutter/clutter-actor-meta.h | 31 ++------
clutter/clutter/clutter-autocleanups.h | 1 -
3 files changed, 100 insertions(+), 71 deletions(-)
---
diff --git a/clutter/clutter/clutter-actor-meta.c b/clutter/clutter/clutter-actor-meta.c
index f8811bea8..02bbc0135 100644
--- a/clutter/clutter/clutter-actor-meta.c
+++ b/clutter/clutter/clutter-actor-meta.c
@@ -81,38 +81,47 @@ static void
on_actor_destroy (ClutterActor *actor,
ClutterActorMeta *meta)
{
- meta->priv->actor = NULL;
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
+
+ priv->actor = NULL;
}
static void
clutter_actor_meta_real_set_actor (ClutterActorMeta *meta,
ClutterActor *actor)
{
- g_warn_if_fail (!meta->priv->actor ||
- !CLUTTER_ACTOR_IN_PAINT (meta->priv->actor));
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
+
+ g_warn_if_fail (!priv->actor ||
+ !CLUTTER_ACTOR_IN_PAINT (priv->actor));
g_warn_if_fail (!actor || !CLUTTER_ACTOR_IN_PAINT (actor));
- if (meta->priv->actor == actor)
+ if (priv->actor == actor)
return;
- g_clear_signal_handler (&meta->priv->destroy_id, meta->priv->actor);
+ g_clear_signal_handler (&priv->destroy_id, priv->actor);
- meta->priv->actor = actor;
+ priv->actor = actor;
- if (meta->priv->actor != NULL)
- meta->priv->destroy_id = g_signal_connect (meta->priv->actor, "destroy",
- G_CALLBACK (on_actor_destroy),
- meta);
+ if (priv->actor != NULL)
+ priv->destroy_id = g_signal_connect (priv->actor, "destroy",
+ G_CALLBACK (on_actor_destroy),
+ meta);
}
static void
clutter_actor_meta_real_set_enabled (ClutterActorMeta *meta,
gboolean is_enabled)
{
- g_warn_if_fail (!meta->priv->actor ||
- !CLUTTER_ACTOR_IN_PAINT (meta->priv->actor));
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
- meta->priv->is_enabled = is_enabled;
+ g_warn_if_fail (!priv->actor ||
+ !CLUTTER_ACTOR_IN_PAINT (priv->actor));
+
+ priv->is_enabled = is_enabled;
g_object_notify_by_pspec (G_OBJECT (meta), obj_props[PROP_ENABLED]);
}
@@ -147,20 +156,21 @@ clutter_actor_meta_get_property (GObject *gobject,
GValue *value,
GParamSpec *pspec)
{
- ClutterActorMeta *meta = CLUTTER_ACTOR_META (gobject);
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (CLUTTER_ACTOR_META (gobject));
switch (prop_id)
{
case PROP_ACTOR:
- g_value_set_object (value, meta->priv->actor);
+ g_value_set_object (value, priv->actor);
break;
case PROP_NAME:
- g_value_set_string (value, meta->priv->name);
+ g_value_set_string (value, priv->name);
break;
case PROP_ENABLED:
- g_value_set_boolean (value, meta->priv->is_enabled);
+ g_value_set_boolean (value, priv->is_enabled);
break;
default:
@@ -172,7 +182,8 @@ clutter_actor_meta_get_property (GObject *gobject,
static void
clutter_actor_meta_finalize (GObject *gobject)
{
- ClutterActorMetaPrivate *priv = CLUTTER_ACTOR_META (gobject)->priv;
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (CLUTTER_ACTOR_META (gobject));
if (priv->actor != NULL)
g_clear_signal_handler (&priv->destroy_id, priv->actor);
@@ -243,9 +254,11 @@ clutter_actor_meta_class_init (ClutterActorMetaClass *klass)
void
clutter_actor_meta_init (ClutterActorMeta *self)
{
- self->priv = clutter_actor_meta_get_instance_private (self);
- self->priv->is_enabled = TRUE;
- self->priv->priority = CLUTTER_ACTOR_META_PRIORITY_DEFAULT;
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (self);
+
+ priv->is_enabled = TRUE;
+ priv->priority = CLUTTER_ACTOR_META_PRIORITY_DEFAULT;
}
/**
@@ -263,13 +276,17 @@ void
clutter_actor_meta_set_name (ClutterActorMeta *meta,
const gchar *name)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_if_fail (CLUTTER_IS_ACTOR_META (meta));
- if (g_strcmp0 (meta->priv->name, name) == 0)
+ priv = clutter_actor_meta_get_instance_private (meta);
+
+ if (g_strcmp0 (priv->name, name) == 0)
return;
- g_free (meta->priv->name);
- meta->priv->name = g_strdup (name);
+ g_free (priv->name);
+ priv->name = g_strdup (name);
g_object_notify_by_pspec (G_OBJECT (meta), obj_props[PROP_NAME]);
}
@@ -290,9 +307,13 @@ clutter_actor_meta_set_name (ClutterActorMeta *meta,
const gchar *
clutter_actor_meta_get_name (ClutterActorMeta *meta)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_val_if_fail (CLUTTER_IS_ACTOR_META (meta), NULL);
- return meta->priv->name;
+ priv = clutter_actor_meta_get_instance_private (meta);
+
+ return priv->name;
}
/**
@@ -308,11 +329,14 @@ void
clutter_actor_meta_set_enabled (ClutterActorMeta *meta,
gboolean is_enabled)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_if_fail (CLUTTER_IS_ACTOR_META (meta));
+ priv = clutter_actor_meta_get_instance_private (meta);
is_enabled = !!is_enabled;
- if (meta->priv->is_enabled == is_enabled)
+ if (priv->is_enabled == is_enabled)
return;
CLUTTER_ACTOR_META_GET_CLASS (meta)->set_enabled (meta, is_enabled);
@@ -331,9 +355,13 @@ clutter_actor_meta_set_enabled (ClutterActorMeta *meta,
gboolean
clutter_actor_meta_get_enabled (ClutterActorMeta *meta)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_val_if_fail (CLUTTER_IS_ACTOR_META (meta), FALSE);
- return meta->priv->is_enabled;
+ priv = clutter_actor_meta_get_instance_private (meta);
+
+ return priv->is_enabled;
}
/*
@@ -369,40 +397,54 @@ _clutter_actor_meta_set_actor (ClutterActorMeta *meta,
ClutterActor *
clutter_actor_meta_get_actor (ClutterActorMeta *meta)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_val_if_fail (CLUTTER_IS_ACTOR_META (meta), NULL);
- return meta->priv->actor;
+ priv = clutter_actor_meta_get_instance_private (meta);
+
+ return priv->actor;
}
void
_clutter_actor_meta_set_priority (ClutterActorMeta *meta,
gint priority)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_if_fail (CLUTTER_IS_ACTOR_META (meta));
+ priv = clutter_actor_meta_get_instance_private (meta);
+
/* This property shouldn't be modified after the actor meta is in
use because ClutterMetaGroup doesn't resort the list when it
changes. If we made the priority public then we could either make
the priority a construct-only property or listen for
notifications on the property from the ClutterMetaGroup and
resort. */
- g_return_if_fail (meta->priv->actor == NULL);
+ g_return_if_fail (priv->actor == NULL);
- meta->priv->priority = priority;
+ priv->priority = priority;
}
gint
_clutter_actor_meta_get_priority (ClutterActorMeta *meta)
{
+ ClutterActorMetaPrivate *priv;
+
g_return_val_if_fail (CLUTTER_IS_ACTOR_META (meta), 0);
- return meta->priv->priority;
+ priv = clutter_actor_meta_get_instance_private (meta);
+
+ return priv->priority;
}
gboolean
_clutter_actor_meta_is_internal (ClutterActorMeta *meta)
{
- gint priority = meta->priv->priority;
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
+ gint priority = priv->priority;
return (priority <= CLUTTER_ACTOR_META_PRIORITY_INTERNAL_LOW ||
priority >= CLUTTER_ACTOR_META_PRIORITY_INTERNAL_HIGH);
@@ -449,19 +491,21 @@ void
_clutter_meta_group_add_meta (ClutterMetaGroup *group,
ClutterActorMeta *meta)
{
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
GList *prev = NULL, *l;
- if (meta->priv->actor != NULL)
+ if (priv->actor != NULL)
{
g_warning ("The meta of type '%s' with name '%s' is "
"already attached to actor '%s'",
G_OBJECT_TYPE_NAME (meta),
- meta->priv->name != NULL
- ? meta->priv->name
+ priv->name != NULL
+ ? priv->name
: "<unknown>",
- clutter_actor_get_name (meta->priv->actor) != NULL
- ? clutter_actor_get_name (meta->priv->actor)
- : G_OBJECT_TYPE_NAME (meta->priv->actor));
+ clutter_actor_get_name (priv->actor) != NULL
+ ? clutter_actor_get_name (priv->actor)
+ : G_OBJECT_TYPE_NAME (priv->actor));
return;
}
@@ -497,13 +541,16 @@ void
_clutter_meta_group_remove_meta (ClutterMetaGroup *group,
ClutterActorMeta *meta)
{
- if (meta->priv->actor != group->actor)
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
+
+ if (priv->actor != group->actor)
{
g_warning ("The meta of type '%s' with name '%s' is not "
"attached to the actor '%s'",
G_OBJECT_TYPE_NAME (meta),
- meta->priv->name != NULL
- ? meta->priv->name
+ priv->name != NULL
+ ? priv->name
: "<unknown>",
clutter_actor_get_name (group->actor) != NULL
? clutter_actor_get_name (group->actor)
@@ -646,8 +693,10 @@ _clutter_meta_group_get_meta (ClutterMetaGroup *group,
for (l = group->meta; l != NULL; l = l->next)
{
ClutterActorMeta *meta = l->data;
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
- if (g_strcmp0 (meta->priv->name, name) == 0)
+ if (g_strcmp0 (priv->name, name) == 0)
return meta;
}
@@ -667,6 +716,8 @@ _clutter_meta_group_get_meta (ClutterMetaGroup *group,
const gchar *
_clutter_actor_meta_get_debug_name (ClutterActorMeta *meta)
{
- return meta->priv->name != NULL ? meta->priv->name
- : G_OBJECT_TYPE_NAME (meta);
+ ClutterActorMetaPrivate *priv =
+ clutter_actor_meta_get_instance_private (meta);
+
+ return priv->name != NULL ? priv->name : G_OBJECT_TYPE_NAME (meta);
}
diff --git a/clutter/clutter/clutter-actor-meta.h b/clutter/clutter/clutter-actor-meta.h
index 27517fadf..ca337c90d 100644
--- a/clutter/clutter/clutter-actor-meta.h
+++ b/clutter/clutter/clutter-actor-meta.h
@@ -33,31 +33,13 @@
G_BEGIN_DECLS
-#define CLUTTER_TYPE_ACTOR_META (clutter_actor_meta_get_type ())
-#define CLUTTER_ACTOR_META(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ACTOR_META,
ClutterActorMeta))
-#define CLUTTER_IS_ACTOR_META(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ACTOR_META))
-#define CLUTTER_ACTOR_META_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ACTOR_META,
ClutterActorMetaClass))
-#define CLUTTER_IS_ACTOR_META_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ACTOR_META))
-#define CLUTTER_ACTOR_META_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ACTOR_META,
ClutterActorMetaClass))
+#define CLUTTER_TYPE_ACTOR_META (clutter_actor_meta_get_type ())
-typedef struct _ClutterActorMetaPrivate ClutterActorMetaPrivate;
-typedef struct _ClutterActorMetaClass ClutterActorMetaClass;
-
-/**
- * ClutterActorMeta:
- *
- * The #ClutterActorMeta structure contains only
- * private data and should be accessed using the provided API
- *
- * Since: 1.4
- */
-struct _ClutterActorMeta
-{
- /*< private >*/
- GInitiallyUnowned parent_instance;
+CLUTTER_EXPORT
+G_DECLARE_DERIVABLE_TYPE (ClutterActorMeta, clutter_actor_meta,
+ CLUTTER, ACTOR_META, GInitiallyUnowned);
- ClutterActorMetaPrivate *priv;
-};
+typedef struct _ClutterActorMetaPrivate ClutterActorMetaPrivate;
/**
* ClutterActorMetaClass:
@@ -99,9 +81,6 @@ struct _ClutterActorMetaClass
void (* _clutter_meta6) (void);
};
-CLUTTER_EXPORT
-GType clutter_actor_meta_get_type (void) G_GNUC_CONST;
-
CLUTTER_EXPORT
void clutter_actor_meta_set_name (ClutterActorMeta *meta,
const gchar *name);
diff --git a/clutter/clutter/clutter-autocleanups.h b/clutter/clutter/clutter-autocleanups.h
index ef50a9048..d3ecd345b 100644
--- a/clutter/clutter/clutter-autocleanups.h
+++ b/clutter/clutter/clutter-autocleanups.h
@@ -32,7 +32,6 @@
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterAction, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterActor, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterActorMeta, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterAlignConstraint, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterBackend, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterBindConstraint, g_object_unref)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]