mutter/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
..
cogl cogl: Use #ifdef GL around GL_TEXTURE_RECTANGLE_ARB 2009-12-02 21:59:58 +00:00
eglnative Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
eglx Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
fruity Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
glx Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
json build: Use QUIET_GEN when building ClutterJson GIR 2009-10-18 17:11:42 +01:00
osx osx: Fix a warning on Snow Leopard 2009-11-06 11:48:42 +00:00
sdl Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys 2009-10-16 18:58:50 +01:00
win32 win32: Remove the check for GL 1.2 2009-11-13 17:23:13 +00:00
x11 x11: Emulate XKB's detectable key auto-repeat 2009-12-09 18:46:25 +00:00
clutter-actor.c Add ActorBox animation methods 2009-12-11 23:48:58 +00:00
clutter-actor.h actor: Add :text-direction property 2009-11-10 12:16:55 +00:00
clutter-alpha.c docs: Document the AnimationMode definition 2009-11-13 15:01:17 +00:00
clutter-alpha.h
clutter-animatable.c [animatable] Allow validation in ::animate_property 2009-05-27 13:01:31 +01:00
clutter-animatable.h [animatable] Allow validation in ::animate_property 2009-05-27 13:01:31 +01:00
clutter-animation.c animation: Keep a weak reference on actors 2009-11-24 16:59:24 +00:00
clutter-animation.h [animation] Add Animation::update() 2009-08-25 12:16:41 +01:00
clutter-backend.c Validate that the GL version is >= 1.2 2009-11-13 15:55:48 +00:00
clutter-backend.h [backends] Remove the idea of offscreen stages from all backends 2009-10-16 18:58:47 +01:00
clutter-behaviour-depth.c
clutter-behaviour-depth.h
clutter-behaviour-ellipse.c Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-ellipse.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-opacity.c
clutter-behaviour-opacity.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-path.c
clutter-behaviour-path.h docs: Fix the 'Since' annotation for some functions 2009-11-19 11:51:21 +00:00
clutter-behaviour-rotate.c Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-rotate.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-scale.c Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-scale.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour.c behaviour: Implement the implicit alpha parsing 2009-11-06 11:39:30 +00:00
clutter-behaviour.h
clutter-bezier.c
clutter-bezier.h
clutter-bin-layout.c bin-layout: Add get_child_meta_type() override 2009-11-05 12:26:10 +00:00
clutter-bin-layout.h [layout, docs] Clean up BinLayout documentation 2009-10-14 11:31:29 +01:00
clutter-binding-pool.c Pass the interned string value to the binding callback 2009-11-17 21:32:17 +00:00
clutter-binding-pool.h
clutter-box-layout.c Merge branch 'text-direction' 2009-12-01 14:55:19 +00:00
clutter-box-layout.h layout: Add BoxLayout, a single line layout manager 2009-10-14 11:31:48 +01:00
clutter-box.c box: Add relative packing methods 2009-12-04 16:54:22 +00:00
clutter-box.h box: Add relative packing methods 2009-12-04 16:54:22 +00:00
clutter-cairo-texture.c [ClutterCairoTexture] Use the right component ordering when uploading data 2009-06-15 12:41:13 +01:00
clutter-cairo-texture.h [cairo-texture] Document redrawing behavior 2009-05-14 15:53:59 +01:00
clutter-child-meta.c
clutter-child-meta.h
clutter-clone.c clone: Set :source as CONSTRUCT 2009-10-22 15:51:06 +01:00
clutter-clone.h
clutter-color.c color: Fix HLS-to-RGB conversion 2009-10-26 16:29:31 +00:00
clutter-color.h [misc] Update headers #endif comments 2009-06-29 21:37:02 +02:00
clutter-container.c [container] Remove the unused 'object' variable in destroy_child_meta 2009-09-22 17:55:04 +01:00
clutter-container.h [docs] Fixes for the API reference 2009-05-28 17:18:13 +01:00
clutter-debug.h [debug] Adds a dump-pick-buffers CLUTTER_DEBUG option 2009-09-24 21:41:49 +01:00
clutter-deprecated.h Fix copy-and-paste errors in the deprecation macros 2009-07-21 09:22:38 +01:00
clutter-enum-types.c.in Use g_once when registering enumeration types 2009-05-29 12:40:23 +01:00
clutter-enum-types.h.in
clutter-event.c [input] Rework input device API 2009-06-19 13:12:05 +01:00
clutter-event.h [input] Rework input device API 2009-06-19 13:12:05 +01:00
clutter-feature.c Hide clutter_context_get_default() 2009-06-18 14:20:28 +01:00
clutter-feature.h
clutter-fixed-layout.c [layout] Update FixedLayout 2009-10-14 11:31:30 +01:00
clutter-fixed-layout.h [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-fixed.c
clutter-fixed.h
clutter-flow-layout.c flow-layout: Use the natural size 2009-12-03 15:38:05 +00:00
clutter-flow-layout.h [layout] Remove FlowLayout:wrap 2009-10-14 11:31:30 +01:00
clutter-frame-source.c
clutter-frame-source.h
clutter-group.c [group] Fix copy & paste error from 857b0239e (Use FixedLayout inside Group) 2009-10-20 16:18:53 +01:00
clutter-group.h [group] avoid double evaluation of arguments in clutter_group_add 2009-04-08 18:19:46 +01:00
clutter-id-pool.c [clutter-id-pool] Also warn if the ID refers to a deleted actor 2009-10-07 12:53:19 +01:00
clutter-id-pool.h
clutter-interval.c Simple coding style fix for commit c5551184 2009-10-16 15:57:21 +01:00
clutter-interval.h
clutter-json.h.in [json] Include only json-glib.h 2009-08-12 15:31:16 +01:00
clutter-keysyms-table.h
clutter-keysyms.h
clutter-layout-manager.c layout: Add animation support to LayoutManager 2009-12-13 01:13:42 +00:00
clutter-layout-manager.h layout: Add animation support to LayoutManager 2009-12-13 01:13:42 +00:00
clutter-layout-meta.c [layout] Add LayoutMeta 2009-10-14 11:31:26 +01:00
clutter-layout-meta.h layout: Add padding to LayoutMeta 2009-12-02 11:36:25 +00:00
clutter-list-model.c Fix chain-up in clutter_list_model_dispose() 2009-05-12 16:31:41 +01:00
clutter-list-model.h
clutter-main.c Clean up whitespace, indentation and comments 2009-12-11 20:17:58 +00:00
clutter-main.h Remove clutter_set_default_text_direction() 2009-12-07 19:00:55 +00:00
clutter-marshal.list [actor] Add the ::allocation-changed signal 2009-06-04 16:30:31 +01:00
clutter-master-clock.c ensure next iteration 2009-07-10 11:38:42 +01:00
clutter-master-clock.h ensure next iteration 2009-07-10 11:38:42 +01:00
clutter-media.c
clutter-media.h
clutter-model-private.h [model] Add a private row mutator to ClutterModelIter 2009-05-05 20:18:28 +01:00
clutter-model.c [docs] Clutter's model implementation is called ClutterListModel 2009-09-10 13:28:54 +01:00
clutter-model.h Add more padding in Model and ModelIter classes 2009-05-20 16:06:09 +01:00
clutter-path.c [path] Add GValue transform functions from and to G_TYPE_STRING 2009-10-07 16:06:26 +01:00
clutter-path.h [path] MOVE_TO and LINE_TO only use a pair of coordinates 2009-10-06 10:43:41 +01:00
clutter-private.h Validate that the GL version is >= 1.2 2009-11-13 15:55:48 +00:00
clutter-rectangle.c Revert "[rectangle] Avoid modifying materials mid scene" 2009-06-30 17:13:38 +01:00
clutter-rectangle.h
clutter-score.c Remove usage of the grave accent as quotation mark 2009-03-17 14:13:31 +00:00
clutter-score.h
clutter-script-parser.c Whitespace fixes 2009-11-13 15:01:17 +00:00
clutter-script-private.h behaviour: Implement the implicit alpha parsing 2009-11-06 11:39:30 +00:00
clutter-script.c script: Coding style clean-ups 2009-11-06 14:07:46 +00:00
clutter-script.h
clutter-scriptable.c
clutter-scriptable.h
clutter-shader-types.c Convert gint to GLints in the Shader types wrapper 2009-07-27 15:01:52 +01:00
clutter-shader-types.h [cogl] Remove the COGL{enum,int,uint} typedefs 2009-05-12 14:53:44 +01:00
clutter-shader.c [cogl-shader] Make get_info_log() slightly nicer 2009-06-01 17:40:23 +01:00
clutter-shader.h
clutter-stage-manager.c docs: Documentation fixes 2009-10-19 12:01:38 +01:00
clutter-stage-manager.h docs: Annotate StageManager 2009-12-02 11:38:04 +00:00
clutter-stage-window.c [stage] Rework the Stage implementation class 2009-09-08 10:52:58 +01:00
clutter-stage-window.h [stage] Rework the Stage implementation class 2009-09-08 10:52:58 +01:00
clutter-stage.c picking: avoid redundant picking geometry for the stage. 2009-11-27 00:43:57 +00:00
clutter-stage.h stage: Deprecate default stage size macros 2009-12-09 17:19:32 +00:00
clutter-text.c Merge branch 'text-direction' 2009-12-01 14:55:19 +00:00
clutter-text.h docs: Documentation fixes 2009-10-19 12:01:38 +01:00
clutter-texture.c cogl: deprecate cogl_draw_buffer API and replace with a cogl_framebuffer API 2009-11-26 19:33:14 +00:00
clutter-texture.h [cogl] Remove max_waste argument from Texture ctors 2009-05-23 19:35:19 +01:00
clutter-timeline.c [timeline] Account for clock roll backs between frames 2009-09-16 11:57:57 +01:00
clutter-timeline.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-timeout-interval.c
clutter-timeout-interval.h
clutter-timeout-pool.c
clutter-timeout-pool.h
clutter-types.h Add ActorBox animation methods 2009-12-11 23:48:58 +00:00
clutter-units.c Merge branch 'bug-1846' 2009-10-16 15:55:05 +01:00
clutter-units.h units: Cache the pixels value inside Units 2009-10-16 15:25:37 +01:00
clutter-util.c
clutter-util.h
clutter-version.h.in Add run-time version checks 2009-10-30 11:02:35 +00:00
clutter.h layout: Add BoxLayout, a single line layout manager 2009-10-14 11:31:48 +01:00
Makefile.am build: Fix CPP and LD flags 2009-12-02 16:03:55 +00:00