Bastian Winkler [Mon, 14 May 2012 14:32:53 +0000 (16:32 +0200)]
keyframe-transition: Create a new interval if necessary
When setting up the transition manually by calling
clutter_keyframe_transition_set_key_frame (transition, n, keys);
clutter_keyframe_transition_set_values (transition, n, values);
clutter_keyframe_transition_set_modes (transition, n, modes);
the frame doesn't have a valid interval when calling set_keys(), so we
need to check its existence and create it if necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=676031
Bastian Winkler [Mon, 14 May 2012 14:17:34 +0000 (16:17 +0200)]
keyframe-transition: Documentation fixes
Update the documentation to use the right symbols
https://bugzilla.gnome.org/show_bug.cgi?id=676032
Emmanuele Bassi [Tue, 15 May 2012 14:06:20 +0000 (15:06 +0100)]
scroll-actor: Paint children in pick mode
Chaining up to the parent's implementation of pick() is not enough: we
need to paint our children explicitly because of the compatibility mode
checks we use to avoid breaking custom containers.
https://bugzilla.gnome.org/show_bug.cgi?id=676088
Emmanuele Bassi [Mon, 14 May 2012 09:33:13 +0000 (10:33 +0100)]
scroll-actor: Implement pick()
We need to clip the children during picking as well as we do when
painting, to avoid reactive children outside of the visible area
receiving events.
This also allows us to refactor some common code into proper functions.
Chun-wei Fan [Mon, 14 May 2012 08:18:13 +0000 (16:18 +0800)]
Visual C++ support: Add support to build GDK backend
-Add configuration in Clutter projects to add option to build Clutter with
the GDK3 backend in addition to the Win32 backend
-Add another preconfigured clutter-config.h.win32_GDK which contains
backend configs for both GDK3 and Win32 windowing and input.
Emmanuele Bassi [Fri, 11 May 2012 16:38:53 +0000 (17:38 +0100)]
examples/canvas: Resize the canvas on allocation changes
This should show how to make a Canvas resize whenever the actor that
uses it as content changes size. For good measure, it also shows how to
coalesce multiple allocations into one Canvas resize through a timeout
source.
Emmanuele Bassi [Fri, 11 May 2012 16:37:20 +0000 (17:37 +0100)]
build: Drop version check on auto*
Just use autoreconf, to avoid having to deal with changes in the version
of autotools.
If somebody has more recent autotools but the symbolic links used by
autoreconf are still pointing to an old version then they can also fix
their own installation, or get a better distribution.
Emmanuele Bassi [Fri, 11 May 2012 12:48:41 +0000 (13:48 +0100)]
modules: Point to the correct branch of Cogl
Clutter requires the cogl-1.10 branch of Cogl.
Emmanuele Bassi [Wed, 9 May 2012 14:03:51 +0000 (15:03 +0100)]
actor: Include margin in explicit sizes for all cases
When asking for the preferred width and height of an actor, in case
only one of either the minimum or the natural width is set, the margin
offsets should also be applied.
Emmanuele Bassi [Tue, 8 May 2012 09:51:14 +0000 (10:51 +0100)]
Put bind-constraint back into the interactive tests
The bind-constraint.c example still uses clutter_actor_animate(), and
it'd require some serious reworking to move it to
ClutterPropertyTransition or to implicit animations.
Emmanuele Bassi [Tue, 8 May 2012 15:13:26 +0000 (16:13 +0100)]
score: Add deprecation annotations to all docs
A single deprecation to the long-desc is not enough.
Emmanuele Bassi [Tue, 8 May 2012 15:06:59 +0000 (16:06 +0100)]
score: Fix version of the deprecation annotations
ClutterScore was deprecated in Clutter 1.8, not 1.10.
Emmanuele Bassi [Fri, 4 May 2012 16:43:30 +0000 (17:43 +0100)]
examples: Add an example of layout manager
The MultiLayout shows how to write a layout manager with two policies,
and to use the easing state of a child to interpolate the allocation.
Emmanuele Bassi [Thu, 3 May 2012 12:53:29 +0000 (13:53 +0100)]
Add rounded corners rectangle example using Canvas
An old request: how to create a rectangle with rounded corners with
Clutter; we use ClutterCanvas and Cairo because we want anti-aliased
edges.
Bastien Nocera [Thu, 3 May 2012 16:58:12 +0000 (18:58 +0200)]
x11/device-manager-xi2: Fix assertions with touch
When getting touch events, the device manager would try
to pass an invalid device to translate_axes().
clutter_event_set_device() will only update event->touch.device
for touch events, not event->motion.device, as used.
Fixes Totem crashing on mouse motion/button press when using
a touchpad.
https://bugzilla.gnome.org/show_bug.cgi?id=675371
Bastien Nocera [Thu, 3 May 2012 16:56:45 +0000 (18:56 +0200)]
event: Fix copying touch events
We were trying to copy motion axes instead of touch ones.
https://bugzilla.gnome.org/show_bug.cgi?id=675371
Emmanuele Bassi [Thu, 3 May 2012 10:40:59 +0000 (11:40 +0100)]
docs: Update the configure switches in the README
Emmanuele Bassi [Thu, 3 May 2012 10:35:20 +0000 (11:35 +0100)]
Annotate deprecated get_type() functions
Even if their usage is limited, it's good to consistently deprecate
functions.
Emmanuele Bassi [Thu, 3 May 2012 10:34:57 +0000 (11:34 +0100)]
cally: Disable deprecation warnings
For ClutterGroup and ClutterRectangle.
Emmanuele Bassi [Thu, 3 May 2012 10:28:04 +0000 (11:28 +0100)]
docs: Disable deprecations when building the object scanner
We know it's going to be using deprecated symbols, since it has to
introspect all the GObject classes we expose.
Emmanuele Bassi [Thu, 3 May 2012 10:27:22 +0000 (11:27 +0100)]
docs: Add annotation for ClutterEventSequence
The last remaining undocumented symbol in the API reference according to
gtk-doc.
Tristan Van Berkom [Wed, 2 May 2012 22:08:02 +0000 (18:08 -0400)]
ClutterDropAction: Added "drop-cancel" signal.
The drop-cancel signal allows the drop action to cleanup its
state if the can-drop signal is refused. This is especially
useful if the drop action (or its target actor) is managing
any drop target animations.
https://bugzilla.gnome.org/show_bug.cgi?id=675336
Emmanuele Bassi [Wed, 2 May 2012 17:40:38 +0000 (18:40 +0100)]
docs: Move the easing modes graphs to the AnimationMode docs
Emmanuele Bassi [Wed, 2 May 2012 17:38:20 +0000 (18:38 +0100)]
docs: Move ClutterAnimationMode's documentation
Given that ClutterAnimation is going to be deprecated, we should move
the ClutterAnimationMode enumeration to the ClutterTimeline section.
Emmanuele Bassi [Wed, 2 May 2012 17:37:36 +0000 (18:37 +0100)]
Move the easing modes test into the examples
It's a pretty simple, self-contained example of how to use different
easing modes, as well as the implicit animations API.
Emmanuele Bassi [Wed, 2 May 2012 11:45:45 +0000 (12:45 +0100)]
interactive/transitions: Modernize
Drop deprecated API.
Emmanuele Bassi [Wed, 2 May 2012 11:45:18 +0000 (12:45 +0100)]
interactive/binding-pool: Modernize
Drop deprecated API.
Emmanuele Bassi [Wed, 2 May 2012 11:14:45 +0000 (12:14 +0100)]
Move FlowLayout test into examples
There's nothing really test-worthy in the ClutterFlowLayout interactive
test; it can be lifted pretty much as is, and placed into the examples.
Emmanuele Bassi [Wed, 2 May 2012 11:03:14 +0000 (12:03 +0100)]
interactive/flow-layout: Modernize code
Drop deprecated API usage.
Emmanuele Bassi [Wed, 2 May 2012 10:59:50 +0000 (11:59 +0100)]
build: Fix BUILD_TESTS condition check
Emmanuele Bassi [Tue, 1 May 2012 17:51:19 +0000 (18:51 +0100)]
build: Allow disabling all tests and examples
This should allow nicer build automation and cross-compilation support.
The former --disable-conformance configure switch has been deprecated by
the --disable-tests one, which is more encompassing as it disables the
whole test suite.
Emmanuele Bassi [Tue, 1 May 2012 17:30:10 +0000 (18:30 +0100)]
Move examples from tests/interactive to a new top-level
The example code that is meant to be XIncluded into the API reference
should not be part of the interactive test suite: it's code that it is
meant to be used as a reference implementation - whereas the interactive
test suite should be allowed to be lean and test behaviour even in nasty
ways. In short: the test suite should not be the place where we show off
idiomatic code for educational purposes.
Emmanuele Bassi [Tue, 1 May 2012 13:04:37 +0000 (14:04 +0100)]
Post-release version bump to 1.11.3
Emmanuele Bassi [Tue, 1 May 2012 12:58:34 +0000 (13:58 +0100)]
Release Clutter 1.11.2
Emmanuele Bassi [Tue, 1 May 2012 12:29:19 +0000 (13:29 +0100)]
conform/actor-graph: Add missing NULL terminator
Christian Kirbach [Mon, 30 Apr 2012 21:20:03 +0000 (23:20 +0200)]
[l10n] Updated German translation
Emmanuele Bassi [Mon, 30 Apr 2012 17:34:37 +0000 (18:34 +0100)]
Add missing symbols
Emmanuele Bassi [Mon, 30 Apr 2012 16:46:48 +0000 (17:46 +0100)]
docs: Replace unknown <envvar> tag with <varname>
Emmanuele Bassi [Mon, 30 Apr 2012 16:45:01 +0000 (17:45 +0100)]
docs: Fix typo in the <structname> tag
Emmanuele Bassi [Mon, 30 Apr 2012 16:12:12 +0000 (17:12 +0100)]
docs: Annotation fixes
The introspection scanner has become slightly more annoying, in the hope
that people start fixing their annotations. As it turns out, it was the
right move.
Jonh Wendell [Sat, 28 Apr 2012 13:27:05 +0000 (10:27 -0300)]
Updated Brazilian Portuguese translation
Fran Diéguez [Fri, 27 Apr 2012 14:44:06 +0000 (16:44 +0200)]
Updated Galician translations
Daniel Mustieles [Fri, 27 Apr 2012 14:25:29 +0000 (16:25 +0200)]
Updated Spanish translation
Emmanuele Bassi [Fri, 27 Apr 2012 13:21:25 +0000 (14:21 +0100)]
animatable: Disable deprecation warnings
We are using deprecated API internally.
Piotr Drąg [Fri, 27 Apr 2012 12:58:55 +0000 (14:58 +0200)]
Updated POTFILES.in
Emmanuele Bassi [Fri, 27 Apr 2012 11:38:19 +0000 (12:38 +0100)]
Disable deprecation warnings in deprecated classes
We know we're using deprecated symbols.
Emmanuele Bassi [Thu, 26 Apr 2012 13:33:53 +0000 (14:33 +0100)]
docs: Mention that patches must pass the conformance tests
People submitting patches should do a conformance test suite run, until
we have a buildbot and a way of running the conformance tests on a
headless setup.
Emmanuele Bassi [Wed, 25 Apr 2012 16:28:05 +0000 (17:28 +0100)]
docs: Add missing symbols to the sections file
Emmanuele Bassi [Wed, 25 Apr 2012 16:22:10 +0000 (17:22 +0100)]
docs: Specify scroll_to_point() coordinate space
Emmanuele Bassi [Wed, 25 Apr 2012 16:13:29 +0000 (17:13 +0100)]
Deprecate ClutterAlpha
It's time. Now that we have clutter_actor_allocate() respecting the
easing state of an actor, and that the LayoutManager animation virtual
functions have been deprecated, we can put ClutterAlpha on the chopping
block, and be done with it, once and for all.
So long, ClutterAlpha; and thanks for all the fish.
Emmanuele Bassi [Wed, 25 Apr 2012 14:49:28 +0000 (15:49 +0100)]
docs: Clean up index
Move CairoTexture to the deprecated section.
Emmanuele Bassi [Wed, 25 Apr 2012 14:48:10 +0000 (15:48 +0100)]
docs: Add ScrollActor to the API reference
Emmanuele Bassi [Thu, 12 Apr 2012 14:56:53 +0000 (15:56 +0100)]
Add ClutterScrollActor
ClutterScrollActor is an actor that allows showing a portion of its
contents.
Emmanuele Bassi [Fri, 20 Apr 2012 17:23:21 +0000 (18:23 +0100)]
interactive/table-layout: Enable animations
Emmanuele Bassi [Fri, 20 Apr 2012 17:14:42 +0000 (18:14 +0100)]
layout-manager: Deprecate the layout animation
This semi-aborted API was broken for various reasons:
- it strongly depended on ClutterAlpha, a class we're trying to
deprecate;
- it requires a lot of boilerplate and copy-and-paste code;
- it requires a full relayout of the actor tree for something
that ought to be automatically handled by ClutterActor.
Now that clutter_actor_allocate() handles transitions using the easing
state of the actor, we can deprecate the LayoutManager API for the 1.x
series, and remove it for the 2.x series.
Emmanuele Bassi [Fri, 20 Apr 2012 17:14:00 +0000 (18:14 +0100)]
table-layout: Deprecate the animation API
Similar to what we did for ClutterBoxLayout.
Emmanuele Bassi [Fri, 20 Apr 2012 17:11:57 +0000 (18:11 +0100)]
box-layout: Deprecate the animation API
BoxLayout will use the easing state of the children it's allocating; the
current API is re-implemented in terms of an implicit easing state
forced on each child prior to allocating it.
Emmanuele Bassi [Fri, 20 Apr 2012 17:06:02 +0000 (18:06 +0100)]
actor: Make :allocation animatable
Calling clutter_actor_allocate() should transition between the current
allocation and the new allocation, by using the defined implementation
of the easing state.
This means that:
clutter_actor_save_easing_state (actor);
clutter_actor_allocate (actor, &new_alloc, flags);
clutter_actor_restore_easing_state (actor);
will cause "actor" to transition between the current allocation and the
desired new allocation.
The trick is to ensure that this happens without invalidating the
entire actor tree, but only the portion of the tree that has the
transitioned actor as the local root. For this reason, we just call the
allocate() implementation from within the transition frame advancement,
without invalidating flags: the actor, after all, *has* a valid
allocation for the duration of the transition.
Emmanuele Bassi [Mon, 23 Apr 2012 11:28:23 +0000 (12:28 +0100)]
actor: Ignore allocation flags
Allocation flags are informative, and are only meant to be used to
communicate additional information about the allocation process to
an actor.
Emmanuele Bassi [Fri, 20 Apr 2012 11:45:54 +0000 (12:45 +0100)]
actor: Coalesce needs_[xy]_expand() into one method
Use the orientation enumeration instead of a per-axis method.
Emmanuele Bassi [Tue, 27 Mar 2012 16:08:59 +0000 (17:08 +0100)]
box-layout: Add the :orientation property
And deprecate the :vertical property.
An enumeration is clearer, and we can use it elsewhere in the API.
Emmanuele Bassi [Thu, 29 Mar 2012 16:27:34 +0000 (17:27 +0100)]
bin-layout: Deprecate BinLayout alignments
We should use the ClutterActor's API for this.
Emmanuele Bassi [Thu, 29 Mar 2012 16:20:45 +0000 (17:20 +0100)]
docs: XInclude the bin layout example
Emmanuele Bassi [Thu, 29 Mar 2012 15:35:22 +0000 (16:35 +0100)]
interactive/bin-layout: Improve the example code
Use modern API; clean up the code, and document it so that it's possible
to XInclude it into the API reference.
Emmanuele Bassi [Thu, 29 Mar 2012 15:34:36 +0000 (16:34 +0100)]
bin-layout: Use the actor align/expand flags
If an actor is set to expand, we use the actor's horizontal and vertical
alignment values instead of the BinLayout's.
Emmanuele Bassi [Thu, 29 Mar 2012 15:33:53 +0000 (16:33 +0100)]
actor: Add private get_effective_x_align() method
A method to retrieve the effective horizontal alignment of the actor,
taking into consideration the text direction.
Emmanuele Bassi [Tue, 27 Mar 2012 13:53:27 +0000 (14:53 +0100)]
actor: Add basic automatic expand flags
The :x-expand and :y-expand flags on ClutterActor are used to signal
that an actor should expand horizontally and/or vertically - i.e. that
its parent's layout management policy should try to assign extra space
to the actor when allocating it.
The expand flags are automatic: when set on a leaf node in the actor
tree, they will bubble up through the parent and grandparents up to the
top level actor; during allocation, the actors with children will lazily
compute whether their children needs to expand.
Emmanuele Bassi [Thu, 19 Apr 2012 15:35:39 +0000 (16:35 +0100)]
actor: Remove automatic transition init from add_transition()
Adding an explicit transition overrides any consideration of the easing
state of an actor.
Emmanuele Bassi [Thu, 19 Apr 2012 15:00:23 +0000 (16:00 +0100)]
Fixes for the API reference
Typos, missing symbols, and missing documentation.
Emmanuele Bassi [Wed, 11 Apr 2012 17:31:53 +0000 (18:31 +0100)]
docs: Clean up the animation section
Emmanuele Bassi [Wed, 11 Apr 2012 17:30:40 +0000 (18:30 +0100)]
Add deprecation annotations
Emmanuele Bassi [Wed, 11 Apr 2012 17:18:27 +0000 (18:18 +0100)]
Deprecate ClutterAnimation, as well as clutter_actor_animate()
ClutterPropertyTransition, and the implicit animation API based on
ClutterTransition and ClutterAnimatable, are enough to replace this
whole API.
Emmanuele Bassi [Wed, 11 Apr 2012 17:00:23 +0000 (18:00 +0100)]
Deprecate State and Animator
The PropertyTransition, KeyframeTransition, and TransitionGroup classes
can effectively replace Animator and State in their common usage.
Emmanuele Bassi [Wed, 11 Apr 2012 16:47:53 +0000 (17:47 +0100)]
keyframe-transition: Add direct accessors for key frames
This should allow modifying key frame details without requiring a full
reset of the KeyframeTransition instance.
Emmanuele Bassi [Tue, 20 Mar 2012 10:59:34 +0000 (10:59 +0000)]
Add ClutterTransitionGroup
The TransitionGroup class is a logical container for running multiple
transitions.
TransitionGroup is not a Score: it is a Transition that advances each
Transition it contains using the delta between frames, and ensures that
all transitions are in a consistent state; these transitions are not
advanced by the master clock.
Emmanuele Bassi [Wed, 21 Mar 2012 16:07:29 +0000 (16:07 +0000)]
timeline: Add an internal function for advancing a timeline
There are cases when we want to advance a timeline from another time
source. We cannot use _clutter_timeline_do_tick() directly, as that
assumes that the timeline is already playing, so we'll need to create a
wrapper that toggles the playing flag around it.
Emmanuele Bassi [Wed, 11 Apr 2012 14:53:52 +0000 (15:53 +0100)]
Add ClutterKeyframeTransition
A simple transition class that interpolates a property between key
frames.
Emmanuele Bassi [Wed, 11 Apr 2012 13:18:56 +0000 (14:18 +0100)]
interval: Allow passing NULL values to the constructor
Given that we can create a ClutterInterval without an initial and final
values using g_object_new(), it stands to reason that we ought to be
able to create an instance when passing NULL GValue pointers to the
new_with_values() constructor as well.
Emmanuele Bassi [Wed, 11 Apr 2012 13:11:28 +0000 (14:11 +0100)]
easing: Add utility functions
We end up copying the same array-of-modes-and-functions code in various
places, so it's better to factor it out.
Emmanuele Bassi [Wed, 11 Apr 2012 13:10:40 +0000 (14:10 +0100)]
actor: Make add_transition() work regardless of easing state
We can add transitions to an actor even if the easing state hasn't been
set beforehand.
Emmanuele Bassi [Thu, 22 Mar 2012 10:48:02 +0000 (10:48 +0000)]
docs: Use the Transition convenience API
Emmanuele Bassi [Thu, 22 Mar 2012 10:08:48 +0000 (10:08 +0000)]
transition: Add interval convenience API
This should cut down the lines and number of objects we have to care
about when dealing with explicit transitions.
Emmanuele Bassi [Thu, 19 Apr 2012 13:55:08 +0000 (14:55 +0100)]
docs: Add a reference section for geometric types
Emmanuele Bassi [Thu, 19 Apr 2012 11:34:02 +0000 (12:34 +0100)]
Add version annotation for newly added functions
Emmanuele Bassi [Thu, 19 Apr 2012 11:32:07 +0000 (12:32 +0100)]
Add a rect-contains-rect function
Similar to the contains-point one.
Emmanuele Bassi [Thu, 19 Apr 2012 11:30:45 +0000 (12:30 +0100)]
Use an epsilon for float comparison
We tend to use float comparison for structured data types like Vertex,
Point, and Size; we should take into consideration fluctuations in the
floating point representation as well.
Emmanuele Bassi [Thu, 19 Apr 2012 11:16:54 +0000 (12:16 +0100)]
event: Add distance and angle accessors
Let's start using ClutterPoint in the API.
Emmanuele Bassi [Thu, 19 Apr 2012 11:15:17 +0000 (12:15 +0100)]
Add a function to compute the distance between points
Emmanuele Bassi [Wed, 18 Apr 2012 16:31:28 +0000 (17:31 +0100)]
Move towards an alloc/init pair for base types
Instead of a single new() constructor that both allocates and
initializes, split the allocation and initialization into two separate
functions for types that are typically used on the stack, and rarely
allocated on the heap, like ClutterPoint and friends.
This is also applied retroactively to ClutterActorBox and ClutterVertex,
given that the same considerations on usage apply to them as well; we
can add a return value to clutter_actor_box_init() and
clutter_vertex_init() in an ABI-compatible way, so that
clutter_actor_box_new() and clutter_vertex_new() can be effectively
reimplemented as "init (alloc ())".
Emmanuele Bassi [Fri, 13 Apr 2012 10:26:38 +0000 (11:26 +0100)]
color: Add initializers for ClutterColor
Similar to the ones we have for the other boxed types in Clutter.
Emmanuele Bassi [Sun, 1 Apr 2012 16:54:11 +0000 (17:54 +0100)]
script: Support ClutterPoint and ClutterSize
Point and Size can be described both as an array of values or as an
object.
Emmanuele Bassi [Sun, 1 Apr 2012 16:32:59 +0000 (17:32 +0100)]
actor: Add position and size animatable properties
Using a compound type property for position and size has various
advantages: it reduces the amount of checks; it reduces the amount
of notify signals to connect to; it reduces the amount of transitions
generated.
Emmanuele Bassi [Fri, 30 Mar 2012 17:53:22 +0000 (18:53 +0100)]
actor: Use ClutterSize for minimum and natural fixed sizes
Emmanuele Bassi [Fri, 30 Mar 2012 17:43:59 +0000 (18:43 +0100)]
actor: Use ClutterPoint for the fixed position
Emmanuele Bassi [Fri, 30 Mar 2012 17:22:04 +0000 (18:22 +0100)]
Add base geometric types
Clutter should provide some more basic geometric types - Point, Size,
Rect - so that we can use them in properties and accessors.
Emmanuele Bassi [Fri, 30 Mar 2012 12:56:18 +0000 (13:56 +0100)]
Move the progress function registration to clutter-types.h
Near the definition of ClutterProgressFunc.
Emmanuele Bassi [Tue, 17 Apr 2012 17:40:43 +0000 (18:40 +0100)]
Deprecate ClutterCairoTexture
The ClutterCanvas content implementation should be used instead, to
avoid stringing along the ClutterTexture API and implementation.
This change requires some minor surgery, as the deprecated section
already contains an header for the previously deprecated methods; plus,
we don't want to deprecate clutter_cairo_set_source_color(). This means
creating a new header to be used for Cairo-related API.
Emmanuele Bassi [Mon, 23 Apr 2012 16:42:40 +0000 (17:42 +0100)]
path: Avoid integer overflow in get_distance()
The get_distance() API uses machine integers to compute the distance;
this means that on 32bit we can overflow the integer size. This gets
hidden by the fact that get_distance() returns an unsigned integer as
well.
In reality, ClutterPath is an unmitigated mess, and the only way to
actually fix it is to break API.
https://bugzilla.gnome.org/show_bug.cgi?id=652521
Alejandro Piñeiro [Wed, 4 Apr 2012 10:07:06 +0000 (12:07 +0200)]
a11y: stop to use text as the default accessible-name for ClutterText
https://bugzilla.gnome.org/show_bug.cgi?id=672994
Emmanuele Bassi [Thu, 26 Apr 2012 15:59:08 +0000 (16:59 +0100)]
media: Define CLUTTER_DISABLE_DEPRECATION_WARNINGS
We know we're building deprecated API.