From: Bastian Winkler Date: Thu, 24 May 2012 15:31:44 +0000 (+0200) Subject: box-layout: Use the ClutterLayoutManager animation API X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58a1854b5729296dbd62071d190c528374e7e4f8;p=profile%2Fivi%2Fclutter.git box-layout: Use the ClutterLayoutManager animation API ClutterBoxLayout now only calls the animation API of ClutterLayoutManager https://bugzilla.gnome.org/show_bug.cgi?id=676827 --- diff --git a/clutter/clutter-box-layout.c b/clutter/clutter-box-layout.c index 1ef8826..db51488 100644 --- a/clutter/clutter-box-layout.c +++ b/clutter/clutter-box-layout.c @@ -109,7 +109,6 @@ struct _ClutterBoxLayoutPrivate ClutterOrientation orientation; guint is_pack_start : 1; - guint use_animations : 1; guint is_homogeneous : 1; }; @@ -149,10 +148,8 @@ enum PROP_VERTICAL, PROP_HOMOGENEOUS, PROP_PACK_START, - PROP_USE_ANIMATIONS, - PROP_EASING_MODE, - PROP_EASING_DURATION, PROP_ORIENTATION, + PROP_EASING_DURATION, PROP_LAST }; @@ -620,9 +617,12 @@ allocate_box_child (ClutterBoxLayout *self, ClutterContainer *container, ClutterActor *child, ClutterActorBox *child_box, - ClutterAllocationFlags flags) + ClutterAllocationFlags flags, + gboolean use_animations, + ClutterAnimationMode easing_mode, + guint easing_duration, + guint easing_delay) { - ClutterBoxLayoutPrivate *priv = self->priv; ClutterBoxChild *box_child; ClutterLayoutMeta *meta; @@ -637,11 +637,12 @@ allocate_box_child (ClutterBoxLayout *self, child_box->x2 - child_box->x1, child_box->y2 - child_box->y1); - if (priv->use_animations) + if (use_animations) { clutter_actor_save_easing_state (child); - clutter_actor_set_easing_mode (child, priv->easing_mode); - clutter_actor_set_easing_duration (child, priv->easing_duration); + clutter_actor_set_easing_mode (child, easing_mode); + clutter_actor_set_easing_duration (child, easing_duration); + clutter_actor_set_easing_delay (child, easing_delay); } clutter_actor_allocate_align_fill (child, child_box, @@ -651,7 +652,7 @@ allocate_box_child (ClutterBoxLayout *self, box_child->y_fill, flags); - if (priv->use_animations) + if (use_animations) clutter_actor_restore_easing_state (child); } @@ -852,6 +853,10 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout, gint x = 0, y = 0, i; gint child_size; + gboolean use_animations; + ClutterAnimationMode easing_mode; + guint easing_duration, easing_delay; + count_expand_children (layout, container, &nvis_children, &nexpand_children); CLUTTER_NOTE (LAYOUT, "BoxLayout for %s: visible=%d, expand=%d", @@ -872,6 +877,11 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout, actor = CLUTTER_ACTOR (container); + use_animations = clutter_layout_manager_get_easing_state (layout, + &easing_mode, + &easing_duration, + &easing_delay); + /* Retrieve desired size for visible children. */ i = 0; clutter_actor_iter_init (&iter, actor); @@ -1099,7 +1109,11 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout, container, child, &child_allocation, - flags); + flags, + use_animations, + easing_mode, + easing_duration, + easing_delay); i += 1; } @@ -1135,18 +1149,6 @@ clutter_box_layout_set_property (GObject *gobject, clutter_box_layout_set_pack_start (self, g_value_get_boolean (value)); break; - case PROP_USE_ANIMATIONS: - clutter_box_layout_set_use_animations (self, g_value_get_boolean (value)); - break; - - case PROP_EASING_MODE: - clutter_box_layout_set_easing_mode (self, g_value_get_ulong (value)); - break; - - case PROP_EASING_DURATION: - clutter_box_layout_set_easing_duration (self, g_value_get_uint (value)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; @@ -1184,18 +1186,6 @@ clutter_box_layout_get_property (GObject *gobject, g_value_set_boolean (value, priv->is_pack_start); break; - case PROP_USE_ANIMATIONS: - g_value_set_boolean (value, priv->use_animations); - break; - - case PROP_EASING_MODE: - g_value_set_ulong (value, priv->easing_mode); - break; - - case PROP_EASING_DURATION: - g_value_set_uint (value, priv->easing_duration); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; @@ -1300,69 +1290,12 @@ clutter_box_layout_class_init (ClutterBoxLayoutClass *klass) 0, G_MAXUINT, 0, CLUTTER_PARAM_READWRITE); - /** - * ClutterBoxLayout:use-animations: - * - * Whether the #ClutterBoxLayout should animate changes in the - * layout, overriding the easing state of the children. - * - * Since: 1.2 - * - * Deprecated: 1.12: #ClutterBoxLayout will honour the easing state - * of the children when allocating them. - */ - obj_props[PROP_USE_ANIMATIONS] = - g_param_spec_boolean ("use-animations", - P_("Use Animations"), - P_("Whether layout changes should be animated"), - FALSE, - CLUTTER_PARAM_READWRITE); - - /** - * ClutterBoxLayout:easing-mode: - * - * The easing mode for the animations, in case - * #ClutterBoxLayout:use-animations is set to %TRUE. - * - * The easing mode has the same semantics of #ClutterAnimation:mode: it can - * either be a value from the #ClutterAnimationMode enumeration, like - * %CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by - * clutter_alpha_register_func(). - * - * The default value is %CLUTTER_EASE_OUT_CUBIC. - * - * Since: 1.2 - * - * Deprecated: 1.12: The #ClutterBoxLayout will honour the easing state of - * the children when allocating them. - */ - obj_props[PROP_EASING_MODE] = - g_param_spec_ulong ("easing-mode", - P_("Easing Mode"), - P_("The easing mode of the animations"), - 0, G_MAXULONG, - CLUTTER_EASE_OUT_CUBIC, - CLUTTER_PARAM_READWRITE); - - /** - * ClutterBoxLayout:easing-duration: - * - * The duration of the animations, in case #ClutterBoxLayout:use-animations - * is set to %TRUE. - * - * The duration is expressed in milliseconds. - * - * Since: 1.2 - * - * Deprecated: 1.12: The #ClutterBoxLayout will honour the easing state of - * the children when allocating them. - */ + /* a leftover to be compatible to the previous implementation */ obj_props[PROP_EASING_DURATION] = g_param_spec_uint ("easing-duration", P_("Easing Duration"), P_("The duration of the animations"), - 0, G_MAXUINT, - 500, + 0, G_MAXUINT, 500, CLUTTER_PARAM_READWRITE); gobject_class->set_property = clutter_box_layout_set_property; @@ -1381,10 +1314,6 @@ clutter_box_layout_init (ClutterBoxLayout *layout) priv->is_homogeneous = FALSE; priv->is_pack_start = FALSE; priv->spacing = 0; - - priv->use_animations = FALSE; - priv->easing_mode = CLUTTER_EASE_OUT_CUBIC; - priv->easing_duration = 500; } /** @@ -2060,25 +1989,17 @@ clutter_box_layout_get_expand (ClutterBoxLayout *layout, * * Since: 1.2 * - * Deprecated: 1.12: The layout manager will honour the easing state - * of the children when allocating them. + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:use-animations property */ void clutter_box_layout_set_use_animations (ClutterBoxLayout *layout, gboolean animate) { - ClutterBoxLayoutPrivate *priv; - g_return_if_fail (CLUTTER_IS_BOX_LAYOUT (layout)); - priv = layout->priv; - - if (priv->use_animations != animate) - { - priv->use_animations = animate; - - g_object_notify (G_OBJECT (layout), "use-animations"); - } + clutter_layout_manager_set_use_animations (CLUTTER_LAYOUT_MANAGER (layout), + animate); } /** @@ -2091,14 +2012,19 @@ clutter_box_layout_set_use_animations (ClutterBoxLayout *layout, * * Since: 1.2 * - * Deprecated: 1.12 + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:use-animations property */ gboolean clutter_box_layout_get_use_animations (ClutterBoxLayout *layout) { + ClutterLayoutManager *manager; + g_return_val_if_fail (CLUTTER_IS_BOX_LAYOUT (layout), FALSE); - return layout->priv->use_animations; + manager = CLUTTER_LAYOUT_MANAGER (layout); + + return clutter_layout_manager_get_use_animations (manager); } /** @@ -2112,25 +2038,17 @@ clutter_box_layout_get_use_animations (ClutterBoxLayout *layout) * * Since: 1.2 * - * Deprecated: 1.12: The layout manager will honour the easing state - * of the children when allocating them. + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:easing-mode property */ void clutter_box_layout_set_easing_mode (ClutterBoxLayout *layout, gulong mode) { - ClutterBoxLayoutPrivate *priv; - g_return_if_fail (CLUTTER_IS_BOX_LAYOUT (layout)); - priv = layout->priv; - - if (priv->easing_mode != mode) - { - priv->easing_mode = mode; - - g_object_notify (G_OBJECT (layout), "easing-mode"); - } + clutter_layout_manager_set_easing_mode (CLUTTER_LAYOUT_MANAGER (layout), + mode); } /** @@ -2143,15 +2061,20 @@ clutter_box_layout_set_easing_mode (ClutterBoxLayout *layout, * * Since: 1.2 * - * Deprecated: 1.12 + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:easing-mode property */ gulong clutter_box_layout_get_easing_mode (ClutterBoxLayout *layout) { + ClutterLayoutManager *manager; + g_return_val_if_fail (CLUTTER_IS_BOX_LAYOUT (layout), CLUTTER_EASE_OUT_CUBIC); - return layout->priv->easing_mode; + manager = CLUTTER_LAYOUT_MANAGER (layout); + + return clutter_layout_manager_get_easing_mode (manager); } /** @@ -2164,25 +2087,17 @@ clutter_box_layout_get_easing_mode (ClutterBoxLayout *layout) * * Since: 1.2 * - * Deprecated: 1.12: The layout manager will honour the easing state - * of the children when allocating them. + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:easing-duration property */ void clutter_box_layout_set_easing_duration (ClutterBoxLayout *layout, guint msecs) { - ClutterBoxLayoutPrivate *priv; - g_return_if_fail (CLUTTER_IS_BOX_LAYOUT (layout)); - priv = layout->priv; - - if (priv->easing_duration != msecs) - { - priv->easing_duration = msecs; - - g_object_notify (G_OBJECT (layout), "easing-duration"); - } + clutter_layout_manager_set_easing_duration (CLUTTER_LAYOUT_MANAGER (layout), + msecs); } /** @@ -2195,12 +2110,17 @@ clutter_box_layout_set_easing_duration (ClutterBoxLayout *layout, * * Since: 1.2 * - * Deprecated: 1.12 + * Deprecated: 1.12: #ClutterBoxLayout will honour the + * #ClutterLayoutManager:easing-duration property */ guint clutter_box_layout_get_easing_duration (ClutterBoxLayout *layout) { + ClutterLayoutManager *manager; + g_return_val_if_fail (CLUTTER_IS_BOX_LAYOUT (layout), 500); - return layout->priv->easing_duration; + manager = CLUTTER_LAYOUT_MANAGER (layout); + + return clutter_layout_manager_get_easing_duration (manager); }