From b5895335ab2d6975665426693fb1b96d7ca86f74 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 7 Oct 2009 15:15:02 +0100 Subject: [PATCH] actor: Add set_request_mode() method We should not require the use g_object_set()/_get() for accessing the :request-mode property. A proper accessors pair should be preferred. --- clutter/clutter-actor.c | 48 +++++++++++++++++++++++++----- clutter/clutter-actor.h | 3 ++ doc/reference/clutter/clutter-sections.txt | 2 ++ 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 652365a..6d75c3c 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -473,8 +473,6 @@ static void clutter_actor_set_natural_width_set (ClutterActor *self, gboolean use_natural_width); static void clutter_actor_set_natural_height_set (ClutterActor *self, gboolean use_natural_height); -static void clutter_actor_set_request_mode (ClutterActor *self, - ClutterRequestMode mode); static void clutter_actor_update_map_state (ClutterActor *self, MapStateChange change); static void clutter_actor_unrealize_not_hiding (ClutterActor *self); @@ -3297,7 +3295,7 @@ clutter_actor_class_init (ClutterActorClass *klass) * gfloat natural_width, min_width; * gfloat natural_height, min_height; * - * g_object_get (G_OBJECT (child), "request-mode", &mode, NULL); + * mode = clutter_actor_get_request_mode (child); * if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH) * { * clutter_actor_get_preferred_width (child, -1, @@ -5184,11 +5182,28 @@ clutter_actor_set_natural_height_set (ClutterActor *self, clutter_actor_queue_relayout (self); } -static void -clutter_actor_set_request_mode (ClutterActor *self, - ClutterRequestMode mode) +/** + * clutter_actor_set_request_mode: + * @self: a #ClutterActor + * @mode: the request mode + * + * Sets the geometry request mode of @self. + * + * The @mode determines the order for invoking + * clutter_actor_get_preferred_width() and + * clutter_actor_get_preferred_height() + * + * Since: 1.2 + */ +void +clutter_actor_set_request_mode (ClutterActor *self, + ClutterRequestMode mode) { - ClutterActorPrivate *priv = self->priv; + ClutterActorPrivate *priv; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + priv = self->priv; if (priv->request_mode == mode) return; @@ -5203,6 +5218,25 @@ clutter_actor_set_request_mode (ClutterActor *self, clutter_actor_queue_relayout (self); } +/** + * clutter_actor_get_request_mode: + * @self: a #ClutterActor + * + * Retrieves the geometry request mode of @self + * + * Return value: the request mode for the actor + * + * Since: 1.2 + */ +ClutterRequestMode +clutter_actor_get_request_mode (ClutterActor *self) +{ + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), + CLUTTER_REQUEST_HEIGHT_FOR_WIDTH); + + return self->priv->request_mode; +} + /* variant of set_width() without checks and without notification * freeze+thaw, for internal usage only */ diff --git a/clutter/clutter-actor.h b/clutter/clutter-actor.h index d3e28a9..4a5a383 100644 --- a/clutter/clutter-actor.h +++ b/clutter/clutter-actor.h @@ -301,6 +301,9 @@ void clutter_actor_queue_relayout (ClutterActor void clutter_actor_destroy (ClutterActor *self); /* size negotiation */ +void clutter_actor_set_request_mode (ClutterActor *self, + ClutterRequestMode mode); +ClutterRequestMode clutter_actor_get_request_mode (ClutterActor *self); void clutter_actor_get_preferred_width (ClutterActor *self, gfloat for_height, gfloat *min_width_p, diff --git a/doc/reference/clutter/clutter-sections.txt b/doc/reference/clutter/clutter-sections.txt index 68c3f75..cf95aa3 100644 --- a/doc/reference/clutter/clutter-sections.txt +++ b/doc/reference/clutter/clutter-sections.txt @@ -305,6 +305,8 @@ clutter_actor_get_preferred_width clutter_actor_get_preferred_height clutter_actor_set_fixed_position_set clutter_actor_get_fixed_position_set +clutter_actor_set_request_mode +clutter_actor_get_request_mode clutter_actor_set_geometry -- 2.7.4