diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2014-12-14 14:30:50 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2014-12-16 00:37:06 +0000 |
commit | 391f1d8dd4323e825747fdab71a0d32303c7e343 (patch) | |
tree | e4c69b91c926eb8ff543895eaabb81d80c073abb /clutter/clutter-constraint.c | |
parent | 82fffaedb632bd7bf6a147d0fee41b8133cc6ad8 (diff) | |
download | clutter-391f1d8dd4323e825747fdab71a0d32303c7e343.tar.gz |
constraint: Add the ability to update the preferred size
Constraints can only update an existing allocation, which means they
live only halfway through the layout management system used by Clutter;
this limitation makes it impossible, for instance, to query the
preferred size of an actor, if the actor is only using constraints to
manage its own size.
Diffstat (limited to 'clutter/clutter-constraint.c')
-rw-r--r-- | clutter/clutter-constraint.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clutter/clutter-constraint.c b/clutter/clutter-constraint.c index be6dae8bc..61ad2aed2 100644 --- a/clutter/clutter-constraint.c +++ b/clutter/clutter-constraint.c @@ -152,6 +152,16 @@ constraint_update_allocation (ClutterConstraint *constraint, } static void +constraint_update_preferred_size (ClutterConstraint *constraint, + ClutterActor *actor, + ClutterOrientation direction, + float for_size, + float *minimum_size, + float *natural_size) +{ +} + +static void clutter_constraint_notify (GObject *gobject, GParamSpec *pspec) { @@ -176,6 +186,7 @@ clutter_constraint_class_init (ClutterConstraintClass *klass) gobject_class->notify = clutter_constraint_notify; klass->update_allocation = constraint_update_allocation; + klass->update_preferred_size = constraint_update_preferred_size; } static void @@ -212,3 +223,21 @@ clutter_constraint_update_allocation (ClutterConstraint *constraint, return clutter_actor_box_equal (allocation, &old_alloc); } + +void +clutter_constraint_update_preferred_size (ClutterConstraint *constraint, + ClutterActor *actor, + ClutterOrientation direction, + float for_size, + float *minimum_size, + float *natural_size) +{ + g_return_if_fail (CLUTTER_IS_CONSTRAINT (constraint)); + g_return_if_fail (CLUTTER_IS_ACTOR (actor)); + + CLUTTER_CONSTRAINT_GET_CLASS (constraint)->update_preferred_size (constraint, actor, + direction, + for_size, + minimum_size, + natural_size); +} |