Commit Graph

103 Commits

Author SHA1 Message Date
Emmanuele Bassi
4de1adb04a 2007-11-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Rename clutter_actor_get_id() to
	clutter_actor_get_gid().

	(clutter_actor_set_parent): Use GUINT_TO_POINTER().

	* clutter/clutter-deprecated.h: Add a replacement warning for
	clutter_actor_get_id().

	* clutter/clutter-texture.c (texture_upload_data): Use
	clutter_actor_get_gid(), and don't leak the filename string.
2007-11-14 11:43:18 +00:00
Emmanuele Bassi
b0e169d73c 2007-11-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-scriptable.[ch]: Rename ::set_name and ::get_name
	to ::set_id and ::get_id, to avoid potential confusion with the
	ClutterActor:name property.

	* clutter/clutter-script.h:
	* clutter/clutter-script.c (clutter_script_construct_object): Use
	clutter_scriptable_set_id().

	(clutter_get_script_id): Add a public function to retrieve the ID
	used in the UI definition files from an object.

	* clutter/clutter-actor.c: Do not set the name of the actor with
	the ID set in the UI definition files.

	* tests/test-script.c: Test clutter_get_script_id().

	* clutter.symbols: Update with the new symbols.
2007-11-14 11:32:24 +00:00
Emmanuele Bassi
72ce4487f8 2007-11-07 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Fix the declaration of the
	class handlers for the ::captured-event, ::enter-event and
	::leave-event signals; the function signatures were missing
	the return value the signals marshallers were expecting, and
	their names weren't respecting the convention for event-related
	signals.
2007-11-07 16:40:30 +00:00
Emmanuele Bassi
f0f043cb19 2007-10-25 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Implement part of the ClutterScriptable
	interface, using the ClutterActor API to set and get the name
	of an actor.

	(clutter_geometry_copy), (clutter_geometry_free): Use
	the slice allocator to avoid fragmentation when setting
	properties and emitting signals (that is: when packing
	boxed types into GValues).

	(clutter_actor_box_copy), (clutter_actor_box_free),
	(clutter_vertex_copy), (clutter_vertex_free): Ditto.

	* clutter/clutter-actor.h:
	* clutter/clutter-actor.c:
	(clutter_actor_push_transform_child),
	(clutter_actor_pop_transfomr_child): Simple wrappers around
	COGL API, which avoid including clutter/cogl.h when writing
	container actors outside Clutter.
2007-10-25 14:36:37 +00:00
Emmanuele Bassi
03fe64e8f8 2007-10-17 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_property), (clutter_actor_get_property),
	(clutter_actor_class_init): Add the :reactive property, to
	control reactiveness using the UI definition files.

	(clutter_actor_reparent): Do not assume the parent is a
	ClutterContainer, and call the container API only if needed.

	(clutter_actor_destroy): Remove from the parent if needed,
	just like the documentation says.
2007-10-17 16:43:46 +00:00
Matthew Allum
dd99f024bf 2007-10-15 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        More events documentation.

        * clutter/clutter-event.c:
        * clutter/clutter-event.h:
        Add synthetic flag and make put_event use it
        (via modded patch from pippin)

        * clutter/clutter-main.c: (clutter_do_event):
        dont use put event anymore when pushing enter/leave events.
2007-10-15 16:50:59 +00:00
Emmanuele Bassi
12b9b3bbfc 2007-10-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Add a :depth property, so we can
	set the initial depth of an actor inside the UI definition
	files.
2007-10-12 12:42:54 +00:00
Tomas Frydrych
abd6832dd9 2007-10-12 Tomas Frydrych <tf@o-hand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-backend.c:
        * clutter/clutter-behaviour-depth.c:
        * clutter/clutter-box.c:
        * clutter/clutter-clone-texture.c:
        * clutter/clutter-container.c:
        * clutter/clutter-entry.c:
        * clutter/clutter-feature.c:
        * clutter/clutter-fixed.c:
        * clutter/clutter-group.c:
        * clutter/clutter-hbox.c:
        * clutter/clutter-label.c:
        * clutter/clutter-layout.c:
        * clutter/clutter-media.c:
        * clutter/clutter-rectangle.c:
        * clutter/clutter-score.c:
        * clutter/clutter-script.c:
        * clutter/clutter-stage.c:
        * clutter/clutter-texture.c:
        * clutter/clutter-timeline.c:
        * clutter/clutter-timeout-pool.c:
        * clutter/clutter-vbox.c:
        * clutter/cogl/gl/cogl.c:
        * clutter/cogl/gles/cogl.c:
        * clutter/eglnative/clutter-backend-egl.c:
        * clutter/eglnative/clutter-event-egl.c:
        * clutter/eglnative/clutter-stage-egl.c:
        * clutter/eglx/clutter-backend-egl.c:
        * clutter/eglx/clutter-event-egl.c:
        * clutter/eglx/clutter-stage-egl.c:
        * clutter/glx/clutter-event-glx.c:
        * clutter/json/json-array.c:
        * clutter/json/json-generator.c:
        * clutter/json/json-node.c:
        * clutter/json/json-object.c:
        * clutter/json/json-parser.c:
        * clutter/sdl/clutter-backend-sdl.c:
        * clutter/sdl/clutter-event-sdl.c:
        * clutter/sdl/clutter-stage-sdl.c:

	Fixedup config.h inclusion (must always be bracketed with #ifdef
	HAVE_CONFIG_H).
2007-10-12 08:17:00 +00:00
Emmanuele Bassi
52065e88bc 2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/glx/clutter-backend-glx.c: Fix documentation of the
	filter function API.

	* clutter/clutter-score.c:
	* clutter/clutter-effect.c:
	* clutter/clutter-actor.c: Documentation fixes.

	* clutter/clutter-actor.h: Automatically typecast to ClutterActor
	when setting/checking flags.
2007-10-10 16:02:54 +00:00
Emmanuele Bassi
261bc4c4f5 2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Beautify the ClutterActor documentation.
2007-10-10 14:51:25 +00:00
Emmanuele Bassi
717a82303a 2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Remove the ::event-after signal:
	three event layers to connect to seems a bit overkill.

	(clutter_actor_event): Return FALSE, not TRUE by default,
	as g_signal_emit() will change the return value if no
	handlers are connected

	* clutter/clutter-stage.c: Emit ::notify when we change
	the fullscreen property.

	* clutter/clutter-script.c: Add more documentation for the
	definition format and keywords.

	(translate_property): Collapse the G_TYPE_ENUM and G_TYPE_FLAGS
	cases into one, to simplify the code.

	* tests/test-script.c: Test enumeration conversion by using
	a value different from the default.
2007-10-10 14:29:29 +00:00
Matthew Allum
6216ce659c 2007-10-10 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-event.c:
        * clutter/clutter-main.c:
        * tests/test-events.c:
        Add basic W3 DOM  event 'capture' like functionality.
2007-10-10 13:04:34 +00:00
Matthew Allum
8faf9b9964 2007-10-10 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        Add missing enter/leave event signals

        * clutter/clutter-main.c: (clutter_do_event):
        Set time in crossing events.
        Protect against do_pick() failing.
2007-10-09 23:45:49 +00:00
Matthew Allum
34a40de3c5 2007-10-08 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-private.h:
        * clutter/clutter-main.c:
        Add a hash to global clutter context mapping all parented actor
        id's to actors.
        Add clutter_get_actor_by_id() call.
        Convert picking machinery to use above.
        (performance/simpler composite actor creation)

        * clutter/clutter-stage.c: (clutter_stage_fullscreen),
        (clutter_stage_unfullscreen), (clutter_stage_event):
        Only set the fullscreen property on stage state fullscreen event(#545)
        Experimental as could be painful to implement on non X backends.
2007-10-08 16:18:33 +00:00
Matthew Allum
bc13e907cc 2007-10-03 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-event.c:
        * clutter/clutter-event.h:
        * clutter/clutter-main.c:
        * clutter/clutter-private.h:
        * clutter/eglnative/clutter-event-egl.c:
        * clutter/eglx/clutter-event-egl.c:
        * clutter/glx/clutter-event-glx.c:
        * clutter/sdl/clutter-event-sdl.c:
        Remove seperate double/triple click events and replace with
        a click_count member.
        Move calculating click counts from backend to do_event()
        Initial implementation of ENTER/LEAVE events.

        * tests/test-events.c:
        Add code to test above.

        * tests/test-behave.c:
        Sync with newer API.

        * clutter/clutter-score.c:
        Silence a warning.
2007-10-03 09:28:16 +00:00
Emmanuele Bassi
db0ed63c93 2007-10-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_get_size): Implement
	get_size() as a wrapper around clutter_actor_query_coords()
	instead of calling g_object_get() twice.

	(clutter_actor_init): Initialise the box in one call.
2007-10-02 14:45:40 +00:00
Emmanuele Bassi
090c1d11b4 2007-10-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Remove the ::event-after signal
	class handler, as it's not meant to be overridden by sub-classes.

	(clutter_actor_class_init):
	Make every event-related signal return a boolean: return TRUE
	in a signal handler to block the emission. The value is accumulated
	automatically by the signal API.

	(clutter_actor_event): If ::event returns TRUE, skip to emitting
	::event-after. Return the value accumulated by the signal emission
	chain.

	* clutter/clutter-private.h: Rename _clutter_boolean_accumlator().

	* clutter/clutter-main.c (clutter_do_event): If clutter_actor_event()
	returns TRUE then stop the event emission chain from child to parent.

	* clutter/clutter-stage.c (clutter_stage_event): Behave like
	clutter_actor_event().

	(clutter_stage_get_key_focus),
	(clutter_stage_set_key_focus): Avoid a nasty circular reference
	issue: if the actor passed to set_key_focus is NULL then the stage
	has the key focus.

	* tests/test-events.c: Update the events test with the API
	changes.
2007-10-02 14:03:36 +00:00
Tomas Frydrych
5b4b51ba7a 2007-10-01 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
	(clutter_actor_set_scale_with_gravityx):
	Use CLUTTER_QMUL for better precission (#532, patch by Gwenole
	Beauchesne).

	* clutter/clutter-color.c:
	(clutter_color_to_hlsx):
	Added missing CLUTTER_INT_TO_FIXED conversion (#544, patch by Neil
	Roberts).
2007-10-01 15:26:09 +00:00
Matthew Allum
5ab0ed5a00 2007-09-27 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-event.c:
        * clutter/clutter-event.h:
        * clutter/clutter-main.c:
        Further event tweaks;
        - Ref the event actor source
        - Protect against off stage events (button releases)
        - Move more into ClutterEventAny
        - Add a click count to button event (as yet unused)
        - Minor cleanups

        * clutter/clutter-actor.c:
        Make scale x/y a property.

        * clutter/clutter-private.h:
        Remove _clutter_actor_apply_modelview*

        * clutter/eglx/clutter-backend-egl.c:
        Warning cleanup

        * clutter/eglx/clutter-stage-egl.c:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/sdl/clutter-stage-sdl.c:
        Avoid setting viewport directly, but set sync flag.

        * clutter/pango/pangoclutter-render.c: (draw_glyph):
        Minor cleanups.

        * clutter/Makefile.am:
        * tests/Makefile.am:
        * tests/test-score.c
        * clutter/clutter.h:
        * clutter/clutter-score.h:
        * clutter/clutter-score.c:
        Add very initial (broken) ClutterScore implementation.
2007-09-27 21:38:38 +00:00
Matthew Allum
1ceaf04ac7 2007-08-24 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-event.h:
        * clutter/clutter-main.c:
        * clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        * clutter/glx/clutter-backend-glx.c:
        * clutter/glx/clutter-backend-glx.h:
        * clutter/glx/clutter-event-glx.c:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/glx/clutter-stage-glx.h:
        Add initial support for stage state events.
        Fix fullscreening for an already mapped stage.

        * tests/test-events.c:
        Print out info from the above. Blue button now toggles
        fullscreen.

        * clutter/clutter-effect.c:
        * clutter/clutter-effect.h:
        Add a setting for templates to ref or clone underlying
        timelines. (As to improve sync issues like those in foofone)

        * tests/test-timeline.c:
        Also add completed signals.

        * clutter/cogl/gles/cogl.c: (cogl_texture_image_2d):
        * configure.ac:
        Forward port from stable branch. RGB Image fixes gles
        and check for lower case libgles_cm.
2007-08-24 15:12:52 +00:00
Tomas Frydrych
e0f609e8aa Fixed rotation around x axis (bug 486).
* clutter/clutter-actor.c:
(_clutter_actor_apply_modelview_transform):
2007-08-24 06:19:06 +00:00
Emmanuele Bassi
00142fdb62 Return event coordinates for 3BUTTON_PRESS events
The switch() in clutter_event_get_coords() wasn't returning the coordinates
for the 3 button press events, thus those events never reached the actors.
2007-08-21 15:48:51 +00:00
Emmanuele Bassi
d7dc1d7c97 Add checks on the reactive accessors
Check for the parameter in the various "reactive" flag accessors.
2007-08-15 19:50:31 +00:00
Emmanuele Bassi
ab948d577f Rename ClutterContainer raise() and lower() methods to avoid clashes
Language bindings will have problems with raise() and lower() bein in both
ClutterContainer and ClutterActor; hence, this patch renames
clutter_container_raise() and clutter_container_lower() to
clutter_container_raise_child() and clutter_container_lower_child(),
respectively.
2007-08-14 08:01:33 +00:00
Matthew Allum
8ad4dde16b 2007-08-13 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-event.c:
        * clutter/clutter-event.h:
        * clutter/clutter-main.c:
        * clutter/clutter-main.h:
        * clutter/clutter-private.h:
        * clutter/clutter-stage.c:
        * clutter/clutter-stage.h:
        * clutter/clutter-types.h:
        Initial implementation of actors emmitting event signals (423);
        - Actors set_reactive() to receive mouse events.
          (call clutter_enable_motion_events() for per action motion events)
        - clutter_stage_set_key_focus () to direct key events.
        - Events bubble up to parents (ending at stage)
          (original source identified by clutter_event_get_source())
        TODO:
        - enter/leave notifys for actors.
        - stage specific events - fullscreen
        - grabs

        * tests/test-events.c:
        Extend a little to use new API

        * clutter/cogl/gl/cogl.c:
        * clutter/glx/clutter-backend-glx.c:
        Move get_proc_address into cogl and out of backend.
        (shaders will need it)

        * clutter/clutter-group.c: (clutter_group_real_lower):
        Fix a minor compile warning.

        * TODO:
        Sync up.
2007-08-13 20:48:01 +00:00
Emmanuele Bassi
a60dcb9889 Make ClutterActor use ClutterContainer methods
Every direct reference to ClutterGroup has been removed, in favour of
ClutterContainer - which is the official way of creating container
actors as of 0.4.
2007-08-13 17:01:07 +00:00
Emmanuele Bassi
4befcd0a64 Merge clutter.git/threading branch 2007-08-08 10:20:14 +00:00
Matthew Allum
e1d439f9c9 2007-08-05 Matthew Allum <mallum@openedhand.com>
* README:
        * clutter/clutter-actor.c:
        Document show/hide_all behaviour correctly.
2007-08-05 13:37:49 +00:00
Emmanuele Bassi
7cd4ee0517 2007-08-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_set_opacity): Queue
	a redraw when setting the opacity of an actor.
2007-08-04 07:55:55 +00:00
Emmanuele Bassi
fbadfa1a6b 2007-08-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Add floating-point variant of the
	clutter_actor_get_r[xyz]angx() functions.
2007-08-01 13:11:43 +00:00
Tomas Frydrych
2cc4a23820 Fixed incorrect order of modelview matrix stacking while calculating actor vertices. 2007-07-30 07:27:14 +00:00
Emmanuele Bassi
ad64200aa7 2007-07-28 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Use GInitiallyUnowned
	as the parent structure in the ClutterActor structure
	definition; somehow, this has escaped everyone attention
	in one year and a half. Luckily, GInitiallyUnowned is
	as big as GObject.
	 
	 (clutter_actor_get_abs_position_units),
	 (clutter_actor_get_abs_position): Check parameters.

	 * clutter/clutter-texture.h: Unmangle the flags enum
	 type declaration, so that dumb parsers like h2defs.py
	 are not fooled.

	 * clutter/clutter-behaviour-ellipse.[ch]:
	 * clutter/clutter-effect.c: Fix some documentation
	 issues and make gtk-doc happy.
2007-07-28 17:11:39 +00:00
Emmanuele Bassi
454e493197 Fix various compiler warnings
Most of these fixes are simple symbol shadowing issues, like index and the
braindead y0 and y1 extern symbols exported by math.h on GNU libc systems.

There is a masking issue in ClutterTexture which should be checked; I ran
the tests and everything looked fine.

The rest are just unused variables.
2007-07-26 11:04:04 +00:00
Emmanuele Bassi
a37f537cd0 2007-07-24 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c:
	* clutter/clutter-box.h:
	* clutter/clutter-stage.c: Documentation fixes.
2007-07-24 17:34:06 +00:00
Matthew Allum
8fcfa9e2db 2007-07-12 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c: (clutter_actor_paint):
        * clutter/clutter-stage.c: (clutter_stage_get_actor_at_pos):
        * clutter/cogl/cogl.h:
        * clutter/cogl/gl/cogl.c: (cogl_get_viewport):
        * clutter/cogl/gles/cogl.c: (cogl_get_viewport):
        Based on patch from Pan Bohui, See;
        http://bugzilla.openedhand.com/show_bug.cgi?id=390

        * TODO:
        More misc updates.
2007-07-12 10:15:19 +00:00
Emmanuele Bassi
11775a16f0 2007-07-04 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Use the right get_type() function
	name for ClutterVertex, and add the CLUTTER_TYPE_VERTEX macro.
2007-07-04 09:17:10 +00:00
Tomas Frydrych
b9e486f587 use ClutterVertex to pass parameters into clutter_actor_apply_transform_to_point() 2007-07-02 09:21:58 +00:00
Emmanuele Bassi
500d7482b6 Documentation fixes
Various fixes in the API reference build and text.
2007-07-01 16:44:24 +00:00
Tomas Frydrych
4bb51a4787 renamed clutter_actor_project_* functions 2007-06-27 15:10:52 +00:00
Tomas Frydrych
e10a0ad025 clutter_actor_project_point(): separated input from output parameters 2007-06-27 15:10:42 +00:00
Tomas Frydrych
4fda40461e Fixed incorrect order of scaling and rotation in _clutter_actor_apply_modelview_transform() 2007-06-27 11:34:43 +00:00
Tomas Frydrych
4ed86c4bc1 fixed clutter_actor_scale_with_gravityx() 2007-06-27 09:41:49 +00:00
Tomas Frydrych
f4029ab77c added fixed version of clutter_actor_rotate_*() functions and accessors for rotation angles 2007-06-26 11:35:33 +00:00
Matthew Allum
ee6156cb01 2007-06-22 Matthew Allum <mallum@openedhand.com>
* NEWS:
        * README.in:
        * TODO:
        Update for 0.3 release.

        * clutter/clutter-actor.c:
        Minor doc fixups

        * clutter/clutter-texture.c:
        Various minor additions for handling non RGBA data.
        Fix a typo breaking clutter_texture_get_pixbuf() on tiled textures.

        * tests/test-actors.c:
        Disable scaling to avoid drifting (temporary till API is fixed)
2007-06-22 15:16:40 +00:00
Emmanuele Bassi
4172ce1fb2 2007-06-16 Emmanuele Bassi <ebassi@openedhand.com>
* configure.ac: Partially revert last commit, and fail
	with AC_MSG_ERROR() instead of disabling the manual build
	if no jw and xmlto were found.
2007-06-16 20:58:00 +00:00
Matthew Allum
53301e1bba 2007-06-16 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        Fix typo in x rotation transform (Thanks to Johan Billen #138)

        * configure.ac:
        * doc/manual/Makefile.am:
        Fix manual build and required program check.

        * tests/Makefile.am:
        Another typo fix.
2007-06-15 23:15:34 +00:00
Tomas Frydrych
0c5546007c removal of debug stuff, addition of comments 2007-06-15 09:53:07 +00:00
Emmanuele Bassi
a1958da910 2007-06-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-box.[ch]: Base class for layout containers.

	* clutter/clutter-hbox.[ch]: Horizontal box actor.
	
	* clutter/clutter-vbox.[ch]: Vertical box actor.

	* clutter/clutter.h:
	* clutter/Makefile.am: Build glue

	* tests/Makefile.am:
	* tests/test-boxes.c: Test suite for ClutterBox API and
	implementations.
2007-06-14 15:29:52 +00:00
Tomas Frydrych
1391ee7306 use clutter_actor_project_point/vertices in clutter_actor_get_abs_position/size 2007-06-14 08:17:13 +00:00
Matthew Allum
61e3252ff1 2007-06-14 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
        * clutter/clutter-actor.h:
        * clutter/clutter-group.c:
        * clutter/clutter-label.c:
        * clutter/egl/clutter-stage-egl.c:
        * clutter/glx/clutter-stage-glx.c:
        * clutter/sdl/clutter-stage-sdl.c:
        Rename clutter_actor_allocate_coords -> clutter_actor_query_coords

        Change repaints to G_PRIORITY_DEFAULT + 10.
        (timelines are G_PRIORITY_DEFAULT + 30, events G_PRIORITY_DEFAULT)

        * clutter/glx/clutter-event-glx.c:
        Handle shift modifier in keycode -> keysym translation.

        * tests/test-actors.c:
        Remove (broken) screen saver code.
        Add scaling behaviour, clean code a little
2007-06-13 23:24:59 +00:00