summaryrefslogtreecommitdiff
path: root/clutter/clutter.h
Commit message (Collapse)AuthorAgeFilesLines
* Add autocleanup macros for Clutter typesEmmanuele Bassi2015-07-071-0/+2
| | | | | So that people can use the g_auto* macros, as well as the G_DECLARE_* ones, from GLib 2.44.
* Move ClutterModel to the deprecated areaEmmanuele Bassi2015-07-071-1/+0
| | | | And deal with the fallout in the source tree.
* Move clutter-list-model.[ch] to the deprecated areaEmmanuele Bassi2015-07-071-1/+0
|
* Annotate all public symbolsEmmanuele Bassi2014-03-171-2/+1
| | | | | We are going to switch to compiler annotations to determine the visibility of the symbols.
* Fully rework the conformance test suiteEmmanuele Bassi2013-12-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current conformance test suite is suboptimal in many ways. All tests are built into the same binary, which makes adding new tests, builting tests, and running groups of tests much more awkward than it needs to be. The first issue, especially, raises the bar of contribution in a significant way, while the other two take their toll on the maintainer. All of these changes were introduced back when we had both Clutter and Cogl tests in tree, and because we were building the test suite for every single change; since then, Cogl moved out of tree with all its tests, and we build the conformance test suite only when running the `check` make target. This admittedly large-ish commit changes the way the conformance test suite works, taking advantage of the changes in the GTest API and test harness. First of all, all tests are now built separately, using their own test suite as defined by each separate file. All tests run under the TAP harness provided by GTest and Automake, to gather a proper report using the Test Anything Protocol without using the `gtester` harness and the `gtester-report` script. We also use the Makefile rules provided by GLib to vastly simplify the build environment for the conformance test suite. On top of the changes for the build and harness, we also provide new API for creating and running test suites for Clutter. The API is public, because the test suite has to use it, but it's minimal and mostly provides convenience wrappers around GTest that make writing test units for Clutter easier. This commit disables all tests in the conformance test suite, as well as moving the data files outside of the tests/data directory; the next few commits will re-establish the conformance test suite separately so we can check that everything works in a reliable way.
* Deprecate ClutterTableLayoutEmmanuele Bassi2013-11-191-1/+0
| | | | | | | | | | | | | | | | | | 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.
* tap-action: Add TapAction, to handle mouse/touch tappingEmanuele Aina2012-10-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | TapAction is a GestureAction-subclass that handles clicks and tap gestures. It is meant to provide a replacement for ClickAction using GestureAction: • it handles events trasparently without capturing them, so that it can coexists with other GestureActions; • the ::tap signal is not emitted if the drag threshold is exceeded; • building upon GestureAction the amount of code is greatly reduced. TapAction provides: • tap signal, notifying users when a tap has been performed. The image-content example program has been updated replacing its ClickAction usage with TapAction. https://bugzilla.gnome.org/show_bug.cgi?id=683948
* pan-action: add PanAction, to handle panning in scrollable actorsEmanuele Aina2012-08-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | PanAction is a GestureAction-subclass that implements the panning concept for scrollable actors, with the ability to emit interpolated signals to emulate the kinetic inertia of the panning. PanAction provides: • pan signal, notifying users of the panning gesture status; • pan-stopped signal, emitted at the end of the interpolated phase of the panning gesture, if enabled; • pan-axis property, to allow constraining the dragging to a specific axis; • interpolated property, to enable or disable the inertial behaviour; • deceleration property, to customize the rate at which the momentum of the panning will be slowed down; • acceleration-factor property, applied to the inertial momentum when starting the interpolated sequence. An interactive test is also provided. https://bugzilla.gnome.org/show_bug.cgi?id=681648
* Add zoom actionLionel Landwerlin2012-08-201-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=678427
* Add rotate actionLionel Landwerlin2012-07-171-1/+2
| | | | | | | | Allow rotation of an actor using 2 points (touch or pointers) events. Also refactor the accumulators from various actions. https://bugzilla.gnome.org/show_bug.cgi?id=678587
* Add ClutterGridLayoutBastian Winkler2012-06-051-0/+1
| | | | | | | | | | | | | ClutterGridLayout is port of GtkGrid to a Clutter layout manager. All the logic is taken from gtkgrid.c, so all the credits should go to Matthias Clasen for writing this nice piece of code. ClutterGridLayout supports adding children with it's own methods GridLayout.attach() and GridLayout.attach_next_to() as well as Actor.add_child() and friends. The latter adds children in a similar fashion to ClutterBoxLayout https://bugzilla.gnome.org/show_bug.cgi?id=677372
* Deprecate ClutterAlphaEmmanuele Bassi2012-04-271-1/+0
| | | | | | | | | 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.
* Add ClutterScrollActorEmmanuele Bassi2012-04-271-0/+1
| | | | | ClutterScrollActor is an actor that allows showing a portion of its contents.
* Deprecate ClutterAnimation, as well as clutter_actor_animate()Emmanuele Bassi2012-04-271-1/+0
| | | | | | ClutterPropertyTransition, and the implicit animation API based on ClutterTransition and ClutterAnimatable, are enough to replace this whole API.
* Deprecate State and AnimatorEmmanuele Bassi2012-04-271-2/+0
| | | | | The PropertyTransition, KeyframeTransition, and TransitionGroup classes can effectively replace Animator and State in their common usage.
* Add ClutterTransitionGroupEmmanuele Bassi2012-04-271-0/+1
| | | | | | | | | | 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.
* Add ClutterKeyframeTransitionEmmanuele Bassi2012-04-271-0/+1
| | | | | A simple transition class that interpolates a property between key frames.
* Deprecate ClutterCairoTextureEmmanuele Bassi2012-04-271-1/+1
| | | | | | | | | | 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.
* Deprecate ClutterMediaEmmanuele Bassi2012-04-171-1/+0
| | | | | | | | | | | | | | | | The interface looked like a good idea around the time Clutter 0.2 was out, but in reality we never had a proper, and supported implementation outside of clutter-gst - thus, ClutterMedia was acting like a wrapper around GStreamer, leading to hilarious issues of impedence mismatch between API and all sorts of indirection issues typical of wrong abstractions. In theory, ClutterMedia should have been deprecated and removed before we hit 1.0, but we kept flip-flopping on the issue. For 2.0, it's time to take it out. And shoot it in the face.
* Add ClutterImage, and image data contentEmmanuele Bassi2012-03-161-0/+1
|
* Add ClutterCanvas, a drawing contentEmmanuele Bassi2012-03-161-0/+1
|
* Add ClutterContentEmmanuele Bassi2012-03-161-0/+1
| | | | | | | | | | | | ClutterContent is an interface for creating delegate objects that handle what an actor is going to paint. Since they are a newly added type, they only hook into the new PaintNode based API. The position and size of the content is controlled in part by the content's own preferred size, and by the ClutterContentGravity enumeration.
* Add PaintNode, an element on the render object treeEmmanuele Bassi2012-03-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Now that we have a proper scene graph API, we should split out the rendering part from the logical and event handling part. ClutterPaintNode is a lightweight fundamental type that encodes only the paint operations: pipeline state and geometry. At its most simple, is a way to structure setting up the programmable pipeline using a CoglPipeline, and submitting Cogl primitives. The important take away from this API is that you are not allowed to call Cogl API like cogl_set_source() or cogl_primitive_draw() directly. The interesting approach to this is that, in the future, we should be able to move to a purely retained mode: we will decide which actors need to be painted, they will update their own branch of the render graph, and we'll take the render graph and build all the rendering commands from that. For the 1.x API, we will have to maintain invariants and the existing behaviour, but as soon as we can break API, the old paint signal will just go away, and Actors will only be allowed to manipulate the render tree.
* Add ClutterPropertyTransitionEmmanuele Bassi2012-03-151-0/+1
| | | | | ClutterPropertyTransition is a ClutterTransition that animates a property of a ClutterAnimatable implementation.
* Add ClutterTransitionEmmanuele Bassi2012-03-151-0/+1
| | | | | ClutterTransition is a Timeline sub-class that allows interpolation of a value between the initial and final states held by a ClutterInterval.
* Add brightness/contrast effectJoseph Scheuhammer2012-03-071-0/+1
| | | | | | | | | | The ClutterBrightnessContrastEffect effect class allows changing the brightness and contrast levels of an actor. Modified-by: Emmanuele Bassi <ebassi@linux.intel.com> Modified-by: Neil Roberts <neil@linux.intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=656156
* Make clutter-stage-window.h a private headerEmmanuele Bassi2012-03-011-1/+0
| | | | | | It should have never been public in the first place; nothing can implement the ClutterStageWindow interface and use it, so this is not a break.
* Move clutter-util.h into the deprecated sectionEmmanuele Bassi2012-02-271-1/+0
|
* Move macros to their own headersEmmanuele Bassi2012-02-271-0/+1
|
* Deprecate ClutterRectangleEmmanuele Bassi2012-01-161-1/+0
| | | | | A ClutterActor with a background color set covers 99% of the use cases for a Rectangle.
* Deprecate ClutterBoxEmmanuele Bassi2012-01-161-1/+0
| | | | | | ClutterBox functionality has been implemented by ClutterActor, and proxied by the Box subclass; with the removal of the abstract bit on ClutterActor, we can safely deprecated ClutterBox.
* Remove CLUTTER_DISABLE_DEPRECATED guardEmmanuele Bassi2011-11-031-2/+0
| | | | | Except for macros, we now entirely depend on the deprecation warnings instead of a guard.
* Move all enumerations to a separate fileEmmanuele Bassi2011-10-111-1/+2
| | | | | This should allow sharing types, and we can avoid glib-mkenums thrawling the whole repository for enumerations.
* Move ClutterBehaviour to the deprecated sectionEmmanuele Bassi2011-10-111-1/+0
|
* Move ClutterBehaviour subclasses to the deprecated sectionEmmanuele Bassi2011-10-111-6/+0
| | | | | Moving ClutterBehaviour itself will require some minor header surgery, so we'll do that next.
* Move ClutterShader to the deprecated sectionEmmanuele Bassi2011-10-111-1/+0
|
* Move ClutterScore to the deprecated sectionEmmanuele Bassi2011-10-111-3/+4
|
* Move timeout pool to the deprecated sectionEmmanuele Bassi2011-10-111-1/+0
|
* build: Move deprecated code into its own prefixEmmanuele Bassi2011-10-111-1/+0
| | | | | | | | The code that has been deprecated should live into its own directory, both in the repository and when installed. This should make it clear which functionality is actually maintained and which is not. We start with an oldie: the frame source API.
* Add ClutterDropActionEmmanuele Bassi2011-06-201-0/+1
| | | | | | | ClutterDropAction is an Action sub-class that allows writing actors that react to dragged actors being dropped on them. https://bugzilla.gnome.org/show_bug.cgi?id=652842
* Add ClutterSwipeAction and ClutterGestureActionTomeu Vizoso2011-06-101-0/+2
| | | | | | To allow actors to handle gestures in a more organized way. http://bugzilla.clutter-project.org/show_bug.cgi?id=2585
* build: Generate an instealled config headerEmmanuele Bassi2011-01-191-0/+2
| | | | | | | | | | | | | | | Clutter has some platform-specific API that is accessible only if the right backend has been compiled in. Third party applications that wish to be portable across backends might want to use defines and other pre-processor tricks to determine header inclusion and API usage. While Clutter has an internal set of symbols it can use, third party applications don't have the luxury of being able to access the config.h generated by Clutter's configure script. For this reason, Clutter should install a configuration header with a series of namespaced defines that can be picked up by applications and other third party code.
* Add SnapConstraintEmmanuele Bassi2010-11-151-0/+1
| | | | | A SnapConstraint is a constraint that "snaps" the edges of two actors together.
* color: Add named, global colorsEmmanuele Bassi2010-11-111-0/+1
| | | | | | | | | | | | | Since EGA colors are apparently all the rage in other toolkits, Clutter should not be left out. On top of the usual CGA/EGA palette the static colors also include the Tango Icon palette, which at least is more pleasant to the eye. Static colors are accessed through an enumeration by using clutter_color_get_static(), or using the short-hand pre-processor macros. http://bugzilla.clutter-project.org/show_bug.cgi?id=2066
* Add ClutterPathConstraintEmmanuele Bassi2010-10-251-0/+1
| | | | | | ClutterPathConstraint is a simple Constraint implementation that modifies the allocation of the Actor to which is has been applied using a progress value and a ClutterPath.
* Add ClutterTableLayout, a layout showing children in rows and columnsJosé Dapena Paz2010-08-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A TableLayout is a layout manager that allocates its children in rows and columns. Each child is assigned to a cell (or more if a cell span is set). The supported child properties are: • x-expand and y-expand: if this cell with try to allocate the available extra space for the table. • x-fill and y-fill: if the child will get all the space available in the cell. • x-align and y-align: if the child does not fill the cell, then where the child will be aligned inside the cell. • row-span and col-span: number of cells the child will allocate for itself. Also, the TableLayout has row-spacing and col-spacing for specifying the space in pixels between rows and between columns. We also include a simple test of the layout manager, and the documentation updates. The TableLayout was implemented starting from MxTable and ClutterBoxLayout. http://bugzilla.clutter-project.org/show_bug.cgi?id=2038 Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
* settings: Migrate Backend settings to a new objectEmmanuele Bassi2010-06-211-0/+1
| | | | | Instead of storing settings inside the Backend instance we should use a separate public object.
* effect: Add PageTurnEffectEmmanuele Bassi2010-06-101-0/+1
| | | | | | | A simple deformation effect that simulates a page curl. Ported from MxDeformPageTurn inside the Mx toolkit, written by Chris Lord.
* effect: Add DeformEffectEmmanuele Bassi2010-06-101-0/+1
| | | | | | | | | | DeformEffect is an abstract class that should be used to write effects that change the geometry of an actor before submitting it to the GPU. Just like the ShaderEffect class, DeformEffect renders the actor to which it has been applied into an FBO; then it creates a mesh and stores it inside a VBO. Sub-classes can control vertex attributes like position, texel coordinates and the color.
* effect: Add ColorizeEffectEmmanuele Bassi2010-06-031-0/+1
| | | | | A copy of DesaturateEffect that converts to grayscale and applies a user-defined tint to the render target.