[animation] Add vector variants for ::animate()

Bug 1438 - Implicit Animation API could use animatev variants

The clutter_actor_animate* family of functions use va_lists to
handle the property/value pairs for the final state of the
animation.

Language bindings have problems with variadic arguments functions,
and usually prefer vector-based API which allow a greater level
of control and conversion from native data types.

For each variadic arguments function in the clutter_actor_animate*
family there should be a vector-based version that takes:

  - the number of property/value pairs
  - a constant array of constant strings
  - an array of GValues

Most of the internal implementation can be refactored from the
current one, thus both the var_args and the vector entry points
share a common implementation of the code; then, both versions
of the API are just loops over a list of arguments.

Based on a patch by: Robert Carr <carrr@rpi.edu>
This commit is contained in:
Emmanuele Bassi
2009-03-09 21:11:40 +00:00
parent c46106f6dd
commit 89e3e3a4cc
3 changed files with 374 additions and 65 deletions

View File

@ -1424,6 +1424,9 @@ clutter_animation_get_interval
clutter_actor_animate
clutter_actor_animate_with_timeline
clutter_actor_animate_with_alpha
clutter_actor_animatev
clutter_actor_animate_with_timelinev
clutter_actor_animate_with_alphav
<SUBSECTION Standard>
CLUTTER_TYPE_ANIMATION