Commit Graph

835 Commits

Author SHA1 Message Date
Carlos Garnacho
c185a17783 event: Add pinch/swipe gesture event types and structs
We now have ClutterTouchpadPinchEvent and ClutterTouchpadSwipeEvent,
each bringing the necessary info for the specific gesture. Each
of these events is defined by begin/update/end/cancel phases.

These events have been also made to propagate down/up the pointer
position, just like scroll and button events do.
2015-07-10 21:47:01 +02:00
Emmanuele Bassi
b0e785c6c2 actor: Add bind_model_with_properties()
When binding models to actors to map items to children we don't often
need the full control of a function; in many cases we just need to
specify the type of the child we want to construct and the properties
on both the item and the child that we want to bind.

We should provide a simple convenience function that does all this for
us.
2015-07-10 11:26:34 +01:00
Emmanuele Bassi
bf9a71ae23 actor: Allow binding an actor to a GListModel
It can be useful to bind the children list to set of objects inside a
GListModel implementation; the GListModel stores the objects, and every
time the model changes, a function is called that maps each object in
the model to a newly created ClutterActor, which is then added as a
child. This API, along with the property binding one inside GObject,
allows automatic creation of views based on object models that update
themselves without manual intervention.
2015-07-07 16:03:31 +01:00
Gustavo Noronha Silva
0c75e17814 Add PanAxis mode that automatically pins scroll based on initial movement
This code is inspired by the implementation of the same feature for the
Mx toolkit's MxKineticScrollView. See commit 4d08771.

https://bugzilla.gnome.org/show_bug.cgi?id=707982
2015-06-11 15:47:48 -03:00
Emmanuele Bassi
2d5b5aa82a gdk: Add function to retrieve the GdkVisual
Straight from Cogl.

This allows us to propagate the GdkVisual Cogl and Clutter use to
embedding toolkits, like GTK+.

The function is annotated as being added to the 1.22 development
cycle because it will be backported to the stable branch, so that
downstream developers can package up a version of Clutter that does
not crash on nVidia.

https://bugzilla.gnome.org/show_bug.cgi?id=747489
2015-06-10 19:09:21 +01:00
Emmanuele Bassi
67bf902022 Move API reference down one level
Since we only have one API reference, we can drop the clutter/
sub-level, and have all the files under doc/reference.
2015-05-19 15:27:30 +01:00
Emmanuele Bassi
c7bbe2a9f6 Remove the separate Cally API reference 2015-05-19 15:27:30 +01:00
Emmanuele Bassi
6088437786 docs: Merge Clutter and Cally API reference
It's pretty much pointless to have two API references:

 • the Cally API reference is fairly small
 • the build system is already complicated as it is
 • GTK-Doc isn't smart enough to ignore sub-directories
 • Cally is not a separate library, just a separate namespace

There are some issues with GTK-Doc not accepting multiple namespaces,
but nothing seriously tragic.
2015-05-19 15:27:30 +01:00
Emmanuele Bassi
27ea26cbaf build: Clean up Cally's API reference Makefile 2015-05-19 15:27:29 +01:00
Emmanuele Bassi
68df19790e docs: Add missing version symbols 2015-05-19 15:27:29 +01:00
Emmanuele Bassi
9f329aed1d docs: Fix 1.24 symbols reference title 2015-05-12 13:03:39 +01:00
Emmanuele Bassi
f07b44e70c docs: Add 1.24 symbols index 2015-05-10 16:35:31 +01:00
Emmanuele Bassi
fc93887728 docs: Add new actor state methods 2015-04-23 20:12:25 +01:00
Emmanuele Bassi
5a294124da build: Remove unnecessary argument for gtkdoc-scan
We don't use deprecation guards any more, in favour of compiler
annotations and gtk-doc annotations.
2015-03-15 16:05:10 +00:00
Emmanuele Bassi
8af4dfc8ae build: Enable gtk-doc check
This should catch missing symbols during `make check`, and hopefully
lead to their addition prior to a release.
2015-03-12 20:22:57 +00:00
Emmanuele Bassi
34b03aebaf build: Add missing Mir includes for gtk-doc
If we don't specify the files, gtk-doc won't find the symbols even if
they are documented.
2015-03-12 20:22:57 +00:00
Emmanuele Bassi
253292802c Drop the UProf dependency
Nobody has been compiling Clutter with profiling enabled in a long time.

UProf itself hasn't been updated in 5 years, and it still depends on
deprecated components like dbus-glib, with no port to GDBus in sight.

The profiling code was moderately useful in the past, but these days
it's probably better to profile Cogl than Clutter itself; timing
information can be extracted by the timestamp on each diagnostic message
that is now available by default in the CLUTTER_NOTE macro, and we can
add ad hoc counters where needed.
2015-03-03 17:44:15 +00:00
Emmanuele Bassi
b33c523243 docs: Add missing sections to the Clutter API reference 2015-03-03 16:15:31 +00:00
Emmanuele Bassi
54da12762b docs: Add missing symbols to the Clutter API reference 2015-03-03 16:15:14 +00:00
Emmanuele Bassi
4bfb3650b3 build: Add missing files to the API reference build 2015-03-03 16:14:45 +00:00
Emmanuele Bassi
73e6f4e69d build: Add top_builddir to the API reference sources
Otherwise gtk-doc won't be able to find some generated files.
2015-03-03 15:54:36 +00:00
Giovanni Campagna
10cce00440 ClutterActor: expose setter for the opacity override
Toolkits may need to paint actors internally outside the normal tree
(for example to create a shadow shape), in which case they need to
control the opacity directly.

https://bugzilla.gnome.org/show_bug.cgi?id=677412

Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2015-02-21 00:26:40 +00:00
Emmanuele Bassi
f65792e160 docs: Add symbols to the private section 2015-01-22 13:42:25 +00:00
Carlos Garnacho
78fdefcf0c input-device: Add vendor/product ID properties and getters
This may be useful when trying to identify the device across sessions.

https://bugzilla.gnome.org/show_bug.cgi?id=740759
2015-01-09 17:01:22 +01:00
Emmanuele Bassi
909569c523 docs: Mark test utility API as private 2014-12-16 14:00:15 +00:00
Emmanuele Bassi
82fffaedb6 constraint: Add a private header
And move the only private ClutterConstraint method to it.

This commit also sneaks in a change that makes sense for the debugging
of the update_allocation() method, which checks if the allocation was
effectively changed.
2014-12-16 00:37:06 +00:00
Emmanuele Bassi
2f490c9dcc build: More out of tree build fixes 2014-12-16 00:15:58 +00:00
Emmanuele Bassi
b5c8dae5a7 Document CLUTTER_BACKEND and CLUTTER_INPUT_BACKEND envvars
The allowed values are determined at configure time, but we can list all
the possible values, and assume people will actually check.

https://bugzilla.gnome.org/show_bug.cgi?id=681300
2014-12-15 17:10:33 +00:00
Emmanuele Bassi
cca0777b34 docs: Add missing symbols 2014-12-15 17:10:23 +00:00
Emmanuele Bassi
d3dbd169d6 docs: Add versioned indexes
We have a bunch of versions to cover.
2014-12-11 22:35:13 +00:00
Emmanuele Bassi
c75a200c37 docs: Remove missing symbol 2014-09-17 14:59:03 +01:00
Emmanuele Bassi
e31d7d7400 build: Ignore private header while building docs 2014-09-15 16:42:54 +01:00
Bastien Nocera
fe208bff29 doc: Document CLUTTER_SCALE envvar
https://bugzilla.gnome.org/show_bug.cgi?id=734480
2014-09-03 14:21:09 +01:00
Emmanuele Bassi
b3b2af7677 Re-introduce removed GestureAction method
The get_threshold_tigger_egde() method was renamed to fix the typo, but
it obviously broke the ABI. To be fair, nobody in the whole of Debian
was using the symbol, apparently, so it's not like we broke existing
code. Still, it's not nice to break ABI without bumping soname, so let's
put the old symbol back in — obviously, deprecated — as a wrapper to the
newly added one.
2014-09-03 14:16:31 +01:00
Emmanuele Bassi
9c7433dbe9 docs: Add missing symbols to the section file 2014-08-21 15:30:47 +01:00
Owen W. Taylor
ec911dc8b9 ClutterStage: Replace clutter_stage_set_paint_callback() with ::after-paint signal
clutter_stage_set_paint_callback() has the disadvantage that it only
works for a single caller, and subsequent callers will overwrite and
break previous callers. Replace it with an ::after-paint signal that is
emitted at the same point - after all painting for the stage is
completed but before the drawing is presented to the screen.

https://bugzilla.gnome.org/show_bug.cgi?id=732342
2014-06-27 14:39:02 -04:00
Emmanuele Bassi
acde9b1dff docs: Add missing symbols 2014-06-25 12:42:58 +01:00
Carlos Garnacho
fd8705b9c6 gesture-action: Fix typo in clutter_gesture_action_get_threshold_trigger_egde()
Let's cross fingers and hope nobody notices. If this went unnoticed so far, likely
means this function has never been used. If any complain is raised about this, a
stub function should be added (and marked deprecated).
2014-05-21 15:15:01 +02:00
Emmanuele Bassi
fa891a7a3c docs: Remove --sgml-mode from the build options
We're not providing SGML any more.
2014-03-18 14:15:01 +00:00
Emmanuele Bassi
8453807ce9 docs: Add missing symbols to the API reference 2014-03-18 14:15:01 +00:00
Emmanuele Bassi
5b3a1f75ca docs: Ignore clutter-test-utils.h
The API is public, because we need it in the conformance test suite, but
it's still a work in progress.
2014-02-19 13:20:41 +00:00
Emmanuele Bassi
15dd607120 docs: Add missing symbols to the API reference 2014-02-19 13:07:30 +00:00
Emmanuele Bassi
857f53f42d canvas: Add scale-factor property
We need to provide an escape hatch to ClutterCanvas so that it's
possible to override the window-scaling-factor ClutterSetting. This is
going to be useful in the future in case the user has better knowledge
of the window scaling factor that is going to be used with a specific
set of ClutterCanvas contents (e.g. on different outputs or stages).

https://bugzilla.gnome.org/show_bug.cgi?id=705915
2014-01-20 12:26:46 +00:00
Emmanuele Bassi
ed2fdf85f6 gesture: Make threshold-trigger-edge public
When the threshold-trigger-edge property was introduced in
GestureAction, it was late in the cycle and I elected to keep it
private, given the fact that nobody was subclassing GestureAction
outside of Clutter itself.

These days, people are experimenting more with the GestureAction API, so
they will need access to the various knobs that control the class
default behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=710227
2013-12-05 15:20:39 +00:00
Emmanuele Bassi
7af55d23e4 Deprecate ClutterTableLayout
The table layout manager has various issues:

  • no support for RTL flipping
  • most of the layout API is legacy, and has been replaced by the
    alignment and expansion flags on ClutterActor
  • the animation API is legacy, and has been replaced by the
    implicitly animatable allocation
  • the spanning cells handling is a bit awkward, as is its API

On top of that, we imported the grid layout management policy from GTK+
into ClutterGridLayout, which provides all the required features in a
more well-designed API.

Instead of wasting time and resources updating TableLayout, we should
deprecate it and point developers of the GridLayout.
2013-11-19 00:31:53 +00:00
Neil Roberts
70292672c4 Add API to install an event filter
This adds clutter_event_add/remove_filter which adds a callback
function which will receive all Clutter events just before the event
signal is emitted for them. The event filter will be invoked
regardless of any grabs or captures. This will be used by Mutter which
wants to access the events at a lower level then the event bubbling
mechanism. It needs to see all mouse motion events even if there is a
grab in place.

https://bugzilla.gnome.org/show_bug.cgi?id=707560
2013-11-14 14:32:17 -05:00
Emmanuele Bassi
0f217f0722 Documentation fixes 2013-09-19 22:58:43 +01:00
Emmanuele Bassi
0d7bbc747f docs: Fix gtk-doc warnings 2013-08-19 23:30:09 +01:00
Chris Cummins
b6d2232150 wayland: Add foreign surface support to stage
This adds support for optionally a providing a foreign Wayland surface
to a ClutterStage before it is first show. Setting a foreign surface
prevents Cogl from allocating a surface and shell surface for the stage
automatically.

v2: add CLUTTER_AVAILABLE_IN_1_16 annotation and API reference docs
    (review from Emmanuele Bassi)
v3: set a boolean to indicate that this stage is using a foreign surface
(Rob Bradford)

https://bugzilla.gnome.org/show_bug.cgi?id=699578
2013-07-23 18:24:00 +01:00
Rob Bradford
a5e44d3934 wayland: Add API for disabling the event dispatching
This allows the integration of Clutter with another library, like GTK+,
that is dispatching the events itself. This is implemented by calling
into the cogl_wayland_renderer_set_event_dispatch_enabled() and since
that function must be called on the newly created renderer the newly
added clutter_wayland_disable_event_retrieval must be called before
clutter_init()

https://bugzilla.gnome.org/show_bug.cgi?id=704279
2013-07-23 18:23:40 +01:00