mutter/doc/reference/clutter
Emmanuele Bassi f94a903d9e layout: Add animation support to LayoutManager
In order to animate a fluid layout we cannot use the common animation
code paths as they will override the size request and allocation paths
that are handled by the layout manager itself.

One way to introduce animations in the allocation sequence is to use a
Timeline and an Alpha to compute a progress value and then use that
value to interpolate an ActorBox between the initial and final states of
the animation - with the initial state being the last allocation of the
child prior to the animation start, and the final state the allocation
of the child at the end; for every frame of the Timeline we then queue a
relayout on the layout manager's container, which will result in an
animation.

ClutterLayoutManager is the most likely place to add a generic API for
beginning and ending an animation, as well as the place to provide a
default code path to create the ancillary Timeline and Alpha instances
needed to drive the animation.

A LayoutManager sub-class will need to:

  • call clutter_layout_manager_begin_animation() whenever it should
    animate between two states, for instance: whenever a layout property
    changes value;
  • eventually override begin_animation() and end_animation() in case
    further state needs to be set up, and then chain up to the default
    implementation provided by LayoutManager;
  • if a completely different implementation is required, the layout
    manager sub-class should override begin_animation(), end_animation()
    and get_animation_progress().

Inside the allocate() implementation the sub-class should also
interpolate between the last known allocation of a child and the newly
computed allocation.
2009-12-13 01:13:42 +00:00
..
actor-box.png Merged clutter-ivan branch into trunk. 2008-04-25 13:37:36 +00:00
bin-layout.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
box-layout.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
building-clutter.xml docs: Fix OS X docs to install Ports in correct order 2009-11-06 11:48:08 +00:00
clutter-animation-tutorial.xml [docs] Fix wrong XML elements 2009-07-21 16:35:50 +01:00
clutter-docs.xml.in layout: Document BoxLayout 2009-10-14 11:31:48 +01:00
clutter-overview.xml 2008-06-26 Emmanuele Bassi <ebassi@openedhand.com> 2008-06-26 09:02:58 +00:00
clutter-sections.txt layout: Add animation support to LayoutManager 2009-12-13 01:13:42 +00:00
clutter.types layout: Document BoxLayout 2009-10-14 11:31:48 +01:00
creating-behaviours.xml [docs] Fix wrong XML elements 2009-07-21 16:35:50 +01:00
easing-modes.png [docs] Update the easing modes documentation 2009-01-20 18:13:36 +00:00
easing-modes.svg [docs] Update the easing modes documentation 2009-01-20 18:13:36 +00:00
event-flow.dia * clutter/event-flow.png: fixed typo. 2008-06-13 10:37:33 +00:00
event-flow.png * clutter/event-flow.png: fixed typo. 2008-06-13 10:37:33 +00:00
flow-layout-horizontal.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
flow-layout-vertical.png docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
glossary.xml [docs] Add more collateral documentation 2009-09-03 16:51:14 +01:00
Makefile.am docs: Add images for layout managers 2009-10-23 17:32:18 +01:00
migrating-ClutterEffect.xml [docs] Fix typo in the effects migration guide 2009-07-21 09:20:16 +01:00
migrating-ClutterPath.xml [docs] Add a Path migration guide 2009-09-09 16:01:07 +01:00
path-alpha-func.png Merged clutter-ivan branch into trunk. 2008-04-25 13:37:36 +00:00
running-clutter.xml docs: Detail the Clutter debugging flags 2009-11-14 13:03:59 +00:00
subclassing-ClutterActor.xml [docs] Update the "Subclassing Actor" chapter 2009-09-27 11:39:25 +01:00