From 94096048205c6b27086c47a5a507b12189cdfc39 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Sat, 11 Nov 2023 19:47:28 +0100 Subject: [PATCH] scroll-actor: Use macros for subclassing boilerplate Part-of: --- clutter/clutter/clutter-autocleanups.h | 1 - clutter/clutter/clutter-scroll-actor.c | 31 +++++++++++++++++--------- clutter/clutter/clutter-scroll-actor.h | 21 ++++------------- 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/clutter/clutter/clutter-autocleanups.h b/clutter/clutter/clutter-autocleanups.h index b3020cda1..b8e1d9fa0 100644 --- a/clutter/clutter/clutter-autocleanups.h +++ b/clutter/clutter/clutter-autocleanups.h @@ -30,7 +30,6 @@ #ifndef __GI_SCANNER__ G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterInputDevice, g_object_unref) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterScrollActor, g_object_unref) G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterText, g_object_unref) #endif /* __GI_SCANNER__ */ diff --git a/clutter/clutter/clutter-scroll-actor.c b/clutter/clutter/clutter-scroll-actor.c index 2a7b588b1..06a2a66fd 100644 --- a/clutter/clutter/clutter-scroll-actor.c +++ b/clutter/clutter/clutter-scroll-actor.c @@ -52,14 +52,14 @@ #include "clutter/clutter-property-transition.h" #include "clutter/clutter-transition.h" -struct _ClutterScrollActorPrivate +typedef struct _ClutterScrollActorPrivate { graphene_point_t scroll_to; ClutterScrollMode scroll_mode; ClutterTransition *transition; -}; +} ClutterScrollActorPrivate; enum { @@ -95,7 +95,8 @@ static void clutter_scroll_actor_set_scroll_to_internal (ClutterScrollActor *self, const graphene_point_t *point) { - ClutterScrollActorPrivate *priv = self->priv; + ClutterScrollActorPrivate *priv = + clutter_scroll_actor_get_instance_private (self); ClutterActor *actor = CLUTTER_ACTOR (self); graphene_matrix_t m; float dx, dy; @@ -149,11 +150,13 @@ clutter_scroll_actor_get_property (GObject *gobject, GParamSpec *pspec) { ClutterScrollActor *actor = CLUTTER_SCROLL_ACTOR (gobject); + ClutterScrollActorPrivate *priv = + clutter_scroll_actor_get_instance_private (actor); switch (prop_id) { case PROP_SCROLL_MODE: - g_value_set_flags (value, actor->priv->scroll_mode); + g_value_set_flags (value, priv->scroll_mode); break; default: @@ -187,8 +190,10 @@ clutter_scroll_actor_class_init (ClutterScrollActorClass *klass) static void clutter_scroll_actor_init (ClutterScrollActor *self) { - self->priv = clutter_scroll_actor_get_instance_private (self); - self->priv->scroll_mode = CLUTTER_SCROLL_BOTH; + ClutterScrollActorPrivate *priv = + clutter_scroll_actor_get_instance_private (self); + + priv->scroll_mode = CLUTTER_SCROLL_BOTH; clutter_actor_set_clip_to_allocation (CLUTTER_ACTOR (self), TRUE); } @@ -227,8 +232,10 @@ clutter_scroll_actor_get_initial_state (ClutterAnimatable *animatable, if (strcmp (property_name, "scroll-to") == 0) { ClutterScrollActor *self = CLUTTER_SCROLL_ACTOR (animatable); + ClutterScrollActorPrivate *priv = + clutter_scroll_actor_get_instance_private (self); - g_value_set_boxed (value, &self->priv->scroll_to); + g_value_set_boxed (value, &priv->scroll_to); } else parent_animatable_iface->get_initial_state (animatable, property_name, value); @@ -280,8 +287,7 @@ clutter_scroll_actor_set_scroll_mode (ClutterScrollActor *actor, g_return_if_fail (CLUTTER_IS_SCROLL_ACTOR (actor)); - priv = actor->priv; - + priv = clutter_scroll_actor_get_instance_private (actor); if (priv->scroll_mode == mode) return; @@ -301,9 +307,12 @@ clutter_scroll_actor_set_scroll_mode (ClutterScrollActor *actor, ClutterScrollMode clutter_scroll_actor_get_scroll_mode (ClutterScrollActor *actor) { + ClutterScrollActorPrivate *priv; + g_return_val_if_fail (CLUTTER_IS_SCROLL_ACTOR (actor), CLUTTER_SCROLL_NONE); - return actor->priv->scroll_mode; + priv = clutter_scroll_actor_get_instance_private (actor); + return priv->scroll_mode; } /** @@ -329,7 +338,7 @@ clutter_scroll_actor_scroll_to_point (ClutterScrollActor *actor, g_return_if_fail (CLUTTER_IS_SCROLL_ACTOR (actor)); g_return_if_fail (point != NULL); - priv = actor->priv; + priv = clutter_scroll_actor_get_instance_private (actor); info = _clutter_actor_get_animation_info (CLUTTER_ACTOR (actor)); diff --git a/clutter/clutter/clutter-scroll-actor.h b/clutter/clutter/clutter-scroll-actor.h index 2b43b5522..7e91a0f4d 100644 --- a/clutter/clutter/clutter-scroll-actor.h +++ b/clutter/clutter/clutter-scroll-actor.h @@ -31,22 +31,6 @@ G_BEGIN_DECLS #define CLUTTER_TYPE_SCROLL_ACTOR (clutter_scroll_actor_get_type ()) -#define CLUTTER_SCROLL_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SCROLL_ACTOR, ClutterScrollActor)) -#define CLUTTER_IS_SCROLL_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_SCROLL_ACTOR)) -#define CLUTTER_SCROLL_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_SCROLL_ACTOR, ClutterScrollActorClass)) -#define CLUTTER_IS_SCROLL_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_SCROLL_ACTOR)) -#define CLUTTER_SCROLL_ACTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_SCROLL_ACTOR, ClutterScrollActorClass)) - -typedef struct _ClutterScrollActorPrivate ClutterScrollActorPrivate; -typedef struct _ClutterScrollActorClass ClutterScrollActorClass; - -struct _ClutterScrollActor -{ - /*< private >*/ - ClutterActor parent_instance; - - ClutterScrollActorPrivate *priv; -}; /** * ClutterScrollActorClass: @@ -61,7 +45,10 @@ struct _ClutterScrollActorClass }; CLUTTER_EXPORT -GType clutter_scroll_actor_get_type (void) G_GNUC_CONST; +G_DECLARE_DERIVABLE_TYPE (ClutterScrollActor, + clutter_scroll_actor, + CLUTTER, SCROLL_ACTOR, + ClutterActor) CLUTTER_EXPORT ClutterActor * clutter_scroll_actor_new (void);