From df92202c5f1759107460b23d726bd466df4d6b4d Mon Sep 17 00:00:00 2001 From: Matthew Allum Date: Tue, 13 Jun 2006 13:17:45 +0000 Subject: [PATCH] 2006-06-13 Matthew Allum * clutter/Makefile.am: * clutter/clutter-actor.c: * clutter/clutter-actor.h: * clutter/clutter-clone-texture.c: * clutter/clutter-clone-texture.h: * clutter/clutter-element.c: * clutter/clutter-element.h: * clutter/clutter-group.c: * clutter/clutter-group.h: * clutter/clutter-label.c: * clutter/clutter-label.h: * clutter/clutter-main.c: * clutter/clutter-main.h: * clutter/clutter-rectangle.c: * clutter/clutter-rectangle.h: * clutter/clutter-stage.c: * clutter/clutter-stage.h: * clutter/clutter-texture.c: * clutter/clutter-texture.h: * clutter/clutter-video-texture.c: * clutter/clutter-video-texture.h: * clutter/clutter.h: * examples/super-oh.c: * examples/test-text.c: * examples/test-video.c: * examples/test.c: * examples/video-cube.c: * gtk/gtk-clutter-test.c: * gtk/gtk-clutter.c: * gtk/gtk-clutter.h: Element to Actor Renaming. --- ChangeLog | 34 + bindings/ChangeLog | 10 + bindings/python/Makefile.am | 3 +- bindings/python/clutter-base-types.defs | 114 +- bindings/python/clutter-base.defs | 378 ++--- bindings/python/clutter.override | 89 +- clutter/Makefile.am | 4 +- clutter/clutter-actor.c | 1287 +++++++++++++++++ clutter/clutter-actor.h | 269 ++++ clutter/clutter-clone-texture.c | 32 +- clutter/clutter-clone-texture.h | 6 +- clutter/clutter-element.c | 1287 ----------------- clutter/clutter-element.h | 269 ---- clutter/clutter-group.c | 252 ++-- clutter/clutter-group.h | 28 +- clutter/clutter-label.c | 44 +- clutter/clutter-label.h | 4 +- clutter/clutter-main.c | 12 +- clutter/clutter-main.h | 2 +- clutter/clutter-rectangle.c | 30 +- clutter/clutter-rectangle.h | 10 +- clutter/clutter-stage.c | 98 +- clutter/clutter-stage.h | 8 +- clutter/clutter-texture.c | 88 +- clutter/clutter-texture.h | 12 +- clutter/clutter-video-texture.c | 20 +- clutter/clutter-video-texture.h | 4 +- clutter/clutter.h | 2 +- doc/reference/ChangeLog | 13 + doc/reference/clutter-0.0-sections.txt | 120 +- doc/reference/clutter.types | 2 +- doc/reference/tmpl/clutter-0.0-unused.sgml | 699 +++++++++ doc/reference/tmpl/clutter-enum-types.sgml | 53 +- doc/reference/tmpl/clutter-group.sgml | 12 +- doc/reference/tmpl/clutter-main.sgml | 2 + doc/reference/tmpl/clutter-stage.sgml | 2 +- doc/reference/tmpl/clutter-video-texture.sgml | 245 ---- examples/super-oh.c | 38 +- examples/test-text.c | 12 +- examples/test-video.c | 30 +- examples/test.c | 26 +- examples/video-cube.c | 22 +- gtk/gtk-clutter-test.c | 38 +- gtk/gtk-clutter.c | 8 +- gtk/gtk-clutter.h | 4 +- 45 files changed, 2979 insertions(+), 2743 deletions(-) create mode 100644 clutter/clutter-actor.c create mode 100644 clutter/clutter-actor.h delete mode 100644 clutter/clutter-element.c delete mode 100644 clutter/clutter-element.h diff --git a/ChangeLog b/ChangeLog index c28d37010..4319fccfb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +2006-06-13 Matthew Allum + + * clutter/Makefile.am: + * clutter/clutter-actor.c: + * clutter/clutter-actor.h: + * clutter/clutter-clone-texture.c: + * clutter/clutter-clone-texture.h: + * clutter/clutter-element.c: + * clutter/clutter-element.h: + * clutter/clutter-group.c: + * clutter/clutter-group.h: + * clutter/clutter-label.c: + * clutter/clutter-label.h: + * clutter/clutter-main.c: + * clutter/clutter-main.h: + * clutter/clutter-rectangle.c: + * clutter/clutter-rectangle.h: + * clutter/clutter-stage.c: + * clutter/clutter-stage.h: + * clutter/clutter-texture.c: + * clutter/clutter-texture.h: + * clutter/clutter-video-texture.c: + * clutter/clutter-video-texture.h: + * clutter/clutter.h: + * examples/super-oh.c: + * examples/test-text.c: + * examples/test-video.c: + * examples/test.c: + * examples/video-cube.c: + * gtk/gtk-clutter-test.c: + * gtk/gtk-clutter.c: + * gtk/gtk-clutter.h: + Element to Actor Renaming. + 2006-06-12 Matthew Allum * clutter/Makefile.am: diff --git a/bindings/ChangeLog b/bindings/ChangeLog index c78ed876b..31c2dcfb6 100644 --- a/bindings/ChangeLog +++ b/bindings/ChangeLog @@ -1,3 +1,13 @@ +2006-06-13 Matthew Allum + + * ChangeLog: + * python/Makefile.am: + * python/clutter-base-types.defs: + * python/clutter-base.defs: + * python/clutter.override: + Rename element -> actor. + Disable video texture bindings as to build again. + 2006-06-06 Matthew Allum * python/clutter-base.defs: diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am index 13437663f..f09de78dc 100644 --- a/bindings/python/Makefile.am +++ b/bindings/python/Makefile.am @@ -76,12 +76,11 @@ update-defs: $(top_srcdir)/clutter/clutter-timeline.h \ $(top_srcdir)/clutter/clutter-main.h \ $(top_srcdir)/clutter/clutter-event.h \ - $(top_srcdir)/clutter/clutter-element.h \ + $(top_srcdir)/clutter/clutter-actor.h \ $(top_srcdir)/clutter/clutter-rectangle.h \ $(top_srcdir)/clutter/clutter-texture.h \ $(top_srcdir)/clutter/clutter-color.h \ $(top_srcdir)/clutter/clutter-clone-texture.h \ - $(top_srcdir)/clutter/clutter-video-texture.h \ $(top_srcdir)/clutter/clutter-label.h \ $(top_srcdir)/clutter/clutter-group.h \ $(top_srcdir)/clutter/clutter-stage.h \ diff --git a/bindings/python/clutter-base-types.defs b/bindings/python/clutter-base-types.defs index 9a3b5a72a..d17ad16c5 100644 --- a/bindings/python/clutter-base-types.defs +++ b/bindings/python/clutter-base-types.defs @@ -17,10 +17,10 @@ ) ) -(define-boxed ElementBox +(define-boxed ActorBox (in-module "Clutter") - (c-name "ClutterElementBox") - (gtype-id "CLUTTER_TYPE_ELEMENT_BOX") + (c-name "ClutterActorBox") + (gtype-id "CLUTTER_TYPE_ACTOR_BOX") (fields '("gint" "x1") '("gint" "y1") @@ -52,23 +52,23 @@ ;; Enumerations and flags ... -(define-flags ElementFlags +(define-flags ActorFlags (in-module "Clutter") - (c-name "ClutterElementFlags") - (gtype-id "CLUTTER_TYPE_ELEMENT_FLAGS") + (c-name "ClutterActorFlags") + (gtype-id "CLUTTER_TYPE_ACTOR_FLAGS") (values - '("mapped" "CLUTTER_ELEMENT_MAPPED") - '("realized" "CLUTTER_ELEMENT_REALIZED") + '("mapped" "CLUTTER_ACTOR_MAPPED") + '("realized" "CLUTTER_ACTOR_REALIZED") ) ) -(define-flags ElementTransform +(define-flags ActorTransform (in-module "Clutter") - (c-name "ClutterElementTransform") - (gtype-id "CLUTTER_TYPE_ELEMENT_TRANSFORM") + (c-name "ClutterActorTransform") + (gtype-id "CLUTTER_TYPE_ACTOR_TRANSFORM") (values - '("x" "CLUTTER_ELEMENT_MIRROR_X") - '("y" "CLUTTER_ELEMENT_MIRROR_Y") + '("x" "CLUTTER_ACTOR_MIRROR_X") + '("y" "CLUTTER_ACTOR_MIRROR_Y") ) ) @@ -87,92 +87,25 @@ ) ) -(define-enum VideoTextureAspectRatio - (in-module "Clutter") - (c-name "ClutterVideoTextureAspectRatio") - (gtype-id "CLUTTER_TYPE_VIDEO_TEXTURE_ASPECT_RATIO") - (values - '("auto" "CLUTTER_VIDEO_TEXTURE_AUTO") - '("square" "CLUTTER_VIDEO_TEXTURE_SQUARE") - '("fourbythree" "CLUTTER_VIDEO_TEXTURE_FOURBYTHREE") - '("anamorphic" "CLUTTER_VIDEO_TEXTURE_ANAMORPHIC") - '("dvb" "CLUTTER_VIDEO_TEXTURE_DVB") - ) -) - -(define-enum VideoTextureError - (in-module "Clutter") - (c-name "ClutterVideoTextureError") - (gtype-id "CLUTTER_TYPE_VIDEO_TEXTURE_ERROR") - (values - '("audio-plugin" "CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_PLUGIN") - '("no-plugin-for-file" "CLUTTER_VIDEO_TEXTURE_ERROR_NO_PLUGIN_FOR_FILE") - '("video-plugin" "CLUTTER_VIDEO_TEXTURE_ERROR_VIDEO_PLUGIN") - '("audio-busy" "CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_BUSY") - '("broken-file" "CLUTTER_VIDEO_TEXTURE_ERROR_BROKEN_FILE") - '("file-generic" "CLUTTER_VIDEO_TEXTURE_ERROR_FILE_GENERIC") - '("file-permission" "CLUTTER_VIDEO_TEXTURE_ERROR_FILE_PERMISSION") - '("file-encrypted" "CLUTTER_VIDEO_TEXTURE_ERROR_FILE_ENCRYPTED") - '("file-not-found" "CLUTTER_VIDEO_TEXTURE_ERROR_FILE_NOT_FOUND") - '("dvd-encrypted" "CLUTTER_VIDEO_TEXTURE_ERROR_DVD_ENCRYPTED") - '("invalid-device" "CLUTTER_VIDEO_TEXTURE_ERROR_INVALID_DEVICE") - '("unknown-host" "CLUTTER_VIDEO_TEXTURE_ERROR_UNKNOWN_HOST") - '("network-unreachable" "CLUTTER_VIDEO_TEXTURE_ERROR_NETWORK_UNREACHABLE") - '("connection-refused" "CLUTTER_VIDEO_TEXTURE_ERROR_CONNECTION_REFUSED") - '("unvalid-location" "CLUTTER_VIDEO_TEXTURE_ERROR_UNVALID_LOCATION") - '("generic" "CLUTTER_VIDEO_TEXTURE_ERROR_GENERIC") - '("codec-not-handled" "CLUTTER_VIDEO_TEXTURE_ERROR_CODEC_NOT_HANDLED") - '("audio-only" "CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_ONLY") - '("cannot-capture" "CLUTTER_VIDEO_TEXTURE_ERROR_CANNOT_CAPTURE") - '("read-error" "CLUTTER_VIDEO_TEXTURE_ERROR_READ_ERROR") - '("plugin-load" "CLUTTER_VIDEO_TEXTURE_ERROR_PLUGIN_LOAD") - '("still-image" "CLUTTER_VIDEO_TEXTURE_ERROR_STILL_IMAGE") - '("empty-file" "CLUTTER_VIDEO_TEXTURE_ERROR_EMPTY_FILE") - ) -) - -(define-enum VideoTextureMetadataType - (in-module "Clutter") - (c-name "ClutterVideoTextureMetadataType") - (gtype-id "CLUTTER_TYPE_VIDEO_TEXTURE_METADATA_TYPE") - (values - '("title" "CLUTTER_INFO_TITLE") - '("artist" "CLUTTER_INFO_ARTIST") - '("year" "CLUTTER_INFO_YEAR") - '("album" "CLUTTER_INFO_ALBUM") - '("duration" "CLUTTER_INFO_DURATION") - '("track-number" "CLUTTER_INFO_TRACK_NUMBER") - '("has-video" "CLUTTER_INFO_HAS_VIDEO") - '("dimension-x" "CLUTTER_INFO_DIMENSION_X") - '("dimension-y" "CLUTTER_INFO_DIMENSION_Y") - '("video-bitrate" "CLUTTER_INFO_VIDEO_BITRATE") - '("video-codec" "CLUTTER_INFO_VIDEO_CODEC") - '("fps" "CLUTTER_INFO_FPS") - '("has-audio" "CLUTTER_INFO_HAS_AUDIO") - '("audio-bitrate" "CLUTTER_INFO_AUDIO_BITRATE") - '("audio-codec" "CLUTTER_INFO_AUDIO_CODEC") - ) -) - ;; Objects (define-object CloneTexture (in-module "Clutter") - (parent "ClutterElement") + (parent "ClutterActor") (c-name "ClutterCloneTexture") (gtype-id "CLUTTER_TYPE_CLONE_TEXTURE") ) -(define-object Element +(define-object Actor (in-module "Clutter") (parent "GObject") - (c-name "ClutterElement") - (gtype-id "CLUTTER_TYPE_ELEMENT") + (c-name "ClutterActor") + (gtype-id "CLUTTER_TYPE_ACTOR") ) (define-object Group (in-module "Clutter") - (parent "ClutterElement") + (parent "ClutterActor") (c-name "ClutterGroup") (gtype-id "CLUTTER_TYPE_GROUP") ) @@ -186,7 +119,7 @@ (define-object Rectangle (in-module "Clutter") - (parent "ClutterElement") + (parent "ClutterActor") (c-name "ClutterRectangle") (gtype-id "CLUTTER_TYPE_RECTANGLE") ) @@ -200,7 +133,7 @@ (define-object Texture (in-module "Clutter") - (parent "ClutterElement") + (parent "ClutterActor") (c-name "ClutterTexture") (gtype-id "CLUTTER_TYPE_TEXTURE") ) @@ -212,13 +145,6 @@ (gtype-id "CLUTTER_TYPE_TIMELINE") ) -(define-object VideoTexture - (in-module "Clutter") - (parent "ClutterTexture") - (c-name "ClutterVideoTexture") - (gtype-id "CLUTTER_TYPE_VIDEO_TEXTURE") -) - ;; Pointers diff --git a/bindings/python/clutter-base.defs b/bindings/python/clutter-base.defs index ce3091628..25ffb2f8d 100644 --- a/bindings/python/clutter-base.defs +++ b/bindings/python/clutter-base.defs @@ -231,7 +231,7 @@ -;; From ../../clutter/clutter-element.h +;; From ../../clutter/clutter-actor.h (define-function clutter_geometry_get_type (c-name "clutter_geometry_get_type") @@ -244,79 +244,79 @@ ;; (return-type "ClutterGeometry") ;;) -(define-function clutter_element_box_get_type - (c-name "clutter_element_box_get_type") +(define-function clutter_actor_box_get_type + (c-name "clutter_actor_box_get_type") (return-type "GType") ) -;;(define-function element_box_new -;; (c-name "clutter_element_box_new") -;; (is-constructor-of "ClutterElementBox") -;; (return-type "ClutterElementBox") +;;(define-function actor_box_new +;; (c-name "clutter_actor_box_new") +;; (is-constructor-of "ClutterActorBox") +;; (return-type "ClutterActorBox") ;;) -(define-function clutter_element_get_type - (c-name "clutter_element_get_type") +(define-function clutter_actor_get_type + (c-name "clutter_actor_get_type") (return-type "GType") ) (define-method show - (of-object "ClutterElement") - (c-name "clutter_element_show") + (of-object "ClutterActor") + (c-name "clutter_actor_show") (return-type "none") ) (define-method hide - (of-object "ClutterElement") - (c-name "clutter_element_hide") + (of-object "ClutterActor") + (c-name "clutter_actor_hide") (return-type "none") ) (define-method realize - (of-object "ClutterElement") - (c-name "clutter_element_realize") + (of-object "ClutterActor") + (c-name "clutter_actor_realize") (return-type "none") ) (define-method unrealize - (of-object "ClutterElement") - (c-name "clutter_element_unrealize") + (of-object "ClutterActor") + (c-name "clutter_actor_unrealize") (return-type "none") ) (define-method paint - (of-object "ClutterElement") - (c-name "clutter_element_paint") + (of-object "ClutterActor") + (c-name "clutter_actor_paint") (return-type "none") ) (define-method queue_redraw - (of-object "ClutterElement") - (c-name "clutter_element_queue_redraw") + (of-object "ClutterActor") + (c-name "clutter_actor_queue_redraw") (return-type "none") ) (define-method request_coords - (of-object "ClutterElement") - (c-name "clutter_element_request_coords") + (of-object "ClutterActor") + (c-name "clutter_actor_request_coords") (return-type "none") (parameters - '("ClutterElementBox*" "box") + '("ClutterActorBox*" "box") ) ) (define-method allocate_coords - (of-object "ClutterElement") - (c-name "clutter_element_allocate_coords") + (of-object "ClutterActor") + (c-name "clutter_actor_allocate_coords") (return-type "none") (parameters - '("ClutterElementBox*" "box") + '("ClutterActorBox*" "box") ) ) (define-method set_geometry - (of-object "ClutterElement") - (c-name "clutter_element_set_geometry") + (of-object "ClutterActor") + (c-name "clutter_actor_set_geometry") (return-type "none") (parameters '("ClutterGeometry*" "geom") @@ -324,8 +324,8 @@ ) (define-method get_geometry - (of-object "ClutterElement") - (c-name "clutter_element_get_geometry") + (of-object "ClutterActor") + (c-name "clutter_actor_get_geometry") (return-type "none") (parameters '("ClutterGeometry*" "geom") @@ -333,8 +333,8 @@ ) (define-method get_coords - (of-object "ClutterElement") - (c-name "clutter_element_get_coords") + (of-object "ClutterActor") + (c-name "clutter_actor_get_coords") (return-type "none") (parameters '("gint*" "x1") @@ -345,8 +345,8 @@ ) (define-method set_position - (of-object "ClutterElement") - (c-name "clutter_element_set_position") + (of-object "ClutterActor") + (c-name "clutter_actor_set_position") (return-type "none") (parameters '("gint" "x") @@ -355,8 +355,8 @@ ) (define-method set_size - (of-object "ClutterElement") - (c-name "clutter_element_set_size") + (of-object "ClutterActor") + (c-name "clutter_actor_set_size") (return-type "none") (parameters '("gint" "width") @@ -365,8 +365,8 @@ ) (define-method get_abs_position - (of-object "ClutterElement") - (c-name "clutter_element_get_abs_position") + (of-object "ClutterActor") + (c-name "clutter_actor_get_abs_position") (return-type "none") (parameters '("gint*" "x") @@ -375,32 +375,32 @@ ) (define-method get_width - (of-object "ClutterElement") - (c-name "clutter_element_get_width") + (of-object "ClutterActor") + (c-name "clutter_actor_get_width") (return-type "guint") ) (define-method get_height - (of-object "ClutterElement") - (c-name "clutter_element_get_height") + (of-object "ClutterActor") + (c-name "clutter_actor_get_height") (return-type "guint") ) (define-method get_x - (of-object "ClutterElement") - (c-name "clutter_element_get_x") + (of-object "ClutterActor") + (c-name "clutter_actor_get_x") (return-type "gint") ) (define-method get_y - (of-object "ClutterElement") - (c-name "clutter_element_get_y") + (of-object "ClutterActor") + (c-name "clutter_actor_get_y") (return-type "gint") ) (define-method rotate_z - (of-object "ClutterElement") - (c-name "clutter_element_rotate_z") + (of-object "ClutterActor") + (c-name "clutter_actor_rotate_z") (return-type "none") (parameters '("gfloat" "angle") @@ -410,8 +410,8 @@ ) (define-method rotate_x - (of-object "ClutterElement") - (c-name "clutter_element_rotate_x") + (of-object "ClutterActor") + (c-name "clutter_actor_rotate_x") (return-type "none") (parameters '("gfloat" "angle") @@ -421,8 +421,8 @@ ) (define-method rotate_y - (of-object "ClutterElement") - (c-name "clutter_element_rotate_y") + (of-object "ClutterActor") + (c-name "clutter_actor_rotate_y") (return-type "none") (parameters '("gfloat" "angle") @@ -432,8 +432,8 @@ ) (define-method set_opacity - (of-object "ClutterElement") - (c-name "clutter_element_set_opacity") + (of-object "ClutterActor") + (c-name "clutter_actor_set_opacity") (return-type "none") (parameters '("guint8" "opacity") @@ -441,14 +441,14 @@ ) (define-method get_opacity - (of-object "ClutterElement") - (c-name "clutter_element_get_opacity") + (of-object "ClutterActor") + (c-name "clutter_actor_get_opacity") (return-type "guint8") ) (define-method set_name - (of-object "ClutterElement") - (c-name "clutter_element_set_name") + (of-object "ClutterActor") + (c-name "clutter_actor_set_name") (return-type "none") (parameters '("const-gchar*" "id") @@ -456,20 +456,20 @@ ) (define-method get_name - (of-object "ClutterElement") - (c-name "clutter_element_get_name") + (of-object "ClutterActor") + (c-name "clutter_actor_get_name") (return-type "const-gchar*") ) (define-method get_id - (of-object "ClutterElement") - (c-name "clutter_element_get_id") + (of-object "ClutterActor") + (c-name "clutter_actor_get_id") (return-type "guint32") ) (define-method set_clip - (of-object "ClutterElement") - (c-name "clutter_element_set_clip") + (of-object "ClutterActor") + (c-name "clutter_actor_set_clip") (return-type "none") (parameters '("gint" "xoff") @@ -480,59 +480,59 @@ ) (define-method remove_clip - (of-object "ClutterElement") - (c-name "clutter_element_remove_clip") + (of-object "ClutterActor") + (c-name "clutter_actor_remove_clip") (return-type "none") ) (define-method set_parent - (of-object "ClutterElement") - (c-name "clutter_element_set_parent") + (of-object "ClutterActor") + (c-name "clutter_actor_set_parent") (return-type "none") (parameters - '("ClutterElement*" "parent") + '("ClutterActor*" "parent") ) ) (define-method get_parent - (of-object "ClutterElement") - (c-name "clutter_element_get_parent") - (return-type "ClutterElement*") + (of-object "ClutterActor") + (c-name "clutter_actor_get_parent") + (return-type "ClutterActor*") ) (define-method raise - (of-object "ClutterElement") - (c-name "clutter_element_raise") + (of-object "ClutterActor") + (c-name "clutter_actor_raise") (return-type "none") (parameters - '("ClutterElement*" "below") + '("ClutterActor*" "below") ) ) (define-method lower - (of-object "ClutterElement") - (c-name "clutter_element_lower") + (of-object "ClutterActor") + (c-name "clutter_actor_lower") (return-type "none") (parameters - '("ClutterElement*" "above") + '("ClutterActor*" "above") ) ) (define-method raise_top - (of-object "ClutterElement") - (c-name "clutter_element_raise_top") + (of-object "ClutterActor") + (c-name "clutter_actor_raise_top") (return-type "none") ) (define-method lower_bottom - (of-object "ClutterElement") - (c-name "clutter_element_lower_bottom") + (of-object "ClutterActor") + (c-name "clutter_actor_lower_bottom") (return-type "none") ) (define-method set_depth - (of-object "ClutterElement") - (c-name "clutter_element_set_depth") + (of-object "ClutterActor") + (c-name "clutter_actor_set_depth") (return-type "none") (parameters '("gint" "depth") @@ -540,8 +540,8 @@ ) (define-method get_depth - (of-object "ClutterElement") - (c-name "clutter_element_get_depth") + (of-object "ClutterActor") + (c-name "clutter_actor_get_depth") (return-type "gint") ) @@ -550,13 +550,13 @@ (define-function clutter_rectangle_new (c-name "clutter_rectangle_new") (is-constructor-of "ClutterRectangle") - (return-type "ClutterElement*") + (return-type "ClutterActor*") ) (define-function clutter_rectangle_new_with_color (c-name "clutter_rectangle_new_with_color") (is-constructor-of "ClutterRectangle") - (return-type "ClutterElement*") + (return-type "ClutterActor*") (properties '("color" (argname "color")) ) @@ -591,7 +591,7 @@ (define-function clutter_texture_new_from_pixbuf (c-name "clutter_texture_new_from_pixbuf") - (return-type "ClutterElement*") + (return-type "ClutterActor*") (parameters '("GdkPixbuf*" "pixbuf") ) @@ -600,7 +600,7 @@ (define-function clutter_texture_new (c-name "clutter_texture_new") (is-constructor-of "ClutterTexture") - (return-type "ClutterElement*") + (return-type "ClutterActor*") ) (define-method set_pixbuf @@ -790,168 +790,12 @@ (define-function clutter_clone_texture_new (c-name "clutter_clone_texture_new") (is-constructor-of "ClutterCloneTexture") - (return-type "ClutterElement*") + (return-type "ClutterActor*") (properties '("parent-texture" (argname "texture")) ) ) - - -;; From ../../clutter/clutter-video-texture.h - -(define-function clutter_video_texture_error_quark - (c-name "clutter_video_texture_error_quark") - (return-type "GQuark") -) - -(define-function clutter_video_texture_get_type - (c-name "clutter_video_texture_get_type") - (return-type "GType") -) - -(define-function clutter_video_texture_new - (c-name "clutter_video_texture_new") - (is-constructor-of "ClutterVideoTexture") - (return-type "ClutterElement*") -) - -(define-method open - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_open") - (return-type "gboolean") - (parameters - '("const-gchar*" "mrl") - '("const-gchar*" "subtitle_uri") - '("GError**" "error") - ) -) - -(define-method play - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_play") - (return-type "gboolean") - (parameters - '("GError**" "error") - ) -) - -(define-method pause - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_pause") - (return-type "none") -) - -(define-method can_direct_seek - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_can_direct_seek") - (return-type "gboolean") -) - -(define-method seek_time - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_seek_time") - (return-type "gboolean") - (parameters - '("gint64" "time") - '("GError**" "gerror") - ) -) - -(define-method seek - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_seek") - (return-type "gboolean") - (parameters - '("float" "position") - '("GError**" "error") - ) -) - -(define-method stop - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_stop") - (return-type "none") -) - -(define-method can_set_volume - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_can_set_volume") - (return-type "gboolean") -) - -(define-method set_volume - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_set_volume") - (return-type "none") - (parameters - '("int" "volume") - ) -) - -(define-method get_volume - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_volume") - (return-type "int") -) - -(define-method get_current_time - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_current_time") - (return-type "gint64") -) - -(define-method get_stream_length - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_stream_length") - (return-type "gint64") -) - -(define-method is_playing - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_is_playing") - (return-type "gboolean") -) - -(define-method is_seekable - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_is_seekable") - (return-type "gboolean") -) - -(define-method get_position - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_position") - (return-type "float") -) - -(define-method set_aspect_ratio - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_set_aspect_ratio") - (return-type "none") - (parameters - '("ClutterVideoTextureAspectRatio" "ratio") - ) -) - -(define-method get_aspect_ratio - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_aspect_ratio") - (return-type "ClutterVideoTextureAspectRatio") -) - -(define-method get_metadata - (of-object "ClutterVideoTexture") - (c-name "clutter_video_texture_get_metadata") - (return-type "none") - (parameters - '("ClutterVideoTextureMetadataType" "type") - '("GValue*" "value") - ) -) - - - ;; From ../../clutter/clutter-label.h (define-function clutter_label_get_type @@ -962,12 +806,12 @@ (define-function clutter_label_new (c-name "clutter_label_new") (is-constructor-of "ClutterLabel") - (return-type "ClutterElement*") + (return-type "ClutterActor*") ) (define-function clutter_label_new_with_text (c-name "clutter_label_new_with_text") - (return-type "ClutterElement*") + (return-type "ClutterActor*") (is-constructor-of "ClutterLabel") (properties '("font-name" (argname "name") (optional)) @@ -1063,7 +907,7 @@ (c-name "clutter_group_add") (return-type "none") (parameters - '("ClutterElement*" "element") + '("ClutterActor*" "actor") ) ) @@ -1072,7 +916,7 @@ (c-name "clutter_group_add_many_valist") (return-type "none") (parameters - '("ClutterElement*" "first_element") + '("ClutterActor*" "first_actor") '("va_list" "args") ) ) @@ -1082,7 +926,7 @@ (c-name "clutter_group_add_many") (return-type "none") (parameters - '("ClutterElement*" "first_element") + '("ClutterActor*" "first_actor") ) (varargs #t) ) @@ -1092,7 +936,7 @@ (c-name "clutter_group_remove") (return-type "none") (parameters - '("ClutterElement*" "element") + '("ClutterActor*" "actor") ) ) @@ -1111,7 +955,7 @@ (define-method find_child_by_id (of-object "ClutterGroup") (c-name "clutter_group_find_child_by_id") - (return-type "ClutterElement*") + (return-type "ClutterActor*") (parameters '("guint" "id") ) @@ -1122,8 +966,8 @@ (c-name "clutter_group_raise") (return-type "none") (parameters - '("ClutterElement*" "element") - '("ClutterElement*" "sibling") + '("ClutterActor*" "actor") + '("ClutterActor*" "sibling") ) ) @@ -1132,8 +976,8 @@ (c-name "clutter_group_lower") (return-type "none") (parameters - '("ClutterElement*" "element") - '("ClutterElement*" "sibling") + '("ClutterActor*" "actor") + '("ClutterActor*" "sibling") ) ) @@ -1148,7 +992,7 @@ (define-function stage_get_default (c-name "clutter_stage_get_default") - (return-type "ClutterElement*") + (return-type "ClutterActor*") ) (define-method get_xwindow @@ -1175,10 +1019,10 @@ ) ) -(define-method get_element_at_pos +(define-method get_actor_at_pos (of-object "ClutterStage") - (c-name "clutter_stage_get_element_at_pos") - (return-type "ClutterElement*") + (c-name "clutter_stage_get_actor_at_pos") + (return-type "ClutterActor*") (parameters '("gint" "x") '("gint" "y") @@ -1206,13 +1050,13 @@ (return-type "GType") ) -(define-function clutter_element_transform_get_type - (c-name "clutter_element_transform_get_type") +(define-function clutter_actor_transform_get_type + (c-name "clutter_actor_transform_get_type") (return-type "GType") ) -(define-function clutter_element_flags_get_type - (c-name "clutter_element_flags_get_type") +(define-function clutter_actor_flags_get_type + (c-name "clutter_actor_flags_get_type") (return-type "GType") ) diff --git a/bindings/python/clutter.override b/bindings/python/clutter.override index 4f314c169..f5784ee68 100644 --- a/bindings/python/clutter.override +++ b/bindings/python/clutter.override @@ -9,12 +9,11 @@ headers #include #include #include -#include +#include #include #include #include #include -#include #include #include #include @@ -191,37 +190,37 @@ _wrap_clutter_geometry__set_height (PyGBoxed *self, PyObject *value, void *closu return 0; } %% -override clutter_element_box_new kwargs +override clutter_actor_box_new kwargs static int -_wrap_clutter_element_box_new (PyGBoxed *self, PyObject *args, PyObject *kwargs) +_wrap_clutter_actor_box_new (PyGBoxed *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "x1", "y1", "x2", "y2", NULL }; - ClutterElementBox box = { 0, 0, 0, 0 }; + ClutterActorBox box = { 0, 0, 0, 0 }; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "|iiii:ClutterElementBox.__init__", + "|iiii:ClutterActorBox.__init__", kwlist, &(box.x1), &(box.y1), &(box.x2), &(box.y2))) return -1; - self->boxed = g_boxed_copy (CLUTTER_TYPE_ELEMENT_BOX, &box); + self->boxed = g_boxed_copy (CLUTTER_TYPE_ACTOR_BOX, &box); self->free_on_dealloc = TRUE; - self->gtype = CLUTTER_TYPE_ELEMENT_BOX; + self->gtype = CLUTTER_TYPE_ACTOR_BOX; return 0; } %% -override-slot ClutterElementBox.tp_as_sequence +override-slot ClutterActorBox.tp_as_sequence static int -_wrap_clutter_element_box_length (PyGBoxed *self) +_wrap_clutter_actor_box_length (PyGBoxed *self) { return 4; } static PyObject * -_wrap_clutter_element_box_getitem(PyGBoxed *self, int pos) +_wrap_clutter_actor_box_getitem(PyGBoxed *self, int pos) { - ClutterElementBox *box; + ClutterActorBox *box; if (pos < 0) pos += 4; @@ -232,7 +231,7 @@ _wrap_clutter_element_box_getitem(PyGBoxed *self, int pos) return NULL; } - box = pyg_boxed_get (self, ClutterElementBox); + box = pyg_boxed_get (self, ClutterActorBox); switch (pos) { case 0: return PyInt_FromLong (box->x1); case 1: return PyInt_FromLong (box->y1); @@ -244,9 +243,9 @@ _wrap_clutter_element_box_getitem(PyGBoxed *self, int pos) } } static int -_wrap_clutter_element_box_setitem (PyGBoxed *self, int pos, PyObject *value) +_wrap_clutter_actor_box_setitem (PyGBoxed *self, int pos, PyObject *value) { - ClutterElementBox *box; + ClutterActorBox *box; gint val; if (pos < 0) @@ -258,7 +257,7 @@ _wrap_clutter_element_box_setitem (PyGBoxed *self, int pos, PyObject *value) return -1; } - box = pyg_boxed_get (self, ClutterElementBox); + box = pyg_boxed_get (self, ClutterActorBox); val = PyInt_AsLong (value); if (PyErr_Occurred ()) return -1; @@ -275,19 +274,19 @@ _wrap_clutter_element_box_setitem (PyGBoxed *self, int pos, PyObject *value) return 0; } -static PySequenceMethods _wrap_clutter_element_box_tp_as_sequence = { - (inquiry) _wrap_clutter_element_box_length, +static PySequenceMethods _wrap_clutter_actor_box_tp_as_sequence = { + (inquiry) _wrap_clutter_actor_box_length, (binaryfunc) 0, (intargfunc) 0, - (intargfunc) _wrap_clutter_element_box_getitem, + (intargfunc) _wrap_clutter_actor_box_getitem, (intintargfunc) 0, - (intobjargproc) _wrap_clutter_element_box_setitem, + (intobjargproc) _wrap_clutter_actor_box_setitem, (intintobjargproc) 0 }; %% -override-attr ClutterElementBox.x1 +override-attr ClutterActorBox.x1 static int -_wrap_clutter_element_box__set_x1 (PyGBoxed *self, PyObject *value, void *closure) +_wrap_clutter_actor_box__set_x1 (PyGBoxed *self, PyObject *value, void *closure) { gint val; @@ -295,14 +294,14 @@ _wrap_clutter_element_box__set_x1 (PyGBoxed *self, PyObject *value, void *closur if (PyErr_Occurred ()) return -1; - pyg_boxed_get (self, ClutterElementBox)->x1 = val; + pyg_boxed_get (self, ClutterActorBox)->x1 = val; return 0; } %% -override-attr ClutterElementBox.y1 +override-attr ClutterActorBox.y1 static int -_wrap_clutter_element_box__set_y1 (PyGBoxed *self, PyObject *value, void *closure) +_wrap_clutter_actor_box__set_y1 (PyGBoxed *self, PyObject *value, void *closure) { gint val; @@ -310,14 +309,14 @@ _wrap_clutter_element_box__set_y1 (PyGBoxed *self, PyObject *value, void *closur if (PyErr_Occurred ()) return -1; - pyg_boxed_get (self, ClutterElementBox)->y1 = val; + pyg_boxed_get (self, ClutterActorBox)->y1 = val; return 0; } %% -override-attr ClutterElementBox.x2 +override-attr ClutterActorBox.x2 static int -_wrap_clutter_element_box__set_x2 (PyGBoxed *self, PyObject *value, void *closure) +_wrap_clutter_actor_box__set_x2 (PyGBoxed *self, PyObject *value, void *closure) { gint val; @@ -325,14 +324,14 @@ _wrap_clutter_element_box__set_x2 (PyGBoxed *self, PyObject *value, void *closur if (PyErr_Occurred ()) return -1; - pyg_boxed_get(self, ClutterElementBox)->x2 = val; + pyg_boxed_get(self, ClutterActorBox)->x2 = val; return 0; } %% -override-attr ClutterElementBox.y2 +override-attr ClutterActorBox.y2 static int -_wrap_clutter_element_box__set_y2 (PyGBoxed *self, PyObject *value, void *closure) +_wrap_clutter_actor_box__set_y2 (PyGBoxed *self, PyObject *value, void *closure) { gint val; @@ -340,31 +339,31 @@ _wrap_clutter_element_box__set_y2 (PyGBoxed *self, PyObject *value, void *closur if (PyErr_Occurred ()) return -1; - pyg_boxed_get (self, ClutterElementBox)->y2 = val; + pyg_boxed_get (self, ClutterActorBox)->y2 = val; return 0; } %% -override clutter_element_get_coords +override clutter_actor_get_coords static PyObject * -_wrap_clutter_element_get_coords (PyGObject *self) +_wrap_clutter_actor_get_coords (PyGObject *self) { gint x1, y1; gint x2, y2; - clutter_element_get_coords (CLUTTER_ELEMENT (self->obj), + clutter_actor_get_coords (CLUTTER_ACTOR (self->obj), &x1, &y1, &x2, &y2); return Py_BuildValue("(iiii)", x1, y1, x2, y2); } %% -override clutter_element_get_abs_position +override clutter_actor_get_abs_position static PyObject * -_wrap_clutter_element_get_abs_position (PyGObject *self) +_wrap_clutter_actor_get_abs_position (PyGObject *self) { gint pos_x, pos_y; - clutter_element_get_abs_position (CLUTTER_ELEMENT (self->obj), + clutter_actor_get_abs_position (CLUTTER_ACTOR (self->obj), &pos_x, &pos_y); return Py_BuildValue("(ii)", pos_x, pos_y); @@ -453,19 +452,19 @@ _wrap_clutter_group_add_many (PyGObject *self, group = CLUTTER_GROUP (self->obj); for (i = 0; i < len; i++) { - PyGObject *pyelement; - ClutterElement *element; + PyGObject *pyactor; + ClutterActor *actor; - pyelement = (PyGObject *) PyTuple_GetItem (args, i); - if (!pygobject_check (pyelement, &PyClutterElement_Type)) { + pyactor = (PyGObject *) PyTuple_GetItem (args, i); + if (!pygobject_check (pyactor, &PyClutterActor_Type)) { PyErr_SetString (PyExc_TypeError, - "Expected a ClutterElement"); + "Expected a ClutterActor"); return NULL; } - element = CLUTTER_ELEMENT (pyelement->obj); + actor = CLUTTER_ACTOR (pyactor->obj); - clutter_group_add (group, element); + clutter_group_add (group, actor); } Py_INCREF (Py_None); diff --git a/clutter/Makefile.am b/clutter/Makefile.am index 00dcf8f25..54735f789 100644 --- a/clutter/Makefile.am +++ b/clutter/Makefile.am @@ -11,7 +11,7 @@ source_h = clutter-keysyms.h \ clutter-event.h \ clutter-color.h \ clutter-timeline.h \ - clutter-element.h \ + clutter-actor.h \ clutter-group.h \ clutter-stage.h \ clutter-rectangle.h \ @@ -77,7 +77,7 @@ source_c = clutter-main.c \ clutter-clone-texture.c \ clutter-video-texture.c \ clutter-label.c \ - clutter-element.c \ + clutter-actor.c \ clutter-enum-types.c source_h_priv = clutter-private.h diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c new file mode 100644 index 000000000..f13e12dbf --- /dev/null +++ b/clutter/clutter-actor.c @@ -0,0 +1,1287 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Authored By Matthew Allum + * + * Copyright (C) 2006 OpenedHand + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:clutter-actory + * @short_description: Base abstract class for all visual stage actors. + * + * #ClutterActor is an blah blah + */ + +#include "config.h" + +#include "clutter-actor.h" +#include "clutter-main.h" +#include "clutter-private.h" + +G_DEFINE_ABSTRACT_TYPE (ClutterActor, clutter_actor, G_TYPE_OBJECT); + +static guint32 __id = 0; + +#define CLUTTER_ACTOR_GET_PRIVATE(obj) \ +(G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_ACTOR, ClutterActorPrivate)) + +struct _ClutterActorPrivate +{ + ClutterActorBox coords; + + ClutterGeometry clip; + gboolean has_clip; + + ClutterActorTransform mirror_transform; + gfloat rxang, ryang, rzang; /* Rotation foo. */ + gint rzx, rzy, rxy, rxz, ryx, ryz; + gint z; /* to actor box ? */ + + guint8 opacity; + ClutterActor *parent_actor; /* This should always be a group */ + gchar *name; + guint32 id; /* Unique ID */ +}; + +enum +{ + PROP_0, + PROP_X, + PROP_Y, + PROP_WIDTH, + PROP_HEIGHT, + /* PROP_CLIP FIXME: add */ + PROP_OPACITY, + PROP_NAME, +}; + +static gboolean +redraw_update_idle (gpointer data) +{ + ClutterMainContext *ctx = CLUTTER_CONTEXT(); + + clutter_threads_enter(); + + if (ctx->update_idle) + { + g_source_remove (ctx->update_idle); + ctx->update_idle = 0; + } + + clutter_threads_leave(); + + clutter_redraw (); + + return FALSE; +} + +/** + * clutter_actor_show + * @self: A #ClutterActor + * + * Flags a clutter actor to be displayed. An actor not shown will not + * appear on the display. + **/ +void +clutter_actor_show (ClutterActor *self) +{ + ClutterActorClass *klass; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + return; + + if (!CLUTTER_ACTOR_IS_REALIZED (self)) + clutter_actor_realize(self); + + CLUTTER_ACTOR_SET_FLAGS (self, CLUTTER_ACTOR_MAPPED); + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + if (klass->show) + (klass->show) (self); + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_hide + * @self: A #ClutterActor + * + * Flags a clutter actor to be hidden. An actor not shown will not + * appear on the display. + **/ +void +clutter_actor_hide (ClutterActor *self) +{ + ClutterActorClass *klass; + + if (!CLUTTER_ACTOR_IS_VISIBLE (self)) + return; + + CLUTTER_ACTOR_UNSET_FLAGS (self, CLUTTER_ACTOR_MAPPED); + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + if (klass->hide) + (klass->hide) (self); + + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_realize + * @self: A #ClutterActor + * + * Creates any underlying graphics resources needed by the actor to be + * displayed. + **/ +void +clutter_actor_realize (ClutterActor *self) +{ + ClutterActorClass *klass; + + if (CLUTTER_ACTOR_IS_REALIZED (self)) + return; + + CLUTTER_ACTOR_SET_FLAGS (self, CLUTTER_ACTOR_REALIZED); + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + if (klass->realize) + (klass->realize) (self); +} + +/** + * clutter_actor_realize + * @self: A #ClutterActor + * + * Frees up any underlying graphics resources needed by the actor to be + * displayed. + **/ +void +clutter_actor_unrealize (ClutterActor *self) +{ + ClutterActorClass *klass; + + if (!CLUTTER_ACTOR_IS_REALIZED (self)) + return; + + CLUTTER_ACTOR_UNSET_FLAGS (self, CLUTTER_ACTOR_REALIZED); + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + if (klass->unrealize) + (klass->unrealize) (self); +} + +/** + * clutter_actor_paint: + * @self: A #ClutterActor + * + * Renders the actor to display. + * + * This function should not be called directly by applications instead + * #clutter_actor_queue_redraw should be used to queue paints. + **/ +void +clutter_actor_paint (ClutterActor *self) +{ + ClutterActorClass *klass; + + if (!CLUTTER_ACTOR_IS_REALIZED (self)) + { + CLUTTER_DBG("@@@ Attempting realize via paint() @@@"); + clutter_actor_realize(self); + + if (!CLUTTER_ACTOR_IS_REALIZED (self)) + { + CLUTTER_DBG("*** Attempt failed, aborting paint ***"); + return; + } + } + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + if (self->priv->has_clip) + { + ClutterGeometry *clip = &(self->priv->clip); + gint absx, absy; + ClutterActor *stage = clutter_stage_get_default (); + + clutter_actor_get_abs_position (self, &absx, &absy); + + CLUTTER_DBG("clip +%i+%i, %ix%i\n", + absx + clip->x, + clutter_actor_get_height (stage) + - (absy + clip->y) - clip->height, + clip->width, + clip->height); + + glEnable (GL_SCISSOR_TEST); + + glScissor (absx + clip->x, + clutter_actor_get_height (stage) + - (absy + clip->y) - clip->height, + clip->width, + clip->height); + + g_object_unref (stage); + } + + glPushMatrix(); + + glLoadName (clutter_actor_get_id (self)); + + /* FIXME: Less clunky ? */ + + if (self->priv->rzang) + { + glTranslatef ( (float)(self->priv->coords.x1) + self->priv->rzx, + (float)(self->priv->coords.y1) + self->priv->rzy, + 0.0); + + glRotatef (self->priv->rzang, 0.0f, 0.0f, 1.0f); + + glTranslatef ( (-1.0 * self->priv->coords.x1) - self->priv->rzx, + (-1.0 * self->priv->coords.y1) - self->priv->rzy, + 0.0 ); + } + + if (self->priv->ryang) + { + glTranslatef ( (float)(self->priv->coords.x1) + self->priv->ryx, + 0.0, + (float)(self->priv->z) + self->priv->ryz); + + glRotatef (self->priv->ryang, 0.0f, 1.0f, 0.0f); + + glTranslatef ( (float)(-1.0 * self->priv->coords.x1) - self->priv->ryx, + 0.0, + (float)(-1.0 * self->priv->z) - self->priv->ryz); + } + + if (self->priv->rxang) + { + glTranslatef ( 0.0, + (float)(self->priv->coords.x1) + self->priv->rxy, + (float)(self->priv->z) + self->priv->rxz); + + glRotatef (self->priv->rxang, 1.0f, 0.0f, 0.0f); + + glTranslatef ( 0.0, + (float)(-1.0 * self->priv->coords.x1) - self->priv->rxy, + (float)(-1.0 * self->priv->z) - self->priv->rxz); + } + + if (self->priv->z) + glTranslatef ( 0.0, 0.0, (float)self->priv->z); + + if (klass->paint) + (klass->paint) (self); + + glPopMatrix(); + + if (self->priv->has_clip) + glDisable (GL_SCISSOR_TEST); +} + +/** + * clutter_actor_request_coords: + * @self: A #ClutterActor + * @box: A #ClutterActorBox with requested new co-ordinates. + * + * Requests new co-ordinates for the #ClutterActor ralative to any parent. + * + * This function should not be called directly by applications instead + * the various position/geometry methods should be used. + **/ +void +clutter_actor_request_coords (ClutterActor *self, + ClutterActorBox *box) +{ + ClutterActorClass *klass; + gboolean x_change, y_change, width_change, height_change; + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + /* FIXME: Kludgy see allocate co-ords */ + if (klass->request_coords) + klass->request_coords(self, box); + + x_change = (self->priv->coords.x1 != box->x1); + y_change = (self->priv->coords.y1 != box->y1); + width_change = (self->priv->coords.x2 - self->priv->coords.x1 + != box->x2 - box->x1); + height_change = (self->priv->coords.y2 - self->priv->coords.y1 + != box->y2 - box->y1); + + self->priv->coords.x1 = box->x1; + self->priv->coords.y1 = box->y1; + self->priv->coords.x2 = box->x2; + self->priv->coords.y2 = box->y2; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); + + /* FIXME: Below really needed ? If so should add to other _set calls. + */ + if (x_change) + g_object_notify (G_OBJECT (self), "x"); + + if (y_change) + g_object_notify (G_OBJECT (self), "y"); + + if (width_change) + g_object_notify (G_OBJECT (self), "width"); + + if (height_change) + g_object_notify (G_OBJECT (self), "height"); +} + +/** + * clutter_actor_allocate_coords: + * @self: A #ClutterActor + * @box: A location to store the actors #ClutterActorBox co-ordinates + * + * Requests the allocated co-ordinates for the #ClutterActor relative + * to any parent. + * + * This function should not be called directly by applications instead + * the various position/geometry methods should be used. + **/ +void +clutter_actor_allocate_coords (ClutterActor *self, + ClutterActorBox *box) +{ + ClutterActorClass *klass; + + klass = CLUTTER_ACTOR_GET_CLASS (self); + + box->x1 = self->priv->coords.x1; + box->y1 = self->priv->coords.y1; + box->x2 = self->priv->coords.x2; + box->y2 = self->priv->coords.y2; + + if (klass->request_coords) + { + /* FIXME: This is kind of a cludge - we pass out *private* + * co-ords down to any subclasses so they can modify + * we then resync any changes. Needed for group class. + * Need to figure out nicer way. + */ + klass->allocate_coords(self, box); + + self->priv->coords.x1 = box->x1; + self->priv->coords.y1 = box->y1; + self->priv->coords.x2 = box->x2; + self->priv->coords.y2 = box->y2; + } +} + +static void +clutter_actor_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + + ClutterActor *actor; + ClutterActorPrivate *priv; + + actor = CLUTTER_ACTOR(object); + priv = actor->priv; + + switch (prop_id) + { + case PROP_X: + clutter_actor_set_position (actor, + g_value_get_int (value), + clutter_actor_get_y (actor)); + break; + case PROP_Y: + clutter_actor_set_position (actor, + clutter_actor_get_x (actor), + g_value_get_int (value)); + break; + case PROP_WIDTH: + clutter_actor_set_size (actor, + g_value_get_int (value), + clutter_actor_get_height (actor)); + break; + case PROP_HEIGHT: + clutter_actor_set_size (actor, + clutter_actor_get_width (actor), + g_value_get_int (value)); + break; + case PROP_OPACITY: + clutter_actor_set_opacity (actor, g_value_get_uchar (value)); + break; + case PROP_NAME: + clutter_actor_set_name (actor, g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +clutter_actor_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ClutterActor *actor; + ClutterActorPrivate *priv; + + actor = CLUTTER_ACTOR(object); + priv = actor->priv; + + switch (prop_id) + { + case PROP_X: + g_value_set_int (value, clutter_actor_get_x (actor)); + break; + case PROP_Y: + g_value_set_int (value, clutter_actor_get_y (actor)); + break; + case PROP_WIDTH: + g_value_set_int (value, clutter_actor_get_width (actor)); + break; + case PROP_HEIGHT: + g_value_set_int (value, clutter_actor_get_height (actor)); + break; + case PROP_OPACITY: + g_value_set_uchar (value, priv->opacity); + break; + case PROP_NAME: + g_value_set_string (value, priv->name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +clutter_actor_dispose (GObject *object) +{ + ClutterActor *self = CLUTTER_ACTOR(object); + + if (self->priv->parent_actor) + { + clutter_group_remove (CLUTTER_GROUP(self->priv->parent_actor), self); + } + + G_OBJECT_CLASS (clutter_actor_parent_class)->dispose (object); +} + +static void +clutter_actor_finalize (GObject *object) +{ + G_OBJECT_CLASS (clutter_actor_parent_class)->finalize (object); +} + +static void +clutter_actor_class_init (ClutterActorClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = clutter_actor_set_property; + object_class->get_property = clutter_actor_get_property; + object_class->dispose = clutter_actor_dispose; + object_class->finalize = clutter_actor_finalize; + + g_type_class_add_private (klass, sizeof (ClutterActorPrivate)); + + g_object_class_install_property + (object_class, PROP_X, + g_param_spec_int ("x", + "X co-ord", + "X co-ord of actor", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, PROP_Y, + g_param_spec_int ("y", + "Y co-ord", + "Y co-ord of actor", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, PROP_WIDTH, + g_param_spec_int ("width", + "Width", + "Width of actor in pixels", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, PROP_HEIGHT, + g_param_spec_int ("height", + "Height", + "Height of actor in pixels", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, PROP_OPACITY, + g_param_spec_uchar ("opacity", + "Opacity", + "Opacity of actor", + 0, + 0xff, + 0xff, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + +} + +static void +clutter_actor_init (ClutterActor *self) +{ + self->priv = CLUTTER_ACTOR_GET_PRIVATE (self); + + self->priv->parent_actor = NULL; + self->priv->has_clip = FALSE; + self->priv->opacity = 0xff; + self->priv->id = __id++; + + clutter_actor_set_position (self, 0, 0); + clutter_actor_set_size (self, 0, 0); +} + +/** + * clutter_actor_queue_redraw: + * @self: A #ClutterActor + * + * Queues up a redraw of an actor and any children. The redraw occurs + * once the main loop becomes idle (after the current batch of events + * has been processed, roughly). + * + * Applications rarely need to call this as redraws are handled automatically + * by modification functions. + */ +void +clutter_actor_queue_redraw (ClutterActor *self) +{ + ClutterMainContext *ctx = CLUTTER_CONTEXT(); + + clutter_threads_enter(); + + if (!ctx->update_idle) + { + ctx->update_idle = g_idle_add_full (-100 , /* very high priority */ + redraw_update_idle, + NULL, NULL); + } + + clutter_threads_leave(); +} + +/** + * clutter_actor_set_geometry: + * @self: A #ClutterActor + * @geom: A #ClutterGeometry + * + * Sets the actors geometry in pixels relative to any parent actor. + */ +void +clutter_actor_set_geometry (ClutterActor *self, + ClutterGeometry *geom) +{ + ClutterActorBox box; + + box.x1 = geom->x; + box.y1 = geom->y; + box.x2 = geom->x + geom->width; + box.y2 = geom->y + geom->height; + + clutter_actor_request_coords (self, &box); +} + +/** + * clutter_actor_get_geometry: + * @self: A #ClutterActor + * @geom: A location to store actors #ClutterGeometry + * + * Gets the actors geometry in pixels relative to any parent actor. + */ +void +clutter_actor_get_geometry (ClutterActor *self, + ClutterGeometry *geom) +{ + ClutterActorBox box; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clutter_actor_allocate_coords (self, &box); + + geom->x = box.x1; + geom->y = box.y1; + geom->width = box.x2 - box.x1; + geom->height = box.y2 - box.y1; +} + +/** + * clutter_actor_get_coords: + * @self: A #ClutterActor + * @x1: A location to store actors left position if non NULL. + * @y1: A location to store actors top position if non NULL. + * @x2: A location to store actors right position if non NULL. + * @y2: A location to store actors bottom position if non NULL. + * + * Gets the actors bounding rectangle co-ordinates in pixels + * relative to any parent actor. + */ +void +clutter_actor_get_coords (ClutterActor *self, + gint *x1, + gint *y1, + gint *x2, + gint *y2) +{ + ClutterActorBox box; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clutter_actor_allocate_coords (self, &box); + + if (x1) *x1 = box.x1; + if (y1) *y1 = box.y1; + if (x2) *x2 = box.x2; + if (y2) *y2 = box.y2; +} + +/** + * clutter_actor_set_position + * @self: A #ClutterActor + * @x: New left position of actor in pixels. + * @y: New top position of actor in pixels. + * + * Sets the actors position in pixels relative to any + * parent actor. + */ +void +clutter_actor_set_position (ClutterActor *self, + gint x, + gint y) +{ + ClutterActorBox box; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clutter_actor_allocate_coords (self, &box); + + box.x2 += (x - box.x1); + box.y2 += (y - box.y1); + + box.x1 = x; + box.y1 = y; + + clutter_actor_request_coords (self, &box); +} + +/** + * clutter_actor_set_size + * @self: A #ClutterActor + * @width: New width of actor in pixels + * @height: New height of actor in pixels + * + * Sets the actors position in pixels relative to any + * parent actor. + */ +void +clutter_actor_set_size (ClutterActor *self, + gint width, + gint height) +{ + ClutterActorBox box; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clutter_actor_allocate_coords (self, &box); + + box.x2 = box.x1 + width; + box.y2 = box.y1 + height; + + clutter_actor_request_coords (self, &box); +} + +/** + * clutter_actor_set_position + * @self: A #ClutterActor + * @x: Location to store x position if non NULL. + * @y: Location to store y position if non NULL. + * + * Gets the absolute position of an actor in pixels relative + * to the stage. + */ +void +clutter_actor_get_abs_position (ClutterActor *self, + gint *x, + gint *y) +{ + ClutterActorBox box; + ClutterActor *parent; + gint px = 0, py = 0; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clutter_actor_allocate_coords (self, &box); + + parent = self->priv->parent_actor; + + /* FIXME: must be nicer way to get 0,0 for stage ? */ + if (parent && !CLUTTER_IS_STAGE (parent)) + clutter_actor_get_abs_position (parent, &px, &py); + + if (x) + *x = px + box.x1; + + if (y) + *y = py + box.y1; +} + +/** + * clutter_actor_get_width + * @self: A #ClutterActor + * + * Retrieves the actors width. + * + * Return value: The actor width in pixels + **/ +guint +clutter_actor_get_width (ClutterActor *self) +{ + ClutterActorBox box; + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + clutter_actor_allocate_coords (self, &box); + + return box.x2 - box.x1; +} + +/** + * clutter_actor_get_height + * @self: A #ClutterActor + * + * Retrieves the actors height. + * + * Return value: The actor height in pixels + **/ +guint +clutter_actor_get_height (ClutterActor *self) +{ + ClutterActorBox box; + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + clutter_actor_allocate_coords (self, &box); + + return box.y2 - box.y1; +} + +/** + * clutter_actor_get_x + * @self: A #ClutterActor + * + * Retrieves the actors x position relative to any parent. + * + * Return value: The actor x position in pixels + **/ +gint +clutter_actor_get_x (ClutterActor *self) +{ + ClutterActorBox box; + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + clutter_actor_allocate_coords (self, &box); + + return box.x1; +} + +/** + * clutter_actor_get_y: + * @self: A #ClutterActor + * + * Retrieves the actors y position relative to any parent. + * + * Return value: The actor y position in pixels + **/ +gint +clutter_actor_get_y (ClutterActor *self) +{ + ClutterActorBox box; + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + clutter_actor_allocate_coords (self, &box); + + return box.y1; +} + +/** + * clutter_actor_set_opacity: + * @self: A #ClutterActor + * @opacity: New opacity value for actor. + * + * Sets the actors opacity, with zero being completely transparent. + */ +void +clutter_actor_set_opacity (ClutterActor *self, + guint8 opacity) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->opacity = opacity; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_get_opacity: + * @self: A #ClutterActor + * + * Retrieves the actors opacity. + * + * Return value: The actor opacity value. + */ +guint8 +clutter_actor_get_opacity (ClutterActor *self) +{ + ClutterActor *parent; + + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + parent = self->priv->parent_actor; + + /* FIXME: need to factor in the actual actors opacity with parents */ + if (parent && clutter_actor_get_opacity (parent) != 0xff) + return clutter_actor_get_opacity(parent); + + return self->priv->opacity; +} + +/** + * clutter_actor_set_name: + * @self: A #ClutterActor + * @id: Textual tag to apply to actor + * + * Sets a textual tag to the actor. + */ +void +clutter_actor_set_name (ClutterActor *self, + const gchar *name) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + if (name || name[0] != '\0') + { + g_free (self->priv->name); + + self->priv->name = g_strdup(name); + } +} + +/** + * clutter_actor_get_name: + * @self: A #ClutterActor + * + * Return value: pointer to textual tag for the actor. The + * returned string is owned by the actor and should not + * be modified or freed. + */ +const gchar* +clutter_actor_get_name (ClutterActor *self) +{ + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL); + + return self->priv->name; +} + +/** + * clutter_actor_get_id: + * @self: A #ClutterActor + * + * FIXME + * + * Return value: Globally unique value for object instance. + */ +guint32 +clutter_actor_get_id (ClutterActor *self) +{ + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0); + + return self->priv->id; +} + +/** + * clutter_actor_set_depth: + * @self: a #ClutterActor + * @depth: FIXME + * + * FIXME ( Basically sets Z value ) + */ +void +clutter_actor_set_depth (ClutterActor *self, + gint depth) +{ + /* Sets Z value. - FIXME: should invert ?*/ + self->priv->z = depth; + + if (self->priv->parent_actor) + { + /* We need to resort the group stacking order as to + * correctly render alpha values. + * + * FIXME: This is sub optimal. maybe queue the the sort + * before stacking + */ + clutter_group_sort_depth_order + (CLUTTER_GROUP(self->priv->parent_actor)); + } +} + +/** + * clutter_actor_get_depth: + * @self: a #ClutterActor + * + * Retrieves the depth of @self. + * + * Return value: the depth of a #ClutterActor + */ +gint +clutter_actor_get_depth (ClutterActor *self) +{ + g_return_val_if_fail (CLUTTER_IS_ACTOR (self), -1); + + return self->priv->z; +} + +/** + * clutter_actor_rotate_z: + * @self: A #ClutterActor + * @angle: Angle of rotation + * @x: X co-ord to rotate actor around ( relative to actor position ) + * @y: Y co-ord to rotate actor around ( relative to actor position ) + * + * Rotates actor around the Z axis. + */ +void +clutter_actor_rotate_z (ClutterActor *self, + gfloat angle, + gint x, + gint y) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->rzang = angle; + self->priv->rzx = x; + self->priv->rzy = y; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_rotate_x: + * @self: A #ClutterActor + * @angle: Angle of rotation + * @y: Y co-ord to rotate actor around ( relative to actor position ) + * @z: Z co-ord to rotate actor around ( relative to actor position ) + * + * Rotates actor around the X axis. + */ +void +clutter_actor_rotate_x (ClutterActor *self, + gfloat angle, + gint y, + gint z) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->rxang = angle; + self->priv->rxy = y; + self->priv->rxz = z; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_rotate_y: + * @self: A #ClutterActor + * @angle: Angle of rotation + * @x: X co-ord to rotate actor around ( relative to actor position ) + * @z: Z co-ord to rotate actor around ( relative to actor position ) + * + * Rotates actor around the X axis. + */ +void +clutter_actor_rotate_y (ClutterActor *self, + gfloat angle, + gint x, + gint z) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->ryang = angle; + self->priv->ryx = x; + self->priv->ryz = z; + + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); +} + +/** + * clutter_actor_mirror: + * @self: a #ClutterActor + * @transform: a #ClutterActorTransform + * + * FIXME + */ +void +clutter_actor_mirror (ClutterActor *self, + ClutterActorTransform transform) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->mirror_transform = transform; +} + +/** + * clutter_actor_set_clip: + * @self: A #ClutterActor + * @xoff: FIXME + * @yoff: FIXME + * @width: FIXME + * @height: FIXME + * + * Sets clip area for @self. + */ +void +clutter_actor_set_clip (ClutterActor *self, + gint xoff, + gint yoff, + gint width, + gint height) +{ + ClutterGeometry *clip; + + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + clip = &self->priv->clip; + + clip->x = xoff; + clip->y = yoff; + clip->width = width; + clip->height = height; + + self->priv->has_clip = TRUE; +} + +/** + * clutter_actor_remove_clip + * @self: A #ClutterActor + * + * Removes clip area from @self. + */ +void +clutter_actor_remove_clip (ClutterActor *self) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + + self->priv->has_clip = FALSE; +} + +/** + * clutter_actor_set_parent: + * @self: A #ClutterActor + * @parent: A new #ClutterActor parent or NULL + * + * This function should not be used by applications. + */ +void +clutter_actor_set_parent (ClutterActor *self, + ClutterActor *parent) +{ + g_return_if_fail (CLUTTER_IS_ACTOR (self)); + g_return_if_fail ((parent == NULL) || CLUTTER_IS_ACTOR (parent)); + + if (self->priv->parent_actor == parent) + return; + + if (self->priv->parent_actor && self->priv->parent_actor != parent) + g_object_unref (self->priv->parent_actor); + + self->priv->parent_actor = parent; + + if (self->priv->parent_actor) + g_object_ref (self->priv->parent_actor); +} + +/** + * clutter_actor_get_parent: + * @self: A #ClutterActor + * + * Return Value: The #ClutterActor parent or NULL + */ +ClutterActor* +clutter_actor_get_parent (ClutterActor *self) +{ + return self->priv->parent_actor; +} + +/** + * clutter_actor_raise: + * @self: A #ClutterActor + * @below: A #ClutterActor to raise above. + * + * Both actors must have the same parent. + */ +void +clutter_actor_raise (ClutterActor *self, ClutterActor *below) +{ + g_return_if_fail (CLUTTER_IS_ACTOR(self)); + g_return_if_fail (clutter_actor_get_parent (self) != NULL); + + clutter_group_raise (CLUTTER_GROUP(clutter_actor_get_parent (self)), + self, + below); +} + +/** + * clutter_actor_lower: + * @self: A #ClutterActor + * @above: A #ClutterActor to lower below + * + * Both actors must have the same parent. + */ +void +clutter_actor_lower (ClutterActor *self, ClutterActor *above) +{ + g_return_if_fail (CLUTTER_IS_ACTOR(self)); + g_return_if_fail (clutter_actor_get_parent (self) != NULL); + + if (above != NULL) + { + g_return_if_fail + (clutter_actor_get_parent (self) + != clutter_actor_get_parent (above)); + } + + /* FIXME: group_lower should be an overidable method ? */ + clutter_group_lower (CLUTTER_GROUP(clutter_actor_get_parent (self)), + self, + above); +} + +/** + * clutter_actor_rise_top: + * @self: A #ClutterActor + * + * Rises @self to the top. + */ +void +clutter_actor_raise_top (ClutterActor *self) +{ + clutter_actor_raise (self, NULL); +} + +/** + * clutter_actor_lower_bottom: + * @self: A #ClutterActor + * + * Lowers @self to the bottom. + */ +void +clutter_actor_lower_bottom (ClutterActor *self) +{ + clutter_actor_lower (self, NULL); +} + +/* + * ClutterGemoetry + */ + +static ClutterGeometry* +clutter_geometry_copy (const ClutterGeometry *geometry) +{ + ClutterGeometry *result = g_new (ClutterGeometry, 1); + + *result = *geometry; + + return result; +} + +GType +clutter_geometry_get_type (void) +{ + static GType our_type = 0; + + if (our_type == 0) + our_type = g_boxed_type_register_static ( + g_intern_static_string ("ClutterGeometry"), + (GBoxedCopyFunc) clutter_geometry_copy, + (GBoxedFreeFunc) g_free); + + return our_type; +} + +/* + * ClutterActorBox + */ +static ClutterActorBox * +clutter_actor_box_copy (const ClutterActorBox *box) +{ + ClutterActorBox *result = g_new (ClutterActorBox, 1); + + *result = *box; + + return result; +} + +GType +clutter_actor_box_get_type (void) +{ + static GType our_type = 0; + + if (our_type == 0) + our_type = g_boxed_type_register_static ( + g_intern_static_string ("ClutterActorBox"), + (GBoxedCopyFunc) clutter_actor_box_copy, + (GBoxedFreeFunc) g_free); + return our_type; +} diff --git a/clutter/clutter-actor.h b/clutter/clutter-actor.h new file mode 100644 index 000000000..d7957feb6 --- /dev/null +++ b/clutter/clutter-actor.h @@ -0,0 +1,269 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Authored By Matthew Allum + * + * Copyright (C) 2006 OpenedHand + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _HAVE_CLUTTER_ACTOR_H +#define _HAVE_CLUTTER_ACTOR_H + +/* clutter-actor.h */ + +#include + +G_BEGIN_DECLS + +#define CLUTTER_TYPE_GEOMETRY (clutter_geometry_get_type ()) +#define CLUTTER_TYPE_ACTOR_BOX (clutter_actor_box_get_type ()) + +#define CLUTTER_TYPE_ACTOR clutter_actor_get_type() + +#define CLUTTER_ACTOR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ACTOR, ClutterActor)) +#define CLUTTER_ACTOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ACTOR, ClutterActorClass)) +#define CLUTTER_IS_ACTOR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ACTOR)) +#define CLUTTER_IS_ACTOR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ACTOR)) +#define CLUTTER_ACTOR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ACTOR, ClutterActorClass)) + +#define CLUTTER_ACTOR_SET_FLAGS(e,f) ((e)->flags |= (f)) +#define CLUTTER_ACTOR_UNSET_FLAGS(e,f) ((e)->flags &= ~(f)) + +#define CLUTTER_ACTOR_IS_MAPPED(e) ((e)->flags & CLUTTER_ACTOR_MAPPED) +#define CLUTTER_ACTOR_IS_REALIZED(e) ((e)->flags & CLUTTER_ACTOR_REALIZED) +#define CLUTTER_ACTOR_IS_VISIBLE(e) \ + (CLUTTER_ACTOR_IS_MAPPED(e) && CLUTTER_ACTOR_IS_REALIZED(e)) + +typedef struct _ClutterActor ClutterActor; +typedef struct _ClutterActorClass ClutterActorClass; +typedef struct _ClutterActorBox ClutterActorBox; +typedef struct _ClutterActorPrivate ClutterActorPrivate; +typedef struct _ClutterGeometry ClutterGeometry; + +typedef void (*ClutterCallback) (ClutterActor *actor, gpointer data); + +struct _ClutterGeometry +{ + gint x; + gint y; + guint width; + guint height; +}; + +GType clutter_geometry_get_type (void) G_GNUC_CONST; + +typedef enum +{ + CLUTTER_ACTOR_MIRROR_X = 1 << 1, + CLUTTER_ACTOR_MIRROR_Y = 1 << 2 +} ClutterActorTransform; + +typedef enum +{ + CLUTTER_ACTOR_MAPPED = 1 << 1, + CLUTTER_ACTOR_REALIZED = 1 << 2 +} ClutterActorFlags; + +struct _ClutterActorBox { gint x1, y1, x2, y2; }; + +GType clutter_actor_box_get_type (void) G_GNUC_CONST; + +struct _ClutterActor +{ + /*< public >*/ + GObject parent; + guint32 flags; + + /*< private >*/ + ClutterActorPrivate *priv; +}; + +struct _ClutterActorClass +{ + GObjectClass parent_class; + + void (* show) (ClutterActor *actor); + void (* hide) (ClutterActor *actor); + void (* realize) (ClutterActor *actor); + void (* unrealize) (ClutterActor *actor); + void (* paint) (ClutterActor *actor); + void (* request_coords) (ClutterActor *actor, + ClutterActorBox *box); + void (* allocate_coords) (ClutterActor *actor, + ClutterActorBox *box); + void (* set_depth) (ClutterActor *actor, + gint depth); + gint (* get_depth) (ClutterActor *actor); + + /* to go ? */ + void (* show_all) (ClutterActor *actor); + void (* hide_all) (ClutterActor *actor); + void (* queue_redraw) (ClutterActor *actor); +}; + +GType clutter_actor_get_type (void); + +void +clutter_actor_show (ClutterActor *self); + +void +clutter_actor_hide (ClutterActor *self); + +void +clutter_actor_realize (ClutterActor *self); + +void +clutter_actor_unrealize (ClutterActor *self); + +void +clutter_actor_paint (ClutterActor *self); + +void +clutter_actor_queue_redraw (ClutterActor *self); + +void +clutter_actor_request_coords (ClutterActor *self, + ClutterActorBox *box); + +void +clutter_actor_allocate_coords (ClutterActor *self, + ClutterActorBox *box); + +void +clutter_actor_set_geometry (ClutterActor *self, + ClutterGeometry *geom); + +void +clutter_actor_get_geometry (ClutterActor *self, + ClutterGeometry *geom); + +void +clutter_actor_get_coords (ClutterActor *self, + gint *x1, + gint *y1, + gint *x2, + gint *y2); + +void +clutter_actor_set_position (ClutterActor *self, + gint x, + gint y); + +void +clutter_actor_set_size (ClutterActor *self, + gint width, + gint height); + +void +clutter_actor_get_abs_position (ClutterActor *self, + gint *x, + gint *y); + +guint +clutter_actor_get_width (ClutterActor *self); + +guint +clutter_actor_get_height (ClutterActor *self); + +gint +clutter_actor_get_x (ClutterActor *self); + +gint +clutter_actor_get_y (ClutterActor *self); + +void +clutter_actor_rotate_z (ClutterActor *self, + gfloat angle, + gint x, + gint y); + +void +clutter_actor_rotate_x (ClutterActor *self, + gfloat angle, + gint y, + gint z); + +void +clutter_actor_rotate_y (ClutterActor *self, + gfloat angle, + gint x, + gint z); + +void +clutter_actor_set_opacity (ClutterActor *self, + guint8 opacity); + +guint8 +clutter_actor_get_opacity (ClutterActor *self); + +void +clutter_actor_set_name (ClutterActor *self, + const gchar *id); + +const gchar* +clutter_actor_get_name (ClutterActor *self); + +guint32 +clutter_actor_get_id (ClutterActor *self); + +void +clutter_actor_set_clip (ClutterActor *self, + gint xoff, + gint yoff, + gint width, + gint height); + +void +clutter_actor_remove_clip (ClutterActor *self); + +void +clutter_actor_set_parent (ClutterActor *self, ClutterActor *parent); + +ClutterActor* +clutter_actor_get_parent (ClutterActor *self); + +void +clutter_actor_raise (ClutterActor *self, ClutterActor *below); + +void +clutter_actor_lower (ClutterActor *self, ClutterActor *above); + +void +clutter_actor_raise_top (ClutterActor *self); + +void +clutter_actor_lower_bottom (ClutterActor *self); + +void +clutter_actor_set_depth (ClutterActor *self, + gint depth); + +gint +clutter_actor_get_depth (ClutterActor *self); + + +G_END_DECLS + +#endif diff --git a/clutter/clutter-clone-texture.c b/clutter/clutter-clone-texture.c index 7a2266aad..97a74782f 100644 --- a/clutter/clutter-clone-texture.c +++ b/clutter/clutter-clone-texture.c @@ -37,7 +37,7 @@ enum G_DEFINE_TYPE (ClutterCloneTexture, clutter_clone_texture, - CLUTTER_TYPE_ELEMENT); + CLUTTER_TYPE_ACTOR); #define CLUTTER_CLONE_TEXTURE_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_CLONE_TEXTURE, ClutterCloneTexturePrivate)) @@ -62,15 +62,15 @@ clone_texture_render_to_gl_quad (ClutterCloneTexture *ctexture, float tx, ty; ClutterCloneTexturePrivate *priv = ctexture->priv; - ClutterElement *parent_element = CLUTTER_ELEMENT (priv->parent_texture); + ClutterActor *parent_actor = CLUTTER_ACTOR (priv->parent_texture); priv = ctexture->priv; qwidth = x2 - x1; qheight = y2 - y1; - if (!CLUTTER_ELEMENT_IS_REALIZED (parent_element)) - clutter_element_realize (parent_element); + if (!CLUTTER_ACTOR_IS_REALIZED (parent_actor)) + clutter_actor_realize (parent_actor); /* Only paint if parent is in a state to do so */ if (!clutter_texture_has_generated_tiles (priv->parent_texture)) @@ -148,10 +148,10 @@ clone_texture_render_to_gl_quad (ClutterCloneTexture *ctexture, } static void -clutter_clone_texture_paint (ClutterElement *self) +clutter_clone_texture_paint (ClutterActor *self) { ClutterCloneTexturePrivate *priv; - ClutterElement *parent_texture; + ClutterActor *parent_texture; gint x1, y1, x2, y2; priv = CLUTTER_CLONE_TEXTURE (self)->priv; @@ -159,20 +159,20 @@ clutter_clone_texture_paint (ClutterElement *self) /* parent texture may have been hidden, there for need to make sure its * realised with resources available. */ - parent_texture = CLUTTER_ELEMENT (priv->parent_texture); - if (!CLUTTER_ELEMENT_IS_REALIZED (parent_texture)) - clutter_element_realize (parent_texture); + parent_texture = CLUTTER_ACTOR (priv->parent_texture); + if (!CLUTTER_ACTOR_IS_REALIZED (parent_texture)) + clutter_actor_realize (parent_texture); glEnable(GL_BLEND); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glColor4ub(255, 255, 255, clutter_element_get_opacity(self)); + glColor4ub(255, 255, 255, clutter_actor_get_opacity(self)); - clutter_element_get_coords (self, &x1, &y1, &x2, &y2); + clutter_actor_get_coords (self, &x1, &y1, &x2, &y2); CLUTTER_DBG("paint to x1: %i, y1: %i x2: %i, y2: %i opacity: %i", - x1, y1, x2, y2, clutter_element_get_opacity(self) ); + x1, y1, x2, y2, clutter_actor_get_opacity(self) ); clone_texture_render_to_gl_quad (CLUTTER_CLONE_TEXTURE(self), x1, y1, x2, y2); @@ -202,7 +202,7 @@ set_parent_texture (ClutterCloneTexture *ctexture, /* Sync up the size to parent texture base pixbuf size. */ clutter_texture_get_base_size (texture, &width, &height); - clutter_element_set_size (CLUTTER_ELEMENT(ctexture), width, height); + clutter_actor_set_size (CLUTTER_ACTOR(ctexture), width, height); } } @@ -269,9 +269,9 @@ static void clutter_clone_texture_class_init (ClutterCloneTextureClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - ClutterElementClass *element_class = CLUTTER_ELEMENT_CLASS (klass); + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); - element_class->paint = clutter_clone_texture_paint; + actor_class->paint = clutter_clone_texture_paint; gobject_class->finalize = clutter_clone_texture_finalize; gobject_class->dispose = clutter_clone_texture_dispose; @@ -307,7 +307,7 @@ clutter_clone_texture_init (ClutterCloneTexture *self) * * Return value: the newly created #ClutterCloneTexture */ -ClutterElement * +ClutterActor * clutter_clone_texture_new (ClutterTexture *texture) { g_return_val_if_fail (CLUTTER_IS_TEXTURE (texture), NULL); diff --git a/clutter/clutter-clone-texture.h b/clutter/clutter-clone-texture.h index 85a1fdd75..79af11467 100644 --- a/clutter/clutter-clone-texture.h +++ b/clutter/clutter-clone-texture.h @@ -60,7 +60,7 @@ typedef struct _ClutterCloneTextureClass ClutterCloneTextureClass; struct _ClutterCloneTexture { - ClutterElement parent; + ClutterActor parent; /*< priv >*/ ClutterCloneTexturePrivate *priv; @@ -68,7 +68,7 @@ struct _ClutterCloneTexture struct _ClutterCloneTextureClass { - ClutterElementClass parent_class; + ClutterActorClass parent_class; /* padding for future expansion */ void (*_clutter_clone_1) (void); @@ -78,7 +78,7 @@ struct _ClutterCloneTextureClass }; GType clutter_clone_texture_get_type (void); -ClutterElement *clutter_clone_texture_new (ClutterTexture *texture); +ClutterActor *clutter_clone_texture_new (ClutterTexture *texture); G_END_DECLS diff --git a/clutter/clutter-element.c b/clutter/clutter-element.c deleted file mode 100644 index 186db671c..000000000 --- a/clutter/clutter-element.c +++ /dev/null @@ -1,1287 +0,0 @@ -/* - * Clutter. - * - * An OpenGL based 'interactive canvas' library. - * - * Authored By Matthew Allum - * - * Copyright (C) 2006 OpenedHand - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/** - * SECTION:clutter-elementy - * @short_description: Base abstract class for all visual stage elements. - * - * #ClutterElement is an blah blah - */ - -#include "config.h" - -#include "clutter-element.h" -#include "clutter-main.h" -#include "clutter-private.h" - -G_DEFINE_ABSTRACT_TYPE (ClutterElement, clutter_element, G_TYPE_OBJECT); - -static guint32 __id = 0; - -#define CLUTTER_ELEMENT_GET_PRIVATE(obj) \ -(G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_ELEMENT, ClutterElementPrivate)) - -struct _ClutterElementPrivate -{ - ClutterElementBox coords; - - ClutterGeometry clip; - gboolean has_clip; - - ClutterElementTransform mirror_transform; - gfloat rxang, ryang, rzang; /* Rotation foo. */ - gint rzx, rzy, rxy, rxz, ryx, ryz; - gint z; /* to element box ? */ - - guint8 opacity; - ClutterElement *parent_element; /* This should always be a group */ - gchar *name; - guint32 id; /* Unique ID */ -}; - -enum -{ - PROP_0, - PROP_X, - PROP_Y, - PROP_WIDTH, - PROP_HEIGHT, - /* PROP_CLIP FIXME: add */ - PROP_OPACITY, - PROP_NAME, -}; - -static gboolean -redraw_update_idle (gpointer data) -{ - ClutterMainContext *ctx = CLUTTER_CONTEXT(); - - clutter_threads_enter(); - - if (ctx->update_idle) - { - g_source_remove (ctx->update_idle); - ctx->update_idle = 0; - } - - clutter_threads_leave(); - - clutter_redraw (); - - return FALSE; -} - -/** - * clutter_element_show - * @self: A #ClutterElement - * - * Flags a clutter element to be displayed. An element not shown will not - * appear on the display. - **/ -void -clutter_element_show (ClutterElement *self) -{ - ClutterElementClass *klass; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - return; - - if (!CLUTTER_ELEMENT_IS_REALIZED (self)) - clutter_element_realize(self); - - CLUTTER_ELEMENT_SET_FLAGS (self, CLUTTER_ELEMENT_MAPPED); - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - if (klass->show) - (klass->show) (self); - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_hide - * @self: A #ClutterElement - * - * Flags a clutter element to be hidden. An element not shown will not - * appear on the display. - **/ -void -clutter_element_hide (ClutterElement *self) -{ - ClutterElementClass *klass; - - if (!CLUTTER_ELEMENT_IS_VISIBLE (self)) - return; - - CLUTTER_ELEMENT_UNSET_FLAGS (self, CLUTTER_ELEMENT_MAPPED); - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - if (klass->hide) - (klass->hide) (self); - - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_realize - * @self: A #ClutterElement - * - * Creates any underlying graphics resources needed by the element to be - * displayed. - **/ -void -clutter_element_realize (ClutterElement *self) -{ - ClutterElementClass *klass; - - if (CLUTTER_ELEMENT_IS_REALIZED (self)) - return; - - CLUTTER_ELEMENT_SET_FLAGS (self, CLUTTER_ELEMENT_REALIZED); - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - if (klass->realize) - (klass->realize) (self); -} - -/** - * clutter_element_realize - * @self: A #ClutterElement - * - * Frees up any underlying graphics resources needed by the element to be - * displayed. - **/ -void -clutter_element_unrealize (ClutterElement *self) -{ - ClutterElementClass *klass; - - if (!CLUTTER_ELEMENT_IS_REALIZED (self)) - return; - - CLUTTER_ELEMENT_UNSET_FLAGS (self, CLUTTER_ELEMENT_REALIZED); - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - if (klass->unrealize) - (klass->unrealize) (self); -} - -/** - * clutter_element_paint: - * @self: A #ClutterElement - * - * Renders the element to display. - * - * This function should not be called directly by applications instead - * #clutter_element_queue_redraw should be used to queue paints. - **/ -void -clutter_element_paint (ClutterElement *self) -{ - ClutterElementClass *klass; - - if (!CLUTTER_ELEMENT_IS_REALIZED (self)) - { - CLUTTER_DBG("@@@ Attempting realize via paint() @@@"); - clutter_element_realize(self); - - if (!CLUTTER_ELEMENT_IS_REALIZED (self)) - { - CLUTTER_DBG("*** Attempt failed, aborting paint ***"); - return; - } - } - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - if (self->priv->has_clip) - { - ClutterGeometry *clip = &(self->priv->clip); - gint absx, absy; - ClutterElement *stage = clutter_stage_get_default (); - - clutter_element_get_abs_position (self, &absx, &absy); - - CLUTTER_DBG("clip +%i+%i, %ix%i\n", - absx + clip->x, - clutter_element_get_height (stage) - - (absy + clip->y) - clip->height, - clip->width, - clip->height); - - glEnable (GL_SCISSOR_TEST); - - glScissor (absx + clip->x, - clutter_element_get_height (stage) - - (absy + clip->y) - clip->height, - clip->width, - clip->height); - - g_object_unref (stage); - } - - glPushMatrix(); - - glLoadName (clutter_element_get_id (self)); - - /* FIXME: Less clunky ? */ - - if (self->priv->rzang) - { - glTranslatef ( (float)(self->priv->coords.x1) + self->priv->rzx, - (float)(self->priv->coords.y1) + self->priv->rzy, - 0.0); - - glRotatef (self->priv->rzang, 0.0f, 0.0f, 1.0f); - - glTranslatef ( (-1.0 * self->priv->coords.x1) - self->priv->rzx, - (-1.0 * self->priv->coords.y1) - self->priv->rzy, - 0.0 ); - } - - if (self->priv->ryang) - { - glTranslatef ( (float)(self->priv->coords.x1) + self->priv->ryx, - 0.0, - (float)(self->priv->z) + self->priv->ryz); - - glRotatef (self->priv->ryang, 0.0f, 1.0f, 0.0f); - - glTranslatef ( (float)(-1.0 * self->priv->coords.x1) - self->priv->ryx, - 0.0, - (float)(-1.0 * self->priv->z) - self->priv->ryz); - } - - if (self->priv->rxang) - { - glTranslatef ( 0.0, - (float)(self->priv->coords.x1) + self->priv->rxy, - (float)(self->priv->z) + self->priv->rxz); - - glRotatef (self->priv->rxang, 1.0f, 0.0f, 0.0f); - - glTranslatef ( 0.0, - (float)(-1.0 * self->priv->coords.x1) - self->priv->rxy, - (float)(-1.0 * self->priv->z) - self->priv->rxz); - } - - if (self->priv->z) - glTranslatef ( 0.0, 0.0, (float)self->priv->z); - - if (klass->paint) - (klass->paint) (self); - - glPopMatrix(); - - if (self->priv->has_clip) - glDisable (GL_SCISSOR_TEST); -} - -/** - * clutter_element_request_coords: - * @self: A #ClutterElement - * @box: A #ClutterElementBox with requested new co-ordinates. - * - * Requests new co-ordinates for the #ClutterElement ralative to any parent. - * - * This function should not be called directly by applications instead - * the various position/geometry methods should be used. - **/ -void -clutter_element_request_coords (ClutterElement *self, - ClutterElementBox *box) -{ - ClutterElementClass *klass; - gboolean x_change, y_change, width_change, height_change; - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - /* FIXME: Kludgy see allocate co-ords */ - if (klass->request_coords) - klass->request_coords(self, box); - - x_change = (self->priv->coords.x1 != box->x1); - y_change = (self->priv->coords.y1 != box->y1); - width_change = (self->priv->coords.x2 - self->priv->coords.x1 - != box->x2 - box->x1); - height_change = (self->priv->coords.y2 - self->priv->coords.y1 - != box->y2 - box->y1); - - self->priv->coords.x1 = box->x1; - self->priv->coords.y1 = box->y1; - self->priv->coords.x2 = box->x2; - self->priv->coords.y2 = box->y2; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); - - /* FIXME: Below really needed ? If so should add to other _set calls. - */ - if (x_change) - g_object_notify (G_OBJECT (self), "x"); - - if (y_change) - g_object_notify (G_OBJECT (self), "y"); - - if (width_change) - g_object_notify (G_OBJECT (self), "width"); - - if (height_change) - g_object_notify (G_OBJECT (self), "height"); -} - -/** - * clutter_element_allocate_coords: - * @self: A #ClutterElement - * @box: A location to store the elements #ClutterElementBox co-ordinates - * - * Requests the allocated co-ordinates for the #ClutterElement relative - * to any parent. - * - * This function should not be called directly by applications instead - * the various position/geometry methods should be used. - **/ -void -clutter_element_allocate_coords (ClutterElement *self, - ClutterElementBox *box) -{ - ClutterElementClass *klass; - - klass = CLUTTER_ELEMENT_GET_CLASS (self); - - box->x1 = self->priv->coords.x1; - box->y1 = self->priv->coords.y1; - box->x2 = self->priv->coords.x2; - box->y2 = self->priv->coords.y2; - - if (klass->request_coords) - { - /* FIXME: This is kind of a cludge - we pass out *private* - * co-ords down to any subclasses so they can modify - * we then resync any changes. Needed for group class. - * Need to figure out nicer way. - */ - klass->allocate_coords(self, box); - - self->priv->coords.x1 = box->x1; - self->priv->coords.y1 = box->y1; - self->priv->coords.x2 = box->x2; - self->priv->coords.y2 = box->y2; - } -} - -static void -clutter_element_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - - ClutterElement *element; - ClutterElementPrivate *priv; - - element = CLUTTER_ELEMENT(object); - priv = element->priv; - - switch (prop_id) - { - case PROP_X: - clutter_element_set_position (element, - g_value_get_int (value), - clutter_element_get_y (element)); - break; - case PROP_Y: - clutter_element_set_position (element, - clutter_element_get_x (element), - g_value_get_int (value)); - break; - case PROP_WIDTH: - clutter_element_set_size (element, - g_value_get_int (value), - clutter_element_get_height (element)); - break; - case PROP_HEIGHT: - clutter_element_set_size (element, - clutter_element_get_width (element), - g_value_get_int (value)); - break; - case PROP_OPACITY: - clutter_element_set_opacity (element, g_value_get_uchar (value)); - break; - case PROP_NAME: - clutter_element_set_name (element, g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -clutter_element_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ClutterElement *element; - ClutterElementPrivate *priv; - - element = CLUTTER_ELEMENT(object); - priv = element->priv; - - switch (prop_id) - { - case PROP_X: - g_value_set_int (value, clutter_element_get_x (element)); - break; - case PROP_Y: - g_value_set_int (value, clutter_element_get_y (element)); - break; - case PROP_WIDTH: - g_value_set_int (value, clutter_element_get_width (element)); - break; - case PROP_HEIGHT: - g_value_set_int (value, clutter_element_get_height (element)); - break; - case PROP_OPACITY: - g_value_set_uchar (value, priv->opacity); - break; - case PROP_NAME: - g_value_set_string (value, priv->name); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -clutter_element_dispose (GObject *object) -{ - ClutterElement *self = CLUTTER_ELEMENT(object); - - if (self->priv->parent_element) - { - clutter_group_remove (CLUTTER_GROUP(self->priv->parent_element), self); - } - - G_OBJECT_CLASS (clutter_element_parent_class)->dispose (object); -} - -static void -clutter_element_finalize (GObject *object) -{ - G_OBJECT_CLASS (clutter_element_parent_class)->finalize (object); -} - -static void -clutter_element_class_init (ClutterElementClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = clutter_element_set_property; - object_class->get_property = clutter_element_get_property; - object_class->dispose = clutter_element_dispose; - object_class->finalize = clutter_element_finalize; - - g_type_class_add_private (klass, sizeof (ClutterElementPrivate)); - - g_object_class_install_property - (object_class, PROP_X, - g_param_spec_int ("x", - "X co-ord", - "X co-ord of element", - 0, - G_MAXINT, - 0, - G_PARAM_READWRITE)); - - g_object_class_install_property - (object_class, PROP_Y, - g_param_spec_int ("y", - "Y co-ord", - "Y co-ord of element", - 0, - G_MAXINT, - 0, - G_PARAM_READWRITE)); - - g_object_class_install_property - (object_class, PROP_WIDTH, - g_param_spec_int ("width", - "Width", - "Width of element in pixels", - 0, - G_MAXINT, - 0, - G_PARAM_READWRITE)); - - g_object_class_install_property - (object_class, PROP_HEIGHT, - g_param_spec_int ("height", - "Height", - "Height of element in pixels", - 0, - G_MAXINT, - 0, - G_PARAM_READWRITE)); - - g_object_class_install_property - (object_class, PROP_OPACITY, - g_param_spec_uchar ("opacity", - "Opacity", - "Opacity of element", - 0, - 0xff, - 0xff, - G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); - -} - -static void -clutter_element_init (ClutterElement *self) -{ - self->priv = CLUTTER_ELEMENT_GET_PRIVATE (self); - - self->priv->parent_element = NULL; - self->priv->has_clip = FALSE; - self->priv->opacity = 0xff; - self->priv->id = __id++; - - clutter_element_set_position (self, 0, 0); - clutter_element_set_size (self, 0, 0); -} - -/** - * clutter_element_queue_redraw: - * @self: A #ClutterElement - * - * Queues up a redraw of an element and any children. The redraw occurs - * once the main loop becomes idle (after the current batch of events - * has been processed, roughly). - * - * Applications rarely need to call this as redraws are handled automatically - * by modification functions. - */ -void -clutter_element_queue_redraw (ClutterElement *self) -{ - ClutterMainContext *ctx = CLUTTER_CONTEXT(); - - clutter_threads_enter(); - - if (!ctx->update_idle) - { - ctx->update_idle = g_idle_add_full (-100 , /* very high priority */ - redraw_update_idle, - NULL, NULL); - } - - clutter_threads_leave(); -} - -/** - * clutter_element_set_geometry: - * @self: A #ClutterElement - * @geom: A #ClutterGeometry - * - * Sets the elements geometry in pixels relative to any parent element. - */ -void -clutter_element_set_geometry (ClutterElement *self, - ClutterGeometry *geom) -{ - ClutterElementBox box; - - box.x1 = geom->x; - box.y1 = geom->y; - box.x2 = geom->x + geom->width; - box.y2 = geom->y + geom->height; - - clutter_element_request_coords (self, &box); -} - -/** - * clutter_element_get_geometry: - * @self: A #ClutterElement - * @geom: A location to store elements #ClutterGeometry - * - * Gets the elements geometry in pixels relative to any parent element. - */ -void -clutter_element_get_geometry (ClutterElement *self, - ClutterGeometry *geom) -{ - ClutterElementBox box; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clutter_element_allocate_coords (self, &box); - - geom->x = box.x1; - geom->y = box.y1; - geom->width = box.x2 - box.x1; - geom->height = box.y2 - box.y1; -} - -/** - * clutter_element_get_coords: - * @self: A #ClutterElement - * @x1: A location to store elements left position if non NULL. - * @y1: A location to store elements top position if non NULL. - * @x2: A location to store elements right position if non NULL. - * @y2: A location to store elements bottom position if non NULL. - * - * Gets the elements bounding rectangle co-ordinates in pixels - * relative to any parent element. - */ -void -clutter_element_get_coords (ClutterElement *self, - gint *x1, - gint *y1, - gint *x2, - gint *y2) -{ - ClutterElementBox box; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clutter_element_allocate_coords (self, &box); - - if (x1) *x1 = box.x1; - if (y1) *y1 = box.y1; - if (x2) *x2 = box.x2; - if (y2) *y2 = box.y2; -} - -/** - * clutter_element_set_position - * @self: A #ClutterElement - * @x: New left position of element in pixels. - * @y: New top position of element in pixels. - * - * Sets the elements position in pixels relative to any - * parent element. - */ -void -clutter_element_set_position (ClutterElement *self, - gint x, - gint y) -{ - ClutterElementBox box; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clutter_element_allocate_coords (self, &box); - - box.x2 += (x - box.x1); - box.y2 += (y - box.y1); - - box.x1 = x; - box.y1 = y; - - clutter_element_request_coords (self, &box); -} - -/** - * clutter_element_set_size - * @self: A #ClutterElement - * @width: New width of element in pixels - * @height: New height of element in pixels - * - * Sets the elements position in pixels relative to any - * parent element. - */ -void -clutter_element_set_size (ClutterElement *self, - gint width, - gint height) -{ - ClutterElementBox box; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clutter_element_allocate_coords (self, &box); - - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - - clutter_element_request_coords (self, &box); -} - -/** - * clutter_element_set_position - * @self: A #ClutterElement - * @x: Location to store x position if non NULL. - * @y: Location to store y position if non NULL. - * - * Gets the absolute position of an element in pixels relative - * to the stage. - */ -void -clutter_element_get_abs_position (ClutterElement *self, - gint *x, - gint *y) -{ - ClutterElementBox box; - ClutterElement *parent; - gint px = 0, py = 0; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clutter_element_allocate_coords (self, &box); - - parent = self->priv->parent_element; - - /* FIXME: must be nicer way to get 0,0 for stage ? */ - if (parent && !CLUTTER_IS_STAGE (parent)) - clutter_element_get_abs_position (parent, &px, &py); - - if (x) - *x = px + box.x1; - - if (y) - *y = py + box.y1; -} - -/** - * clutter_element_get_width - * @self: A #ClutterElement - * - * Retrieves the elements width. - * - * Return value: The element width in pixels - **/ -guint -clutter_element_get_width (ClutterElement *self) -{ - ClutterElementBox box; - - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - clutter_element_allocate_coords (self, &box); - - return box.x2 - box.x1; -} - -/** - * clutter_element_get_height - * @self: A #ClutterElement - * - * Retrieves the elements height. - * - * Return value: The element height in pixels - **/ -guint -clutter_element_get_height (ClutterElement *self) -{ - ClutterElementBox box; - - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - clutter_element_allocate_coords (self, &box); - - return box.y2 - box.y1; -} - -/** - * clutter_element_get_x - * @self: A #ClutterElement - * - * Retrieves the elements x position relative to any parent. - * - * Return value: The element x position in pixels - **/ -gint -clutter_element_get_x (ClutterElement *self) -{ - ClutterElementBox box; - - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - clutter_element_allocate_coords (self, &box); - - return box.x1; -} - -/** - * clutter_element_get_y: - * @self: A #ClutterElement - * - * Retrieves the elements y position relative to any parent. - * - * Return value: The element y position in pixels - **/ -gint -clutter_element_get_y (ClutterElement *self) -{ - ClutterElementBox box; - - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - clutter_element_allocate_coords (self, &box); - - return box.y1; -} - -/** - * clutter_element_set_opacity: - * @self: A #ClutterElement - * @opacity: New opacity value for element. - * - * Sets the elements opacity, with zero being completely transparent. - */ -void -clutter_element_set_opacity (ClutterElement *self, - guint8 opacity) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->opacity = opacity; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_get_opacity: - * @self: A #ClutterElement - * - * Retrieves the elements opacity. - * - * Return value: The element opacity value. - */ -guint8 -clutter_element_get_opacity (ClutterElement *self) -{ - ClutterElement *parent; - - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - parent = self->priv->parent_element; - - /* FIXME: need to factor in the actual elements opacity with parents */ - if (parent && clutter_element_get_opacity (parent) != 0xff) - return clutter_element_get_opacity(parent); - - return self->priv->opacity; -} - -/** - * clutter_element_set_name: - * @self: A #ClutterElement - * @id: Textual tag to apply to element - * - * Sets a textual tag to the element. - */ -void -clutter_element_set_name (ClutterElement *self, - const gchar *name) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - if (name || name[0] != '\0') - { - g_free (self->priv->name); - - self->priv->name = g_strdup(name); - } -} - -/** - * clutter_element_get_name: - * @self: A #ClutterElement - * - * Return value: pointer to textual tag for the element. The - * returned string is owned by the element and should not - * be modified or freed. - */ -const gchar* -clutter_element_get_name (ClutterElement *self) -{ - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), NULL); - - return self->priv->name; -} - -/** - * clutter_element_get_id: - * @self: A #ClutterElement - * - * FIXME - * - * Return value: Globally unique value for object instance. - */ -guint32 -clutter_element_get_id (ClutterElement *self) -{ - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), 0); - - return self->priv->id; -} - -/** - * clutter_element_set_depth: - * @self: a #ClutterElement - * @depth: FIXME - * - * FIXME ( Basically sets Z value ) - */ -void -clutter_element_set_depth (ClutterElement *self, - gint depth) -{ - /* Sets Z value. - FIXME: should invert ?*/ - self->priv->z = depth; - - if (self->priv->parent_element) - { - /* We need to resort the group stacking order as to - * correctly render alpha values. - * - * FIXME: This is sub optimal. maybe queue the the sort - * before stacking - */ - clutter_group_sort_depth_order - (CLUTTER_GROUP(self->priv->parent_element)); - } -} - -/** - * clutter_element_get_depth: - * @self: a #ClutterElement - * - * Retrieves the depth of @self. - * - * Return value: the depth of a #ClutterElement - */ -gint -clutter_element_get_depth (ClutterElement *self) -{ - g_return_val_if_fail (CLUTTER_IS_ELEMENT (self), -1); - - return self->priv->z; -} - -/** - * clutter_element_rotate_z: - * @self: A #ClutterElement - * @angle: Angle of rotation - * @x: X co-ord to rotate element around ( relative to element position ) - * @y: Y co-ord to rotate element around ( relative to element position ) - * - * Rotates element around the Z axis. - */ -void -clutter_element_rotate_z (ClutterElement *self, - gfloat angle, - gint x, - gint y) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->rzang = angle; - self->priv->rzx = x; - self->priv->rzy = y; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_rotate_x: - * @self: A #ClutterElement - * @angle: Angle of rotation - * @y: Y co-ord to rotate element around ( relative to element position ) - * @z: Z co-ord to rotate element around ( relative to element position ) - * - * Rotates element around the X axis. - */ -void -clutter_element_rotate_x (ClutterElement *self, - gfloat angle, - gint y, - gint z) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->rxang = angle; - self->priv->rxy = y; - self->priv->rxz = z; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_rotate_y: - * @self: A #ClutterElement - * @angle: Angle of rotation - * @x: X co-ord to rotate element around ( relative to element position ) - * @z: Z co-ord to rotate element around ( relative to element position ) - * - * Rotates element around the X axis. - */ -void -clutter_element_rotate_y (ClutterElement *self, - gfloat angle, - gint x, - gint z) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->ryang = angle; - self->priv->ryx = x; - self->priv->ryz = z; - - if (CLUTTER_ELEMENT_IS_VISIBLE (self)) - clutter_element_queue_redraw (self); -} - -/** - * clutter_element_mirror: - * @self: a #ClutterElement - * @transform: a #ClutterElementTransform - * - * FIXME - */ -void -clutter_element_mirror (ClutterElement *self, - ClutterElementTransform transform) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->mirror_transform = transform; -} - -/** - * clutter_element_set_clip: - * @self: A #ClutterElement - * @xoff: FIXME - * @yoff: FIXME - * @width: FIXME - * @height: FIXME - * - * Sets clip area for @self. - */ -void -clutter_element_set_clip (ClutterElement *self, - gint xoff, - gint yoff, - gint width, - gint height) -{ - ClutterGeometry *clip; - - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - clip = &self->priv->clip; - - clip->x = xoff; - clip->y = yoff; - clip->width = width; - clip->height = height; - - self->priv->has_clip = TRUE; -} - -/** - * clutter_element_remove_clip - * @self: A #ClutterElement - * - * Removes clip area from @self. - */ -void -clutter_element_remove_clip (ClutterElement *self) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - - self->priv->has_clip = FALSE; -} - -/** - * clutter_element_set_parent: - * @self: A #ClutterElement - * @parent: A new #ClutterElement parent or NULL - * - * This function should not be used by applications. - */ -void -clutter_element_set_parent (ClutterElement *self, - ClutterElement *parent) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT (self)); - g_return_if_fail ((parent == NULL) || CLUTTER_IS_ELEMENT (parent)); - - if (self->priv->parent_element == parent) - return; - - if (self->priv->parent_element && self->priv->parent_element != parent) - g_object_unref (self->priv->parent_element); - - self->priv->parent_element = parent; - - if (self->priv->parent_element) - g_object_ref (self->priv->parent_element); -} - -/** - * clutter_element_get_parent: - * @self: A #ClutterElement - * - * Return Value: The #ClutterElement parent or NULL - */ -ClutterElement* -clutter_element_get_parent (ClutterElement *self) -{ - return self->priv->parent_element; -} - -/** - * clutter_element_raise: - * @self: A #ClutterElement - * @below: A #ClutterElement to raise above. - * - * Both elements must have the same parent. - */ -void -clutter_element_raise (ClutterElement *self, ClutterElement *below) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT(self)); - g_return_if_fail (clutter_element_get_parent (self) != NULL); - - clutter_group_raise (CLUTTER_GROUP(clutter_element_get_parent (self)), - self, - below); -} - -/** - * clutter_element_lower: - * @self: A #ClutterElement - * @above: A #ClutterElement to lower below - * - * Both elements must have the same parent. - */ -void -clutter_element_lower (ClutterElement *self, ClutterElement *above) -{ - g_return_if_fail (CLUTTER_IS_ELEMENT(self)); - g_return_if_fail (clutter_element_get_parent (self) != NULL); - - if (above != NULL) - { - g_return_if_fail - (clutter_element_get_parent (self) - != clutter_element_get_parent (above)); - } - - /* FIXME: group_lower should be an overidable method ? */ - clutter_group_lower (CLUTTER_GROUP(clutter_element_get_parent (self)), - self, - above); -} - -/** - * clutter_element_rise_top: - * @self: A #ClutterElement - * - * Rises @self to the top. - */ -void -clutter_element_raise_top (ClutterElement *self) -{ - clutter_element_raise (self, NULL); -} - -/** - * clutter_element_lower_bottom: - * @self: A #ClutterElement - * - * Lowers @self to the bottom. - */ -void -clutter_element_lower_bottom (ClutterElement *self) -{ - clutter_element_lower (self, NULL); -} - -/* - * ClutterGemoetry - */ - -static ClutterGeometry* -clutter_geometry_copy (const ClutterGeometry *geometry) -{ - ClutterGeometry *result = g_new (ClutterGeometry, 1); - - *result = *geometry; - - return result; -} - -GType -clutter_geometry_get_type (void) -{ - static GType our_type = 0; - - if (our_type == 0) - our_type = g_boxed_type_register_static ( - g_intern_static_string ("ClutterGeometry"), - (GBoxedCopyFunc) clutter_geometry_copy, - (GBoxedFreeFunc) g_free); - - return our_type; -} - -/* - * ClutterElementBox - */ -static ClutterElementBox * -clutter_element_box_copy (const ClutterElementBox *box) -{ - ClutterElementBox *result = g_new (ClutterElementBox, 1); - - *result = *box; - - return result; -} - -GType -clutter_element_box_get_type (void) -{ - static GType our_type = 0; - - if (our_type == 0) - our_type = g_boxed_type_register_static ( - g_intern_static_string ("ClutterElementBox"), - (GBoxedCopyFunc) clutter_element_box_copy, - (GBoxedFreeFunc) g_free); - return our_type; -} diff --git a/clutter/clutter-element.h b/clutter/clutter-element.h deleted file mode 100644 index cfe712585..000000000 --- a/clutter/clutter-element.h +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Clutter. - * - * An OpenGL based 'interactive canvas' library. - * - * Authored By Matthew Allum - * - * Copyright (C) 2006 OpenedHand - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _HAVE_CLUTTER_ELEMENT_H -#define _HAVE_CLUTTER_ELEMENT_H - -/* clutter-element.h */ - -#include - -G_BEGIN_DECLS - -#define CLUTTER_TYPE_GEOMETRY (clutter_geometry_get_type ()) -#define CLUTTER_TYPE_ELEMENT_BOX (clutter_element_box_get_type ()) - -#define CLUTTER_TYPE_ELEMENT clutter_element_get_type() - -#define CLUTTER_ELEMENT(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ELEMENT, ClutterElement)) -#define CLUTTER_ELEMENT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ELEMENT, ClutterElementClass)) -#define CLUTTER_IS_ELEMENT(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ELEMENT)) -#define CLUTTER_IS_ELEMENT_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ELEMENT)) -#define CLUTTER_ELEMENT_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ELEMENT, ClutterElementClass)) - -#define CLUTTER_ELEMENT_SET_FLAGS(e,f) ((e)->flags |= (f)) -#define CLUTTER_ELEMENT_UNSET_FLAGS(e,f) ((e)->flags &= ~(f)) - -#define CLUTTER_ELEMENT_IS_MAPPED(e) ((e)->flags & CLUTTER_ELEMENT_MAPPED) -#define CLUTTER_ELEMENT_IS_REALIZED(e) ((e)->flags & CLUTTER_ELEMENT_REALIZED) -#define CLUTTER_ELEMENT_IS_VISIBLE(e) \ - (CLUTTER_ELEMENT_IS_MAPPED(e) && CLUTTER_ELEMENT_IS_REALIZED(e)) - -typedef struct _ClutterElement ClutterElement; -typedef struct _ClutterElementClass ClutterElementClass; -typedef struct _ClutterElementBox ClutterElementBox; -typedef struct _ClutterElementPrivate ClutterElementPrivate; -typedef struct _ClutterGeometry ClutterGeometry; - -typedef void (*ClutterCallback) (ClutterElement *element, gpointer data); - -struct _ClutterGeometry -{ - gint x; - gint y; - guint width; - guint height; -}; - -GType clutter_geometry_get_type (void) G_GNUC_CONST; - -typedef enum -{ - CLUTTER_ELEMENT_MIRROR_X = 1 << 1, - CLUTTER_ELEMENT_MIRROR_Y = 1 << 2 -} ClutterElementTransform; - -typedef enum -{ - CLUTTER_ELEMENT_MAPPED = 1 << 1, - CLUTTER_ELEMENT_REALIZED = 1 << 2 -} ClutterElementFlags; - -struct _ClutterElementBox { gint x1, y1, x2, y2; }; - -GType clutter_element_box_get_type (void) G_GNUC_CONST; - -struct _ClutterElement -{ - /*< public >*/ - GObject parent; - guint32 flags; - - /*< private >*/ - ClutterElementPrivate *priv; -}; - -struct _ClutterElementClass -{ - GObjectClass parent_class; - - void (* show) (ClutterElement *element); - void (* hide) (ClutterElement *element); - void (* realize) (ClutterElement *element); - void (* unrealize) (ClutterElement *element); - void (* paint) (ClutterElement *element); - void (* request_coords) (ClutterElement *element, - ClutterElementBox *box); - void (* allocate_coords) (ClutterElement *element, - ClutterElementBox *box); - void (* set_depth) (ClutterElement *element, - gint depth); - gint (* get_depth) (ClutterElement *element); - - /* to go ? */ - void (* show_all) (ClutterElement *element); - void (* hide_all) (ClutterElement *element); - void (* queue_redraw) (ClutterElement *element); -}; - -GType clutter_element_get_type (void); - -void -clutter_element_show (ClutterElement *self); - -void -clutter_element_hide (ClutterElement *self); - -void -clutter_element_realize (ClutterElement *self); - -void -clutter_element_unrealize (ClutterElement *self); - -void -clutter_element_paint (ClutterElement *self); - -void -clutter_element_queue_redraw (ClutterElement *self); - -void -clutter_element_request_coords (ClutterElement *self, - ClutterElementBox *box); - -void -clutter_element_allocate_coords (ClutterElement *self, - ClutterElementBox *box); - -void -clutter_element_set_geometry (ClutterElement *self, - ClutterGeometry *geom); - -void -clutter_element_get_geometry (ClutterElement *self, - ClutterGeometry *geom); - -void -clutter_element_get_coords (ClutterElement *self, - gint *x1, - gint *y1, - gint *x2, - gint *y2); - -void -clutter_element_set_position (ClutterElement *self, - gint x, - gint y); - -void -clutter_element_set_size (ClutterElement *self, - gint width, - gint height); - -void -clutter_element_get_abs_position (ClutterElement *self, - gint *x, - gint *y); - -guint -clutter_element_get_width (ClutterElement *self); - -guint -clutter_element_get_height (ClutterElement *self); - -gint -clutter_element_get_x (ClutterElement *self); - -gint -clutter_element_get_y (ClutterElement *self); - -void -clutter_element_rotate_z (ClutterElement *self, - gfloat angle, - gint x, - gint y); - -void -clutter_element_rotate_x (ClutterElement *self, - gfloat angle, - gint y, - gint z); - -void -clutter_element_rotate_y (ClutterElement *self, - gfloat angle, - gint x, - gint z); - -void -clutter_element_set_opacity (ClutterElement *self, - guint8 opacity); - -guint8 -clutter_element_get_opacity (ClutterElement *self); - -void -clutter_element_set_name (ClutterElement *self, - const gchar *id); - -const gchar* -clutter_element_get_name (ClutterElement *self); - -guint32 -clutter_element_get_id (ClutterElement *self); - -void -clutter_element_set_clip (ClutterElement *self, - gint xoff, - gint yoff, - gint width, - gint height); - -void -clutter_element_remove_clip (ClutterElement *self); - -void -clutter_element_set_parent (ClutterElement *self, ClutterElement *parent); - -ClutterElement* -clutter_element_get_parent (ClutterElement *self); - -void -clutter_element_raise (ClutterElement *self, ClutterElement *below); - -void -clutter_element_lower (ClutterElement *self, ClutterElement *above); - -void -clutter_element_raise_top (ClutterElement *self); - -void -clutter_element_lower_bottom (ClutterElement *self); - -void -clutter_element_set_depth (ClutterElement *self, - gint depth); - -gint -clutter_element_get_depth (ClutterElement *self); - - -G_END_DECLS - -#endif diff --git a/clutter/clutter-group.c b/clutter/clutter-group.c index 7128fcc57..8230cf765 100644 --- a/clutter/clutter-group.c +++ b/clutter/clutter-group.c @@ -41,7 +41,7 @@ enum static guint group_signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE (ClutterGroup, clutter_group, CLUTTER_TYPE_ELEMENT); +G_DEFINE_TYPE (ClutterGroup, clutter_group, CLUTTER_TYPE_ACTOR); #define CLUTTER_GROUP_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), CLUTTER_TYPE_GROUP, ClutterGroupPrivate)) @@ -52,9 +52,9 @@ struct _ClutterGroupPrivate }; static void -clutter_group_paint (ClutterElement *element) +clutter_group_paint (ClutterActor *actor) { - ClutterGroup *self = CLUTTER_GROUP(element); + ClutterGroup *self = CLUTTER_GROUP(actor); GList *child_item; child_item = self->priv->children; @@ -63,11 +63,11 @@ clutter_group_paint (ClutterElement *element) /* Translate if parent ( i.e not stage window ). */ - if (clutter_element_get_parent (element) != NULL) + if (clutter_actor_get_parent (actor) != NULL) { ClutterGeometry geom; - clutter_element_get_geometry (element, &geom); + clutter_actor_get_geometry (actor, &geom); if (geom.x != 0 && geom.y != 0) glTranslatef(geom.x, geom.y, 0.0); @@ -79,12 +79,12 @@ clutter_group_paint (ClutterElement *element) child_item != NULL; child_item = child_item->next) { - ClutterElement *child = child_item->data; + ClutterActor *child = child_item->data; g_assert (child != NULL); - if (CLUTTER_ELEMENT_IS_MAPPED (child)) - clutter_element_paint (child); + if (CLUTTER_ACTOR_IS_MAPPED (child)) + clutter_actor_paint (child); } #endif @@ -92,11 +92,11 @@ clutter_group_paint (ClutterElement *element) { do { - ClutterElement *child = CLUTTER_ELEMENT(child_item->data); + ClutterActor *child = CLUTTER_ACTOR(child_item->data); - if (CLUTTER_ELEMENT_IS_MAPPED (child)) + if (CLUTTER_ACTOR_IS_MAPPED (child)) { - clutter_element_paint(child); + clutter_actor_paint(child); } } while ((child_item = g_list_next(child_item)) != NULL); @@ -106,18 +106,18 @@ clutter_group_paint (ClutterElement *element) } static void -clutter_group_request_coords (ClutterElement *self, - ClutterElementBox *box) +clutter_group_request_coords (ClutterActor *self, + ClutterActorBox *box) { /* FIXME: what to do here ? * o clip if smaller ? - * o scale each element ? + * o scale each actor ? */ } static void -clutter_group_allocate_coords (ClutterElement *self, - ClutterElementBox *box) +clutter_group_allocate_coords (ClutterActor *self, + ClutterActorBox *box) { ClutterGroupPrivate *priv; GList *child_item; @@ -130,13 +130,13 @@ clutter_group_allocate_coords (ClutterElement *self, { do { - ClutterElement *child = CLUTTER_ELEMENT(child_item->data); + ClutterActor *child = CLUTTER_ACTOR(child_item->data); - if (CLUTTER_ELEMENT_IS_VISIBLE (child)) + if (CLUTTER_ACTOR_IS_VISIBLE (child)) { - ClutterElementBox cbox; + ClutterActorBox cbox; - clutter_element_allocate_coords (child, &cbox); + clutter_actor_allocate_coords (child, &cbox); /* if (box->x1 == 0 || cbox.x1 < box->x1) @@ -195,15 +195,15 @@ static void clutter_group_class_init (ClutterGroupClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - ClutterElementClass *element_class = CLUTTER_ELEMENT_CLASS (klass); + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); - element_class->paint = clutter_group_paint; + actor_class->paint = clutter_group_paint; /* - element_class->show = clutter_group_show_all; - element_class->hide = clutter_group_hide_all; + actor_class->show = clutter_group_show_all; + actor_class->hide = clutter_group_hide_all; */ - element_class->request_coords = clutter_group_request_coords; - element_class->allocate_coords = clutter_group_allocate_coords; + actor_class->request_coords = clutter_group_request_coords; + actor_class->allocate_coords = clutter_group_allocate_coords; /* GObject */ object_class->finalize = clutter_group_finalize; @@ -217,7 +217,7 @@ clutter_group_class_init (ClutterGroupClass *klass) NULL, NULL, clutter_marshal_VOID__OBJECT, G_TYPE_NONE, 1, - CLUTTER_TYPE_ELEMENT); + CLUTTER_TYPE_ACTOR); group_signals[REMOVE] = g_signal_new ("remove", @@ -227,7 +227,7 @@ clutter_group_class_init (ClutterGroupClass *klass) NULL, NULL, clutter_marshal_VOID__OBJECT, G_TYPE_NONE, 1, - CLUTTER_TYPE_ELEMENT); + CLUTTER_TYPE_ACTOR); g_type_class_add_private (object_class, sizeof (ClutterGroupPrivate)); } @@ -255,9 +255,9 @@ clutter_group_new (void) * clutter_group_get_children: * @self: A #ClutterGroup * - * Get a list containing all elements contained in the group. + * Get a list containing all actors contained in the group. * - * Return value: A GList containing child #ClutterElements. + * Return value: A GList containing child #ClutterActors. **/ GList* clutter_group_get_children (ClutterGroup *self) @@ -281,7 +281,7 @@ clutter_group_foreach (ClutterGroup *self, ClutterCallback callback, gpointer user_data) { - ClutterElement *child; + ClutterActor *child; GList *children; g_return_if_fail (CLUTTER_IS_GROUP (self)); @@ -303,17 +303,17 @@ clutter_group_foreach (ClutterGroup *self, * clutter_group_show_all: * @self: A #ClutterGroup * - * Show all child elements of the group. Note, does not recurse. + * Show all child actors of the group. Note, does not recurse. **/ void clutter_group_show_all (ClutterGroup *self) { g_return_if_fail (CLUTTER_IS_GROUP (self)); - clutter_element_show(CLUTTER_ELEMENT(self)); + clutter_actor_show(CLUTTER_ACTOR(self)); g_list_foreach (self->priv->children, - (GFunc)clutter_element_show, + (GFunc)clutter_actor_show, NULL); } @@ -321,145 +321,145 @@ clutter_group_show_all (ClutterGroup *self) * clutter_group_hide_all: * @self: A #ClutterGroup * - * Hide all child elements of the group. Note, does not recurse. + * Hide all child actors of the group. Note, does not recurse. **/ void clutter_group_hide_all (ClutterGroup *self) { g_return_if_fail (CLUTTER_IS_GROUP (self)); - clutter_element_hide(CLUTTER_ELEMENT(self)); + clutter_actor_hide(CLUTTER_ACTOR(self)); g_list_foreach (self->priv->children, - (GFunc)clutter_element_hide, + (GFunc)clutter_actor_hide, NULL); } /** * clutter_group_add: * @self: A #ClutterGroup - * @element: A #ClutterElement + * @actor: A #ClutterActor * - * Adds a new child #ClutterElement to the #ClutterGroup. + * Adds a new child #ClutterActor to the #ClutterGroup. **/ void clutter_group_add (ClutterGroup *self, - ClutterElement *element) + ClutterActor *actor) { - ClutterElement *parent; + ClutterActor *parent; g_return_if_fail (CLUTTER_IS_GROUP (self)); - g_return_if_fail (CLUTTER_IS_ELEMENT (element)); + g_return_if_fail (CLUTTER_IS_ACTOR (actor)); - parent = clutter_element_get_parent (element); + parent = clutter_actor_get_parent (actor); if (parent) { - g_warning ("Attempting to add element of type `%s' to a " - "group of type `%s', but the element has already " + g_warning ("Attempting to add actor of type `%s' to a " + "group of type `%s', but the actor has already " "a parent of type `%s'.", - g_type_name (G_OBJECT_TYPE (element)), + g_type_name (G_OBJECT_TYPE (actor)), g_type_name (G_OBJECT_TYPE (self)), g_type_name (G_OBJECT_TYPE (parent))); return; } - self->priv->children = g_list_append (self->priv->children, element); + self->priv->children = g_list_append (self->priv->children, actor); /* below refs */ - clutter_element_set_parent (element, CLUTTER_ELEMENT(self)); - g_object_ref (element); + clutter_actor_set_parent (actor, CLUTTER_ACTOR(self)); + g_object_ref (actor); clutter_group_sort_depth_order (self); - g_signal_emit (self, group_signals[ADD], 0, element); + g_signal_emit (self, group_signals[ADD], 0, actor); } /** * clutter_group_add_manyv: * @self: a #ClutterGroup - * @first_element: the #ClutterElement element to add to the group - * @args: the elements to be added + * @first_actor: the #ClutterActor actor to add to the group + * @args: the actors to be added * * Similar to clutter_group_add_many() but using a va_list. Use this * function inside bindings. */ void clutter_group_add_many_valist (ClutterGroup *group, - ClutterElement *first_element, + ClutterActor *first_actor, va_list args) { - ClutterElement *element; + ClutterActor *actor; g_return_if_fail (CLUTTER_IS_GROUP (group)); - g_return_if_fail (CLUTTER_IS_ELEMENT (first_element)); + g_return_if_fail (CLUTTER_IS_ACTOR (first_actor)); - element = first_element; - while (element) + actor = first_actor; + while (actor) { - clutter_group_add (group, element); - element = va_arg (args, ClutterElement *); + clutter_group_add (group, actor); + actor = va_arg (args, ClutterActor *); } } /** * clutter_group_add_many: * @self: A #ClutterGroup - * @first_element: the #ClutterElement element to add to the group - * @Varargs: additional elements to add to the group + * @first_actor: the #ClutterActor actor to add to the group + * @Varargs: additional actors to add to the group * - * Adds a NULL-terminated list of elements to a group. This function is + * Adds a NULL-terminated list of actors to a group. This function is * equivalent to calling clutter_group_add() for each member of the list. */ void clutter_group_add_many (ClutterGroup *self, - ClutterElement *first_element, + ClutterActor *first_actor, ...) { va_list args; - va_start (args, first_element); - clutter_group_add_many_valist (self, first_element, args); + va_start (args, first_actor); + clutter_group_add_many_valist (self, first_actor, args); va_end (args); } /** * clutter_group_remove * @self: A #ClutterGroup - * @element: A #ClutterElement + * @actor: A #ClutterActor * - * Remove a child #ClutterElement from the #ClutterGroup. + * Remove a child #ClutterActor from the #ClutterGroup. **/ void clutter_group_remove (ClutterGroup *self, - ClutterElement *element) + ClutterActor *actor) { - ClutterElement *parent; + ClutterActor *parent; g_return_if_fail (CLUTTER_IS_GROUP (self)); - g_return_if_fail (CLUTTER_IS_ELEMENT (element)); + g_return_if_fail (CLUTTER_IS_ACTOR (actor)); - parent = clutter_element_get_parent (element); - if (parent != CLUTTER_ELEMENT (self)) + parent = clutter_actor_get_parent (actor); + if (parent != CLUTTER_ACTOR (self)) { - g_warning ("Attempting to remove element of type `%s' from " + g_warning ("Attempting to remove actor of type `%s' from " "group of class `%s', but the group is not the " - "element's parent.", - g_type_name (G_OBJECT_TYPE (element)), + "actor's parent.", + g_type_name (G_OBJECT_TYPE (actor)), g_type_name (G_OBJECT_TYPE (self))); return; } - self->priv->children = g_list_remove (self->priv->children, element); - clutter_element_set_parent (element, NULL); + self->priv->children = g_list_remove (self->priv->children, actor); + clutter_actor_set_parent (actor, NULL); - g_signal_emit (self, group_signals[REMOVE], 0, element); - g_object_unref (element); + g_signal_emit (self, group_signals[REMOVE], 0, actor); + g_object_unref (actor); } /** * clutter_group_remove_all: * @self: A #ClutterGroup * - * Remove all child #ClutterElement from the #ClutterGroup. + * Remove all child #ClutterActor from the #ClutterGroup. */ void clutter_group_remove_all (ClutterGroup *self) @@ -474,7 +474,7 @@ clutter_group_remove_all (ClutterGroup *self) { do { - clutter_group_remove (self, CLUTTER_ELEMENT(child_item->data)); + clutter_group_remove (self, CLUTTER_ACTOR(child_item->data)); } while ((child_item = g_list_next(child_item)) != NULL); } @@ -483,22 +483,22 @@ clutter_group_remove_all (ClutterGroup *self) /** * clutter_group_find_child_by_id: * @self: A #ClutterGroup - * @id: A unique #Clutterelement ID + * @id: A unique #Clutteractor ID * - * Finds a child element of a group by its unique ID. Search recurses + * Finds a child actor of a group by its unique ID. Search recurses * into any child groups. */ -ClutterElement * +ClutterActor * clutter_group_find_child_by_id (ClutterGroup *self, guint id) { - ClutterElement *element = NULL, *inner_element; + ClutterActor *actor = NULL, *inner_actor; GList *child_item; g_return_val_if_fail (CLUTTER_IS_GROUP (self), NULL); - if (clutter_element_get_id (CLUTTER_ELEMENT(self)) == id) - return CLUTTER_ELEMENT(self); + if (clutter_actor_get_id (CLUTTER_ACTOR(self)) == id) + return CLUTTER_ACTOR(self); child_item = self->priv->children; @@ -506,50 +506,50 @@ clutter_group_find_child_by_id (ClutterGroup *self, { do { - inner_element = (ClutterElement*)child_item->data; + inner_actor = (ClutterActor*)child_item->data; - if (clutter_element_get_id (inner_element) == id) - return inner_element; + if (clutter_actor_get_id (inner_actor) == id) + return inner_actor; - if (CLUTTER_IS_GROUP(inner_element)) + if (CLUTTER_IS_GROUP(inner_actor)) { - element = - clutter_group_find_child_by_id (CLUTTER_GROUP(inner_element), + actor = + clutter_group_find_child_by_id (CLUTTER_GROUP(inner_actor), id); - if (element) - return element; + if (actor) + return actor; } } while ((child_item = g_list_next(child_item)) != NULL); } - return element; + return actor; } /** * clutter_group_raise: * @self: a #ClutterGroup - * @element: a #ClutterElement - * @sibling: a #ClutterElement + * @actor: a #ClutterActor + * @sibling: a #ClutterActor * * FIXME */ void clutter_group_raise (ClutterGroup *self, - ClutterElement *element, - ClutterElement *sibling) + ClutterActor *actor, + ClutterActor *sibling) { ClutterGroupPrivate *priv; gint pos; - g_return_if_fail (element != sibling); + g_return_if_fail (actor != sibling); priv = self->priv; - pos = g_list_index (priv->children, element) + 1; + pos = g_list_index (priv->children, actor) + 1; - priv->children = g_list_remove (priv->children, element); + priv->children = g_list_remove (priv->children, actor); if (sibling == NULL) { @@ -557,11 +557,11 @@ clutter_group_raise (ClutterGroup *self, /* Raise top */ last_item = g_list_last (priv->children); sibling = last_item->data; - priv->children = g_list_append (priv->children, element); + priv->children = g_list_append (priv->children, actor); } else { - priv->children = g_list_insert (priv->children, element, pos); + priv->children = g_list_insert (priv->children, actor, pos); } /* set Z ordering a value below, this will then call sort @@ -569,35 +569,35 @@ clutter_group_raise (ClutterGroup *self, * values will be correct. * FIXME: optimise */ - if (clutter_element_get_depth(sibling) != clutter_element_get_depth(element)) - clutter_element_set_depth (element, - clutter_element_get_depth(sibling)); + if (clutter_actor_get_depth(sibling) != clutter_actor_get_depth(actor)) + clutter_actor_set_depth (actor, + clutter_actor_get_depth(sibling)); } /** * clutter_group_lower: * @self: a #ClutterGroup - * @element: a #ClutterElement - * @sibling: a #ClutterElement + * @actor: a #ClutterActor + * @sibling: a #ClutterActor * * FIXME */ void clutter_group_lower (ClutterGroup *self, - ClutterElement *element, - ClutterElement *sibling) + ClutterActor *actor, + ClutterActor *sibling) { ClutterGroupPrivate *priv; gint pos; - g_return_if_fail (element != sibling); + g_return_if_fail (actor != sibling); priv = self->priv; - pos = g_list_index (priv->children, element) - 1; + pos = g_list_index (priv->children, actor) - 1; - priv->children = g_list_remove (priv->children, element); + priv->children = g_list_remove (priv->children, actor); if (sibling == NULL) { @@ -606,26 +606,26 @@ clutter_group_lower (ClutterGroup *self, last_item = g_list_first (priv->children); sibling = last_item->data; - priv->children = g_list_prepend (priv->children, element); + priv->children = g_list_prepend (priv->children, actor); } else - priv->children = g_list_insert (priv->children, element, pos); + priv->children = g_list_insert (priv->children, actor, pos); /* See comment in group_raise for this */ - if (clutter_element_get_depth(sibling) != clutter_element_get_depth(element)) - clutter_element_set_depth (element, - clutter_element_get_depth(sibling)); + if (clutter_actor_get_depth(sibling) != clutter_actor_get_depth(actor)) + clutter_actor_set_depth (actor, + clutter_actor_get_depth(sibling)); } static gint sort_z_order (gconstpointer a, gconstpointer b) { - if (clutter_element_get_depth (CLUTTER_ELEMENT(a)) - == clutter_element_get_depth (CLUTTER_ELEMENT(b))) + if (clutter_actor_get_depth (CLUTTER_ACTOR(a)) + == clutter_actor_get_depth (CLUTTER_ACTOR(b))) return 0; - if (clutter_element_get_depth (CLUTTER_ELEMENT(a)) - > clutter_element_get_depth (CLUTTER_ELEMENT(b))) + if (clutter_actor_get_depth (CLUTTER_ACTOR(a)) + > clutter_actor_get_depth (CLUTTER_ACTOR(b))) return 1; return -1; @@ -649,6 +649,6 @@ clutter_group_sort_depth_order (ClutterGroup *self) priv->children = g_list_sort (priv->children, sort_z_order); - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT(self))) - clutter_element_queue_redraw (CLUTTER_ELEMENT(self)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR(self))) + clutter_actor_queue_redraw (CLUTTER_ACTOR(self)); } diff --git a/clutter/clutter-group.h b/clutter/clutter-group.h index 0bc0a8ad0..88c12da4e 100644 --- a/clutter/clutter-group.h +++ b/clutter/clutter-group.h @@ -27,7 +27,7 @@ #define _HAVE_CLUTTER_GROUP_H #include -#include +#include G_BEGIN_DECLS @@ -59,7 +59,7 @@ typedef struct _ClutterGroupClass ClutterGroupClass; struct _ClutterGroup { - ClutterElement parent; + ClutterActor parent; /*< private >*/ ClutterGroupPrivate *priv; @@ -68,12 +68,12 @@ struct _ClutterGroup struct _ClutterGroupClass { /*< private >*/ - ClutterElementClass parent_class; + ClutterActorClass parent_class; void (*add) (ClutterGroup *group, - ClutterElement *child); + ClutterActor *child); void (*remove) (ClutterGroup *group, - ClutterElement *child); + ClutterActor *child); void (*_clutter_group_1) (void); void (*_clutter_group_2) (void); @@ -96,21 +96,21 @@ clutter_group_foreach (ClutterGroup *self, gpointer user_data); void -clutter_group_add (ClutterGroup *group, ClutterElement *element); +clutter_group_add (ClutterGroup *group, ClutterActor *actor); void clutter_group_add_many_valist (ClutterGroup *group, - ClutterElement *first_element, + ClutterActor *first_actor, va_list args); void clutter_group_add_many (ClutterGroup *group, - ClutterElement *first_element, + ClutterActor *first_actor, ...) G_GNUC_NULL_TERMINATED; void clutter_group_remove (ClutterGroup *group, - ClutterElement *element); + ClutterActor *actor); void clutter_group_show_all (ClutterGroup *self); @@ -118,18 +118,18 @@ clutter_group_show_all (ClutterGroup *self); void clutter_group_hide_all (ClutterGroup *self); -ClutterElement * +ClutterActor * clutter_group_find_child_by_id (ClutterGroup *self, guint id); void clutter_group_raise (ClutterGroup *self, - ClutterElement *element, - ClutterElement *sibling); + ClutterActor *actor, + ClutterActor *sibling); void clutter_group_lower (ClutterGroup *self, - ClutterElement *element, - ClutterElement *sibling); + ClutterActor *actor, + ClutterActor *sibling); void clutter_group_sort_depth_order (ClutterGroup *self); diff --git a/clutter/clutter-label.c b/clutter/clutter-label.c index 83b406c27..9818c69db 100644 --- a/clutter/clutter-label.c +++ b/clutter/clutter-label.c @@ -144,8 +144,8 @@ clutter_label_make_pixbuf (ClutterLabel *label) } static void -clutter_label_allocate_coords (ClutterElement *element, - ClutterElementBox *box) +clutter_label_allocate_coords (ClutterActor *actor, + ClutterActorBox *box) { @@ -259,14 +259,14 @@ static void clutter_label_class_init (ClutterLabelClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - ClutterElementClass *element_class = CLUTTER_ELEMENT_CLASS (klass); - ClutterElementClass *parent_class = CLUTTER_ELEMENT_CLASS (clutter_label_parent_class); + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); + ClutterActorClass *parent_class = CLUTTER_ACTOR_CLASS (clutter_label_parent_class); - element_class->paint = parent_class->paint; - element_class->realize = parent_class->realize; - element_class->unrealize = parent_class->unrealize; - element_class->show = parent_class->show; - element_class->hide = parent_class->hide; + actor_class->paint = parent_class->paint; + actor_class->realize = parent_class->realize; + actor_class->unrealize = parent_class->unrealize; + actor_class->show = parent_class->show; + actor_class->hide = parent_class->hide; gobject_class->finalize = clutter_label_finalize; gobject_class->dispose = clutter_label_dispose; @@ -339,7 +339,7 @@ clutter_label_init (ClutterLabel *self) * * Return value: a #ClutterLabel */ -ClutterElement * +ClutterActor * clutter_label_new_with_text (const gchar *font_name, const gchar *text) { @@ -358,7 +358,7 @@ clutter_label_new_with_text (const gchar *font_name, * * Return: the newly created #ClutterLabel */ -ClutterElement * +ClutterActor * clutter_label_new (void) { return g_object_new (CLUTTER_TYPE_LABEL, NULL); @@ -403,8 +403,8 @@ clutter_label_set_text (ClutterLabel *label, clutter_label_make_pixbuf (label); - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT(label))) - clutter_element_queue_redraw (CLUTTER_ELEMENT(label)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR(label))) + clutter_actor_queue_redraw (CLUTTER_ACTOR(label)); g_object_notify (G_OBJECT (label), "text"); } @@ -471,8 +471,8 @@ clutter_label_set_font_name (ClutterLabel *label, { clutter_label_make_pixbuf (label); - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT(label))) - clutter_element_queue_redraw (CLUTTER_ELEMENT(label)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR(label))) + clutter_actor_queue_redraw (CLUTTER_ACTOR(label)); } g_object_notify (G_OBJECT (label), "font-name"); @@ -499,8 +499,8 @@ clutter_label_set_text_extents (ClutterLabel *label, clutter_label_make_pixbuf (label); - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT(label))) - clutter_element_queue_redraw (CLUTTER_ELEMENT(label)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR(label))) + clutter_actor_queue_redraw (CLUTTER_ACTOR(label)); } /** @@ -536,7 +536,7 @@ void clutter_label_set_color (ClutterLabel *label, const ClutterColor *color) { - ClutterElement *element; + ClutterActor *actor; ClutterLabelPrivate *priv; g_return_if_fail (CLUTTER_IS_LABEL (label)); @@ -550,11 +550,11 @@ clutter_label_set_color (ClutterLabel *label, clutter_label_make_pixbuf (label); - element = CLUTTER_ELEMENT (label); - clutter_element_set_opacity (element, priv->fgcol.alpha); + actor = CLUTTER_ACTOR (label); + clutter_actor_set_opacity (actor, priv->fgcol.alpha); - if (CLUTTER_ELEMENT_IS_VISIBLE (element)) - clutter_element_queue_redraw (element); + if (CLUTTER_ACTOR_IS_VISIBLE (actor)) + clutter_actor_queue_redraw (actor); g_object_notify (G_OBJECT (label), "color"); } diff --git a/clutter/clutter-label.h b/clutter/clutter-label.h index 855ba46d7..27aba4f09 100644 --- a/clutter/clutter-label.h +++ b/clutter/clutter-label.h @@ -80,8 +80,8 @@ struct _ClutterLabelClass GType clutter_label_get_type (void) G_GNUC_CONST; -ClutterElement * clutter_label_new (void); -ClutterElement * clutter_label_new_with_text (const gchar *font_name, +ClutterActor * clutter_label_new (void); +ClutterActor * clutter_label_new_with_text (const gchar *font_name, const gchar *text); void clutter_label_set_text (ClutterLabel *label, diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c index 8344b3a33..7fa6dbf7e 100644 --- a/clutter/clutter-main.c +++ b/clutter/clutter-main.c @@ -28,7 +28,7 @@ #include #include "clutter-main.h" -#include "clutter-element.h" +#include "clutter-actor.h" #include "clutter-stage.h" #include "clutter-private.h" @@ -164,10 +164,10 @@ clutter_dispatch_x_event (XEvent *xevent, Expose, &foo_xev)); - /* FIXME: need to make stage an 'element' so can que + /* FIXME: need to make stage an 'actor' so can que * a paint direct from there rather than hack here... */ - clutter_element_queue_redraw (CLUTTER_ELEMENT (stage)); + clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); } break; case KeyPress: @@ -280,7 +280,7 @@ clutter_redraw (void) glDisable(GL_LIGHTING); glDisable(GL_DEPTH_TEST); - clutter_element_paint (CLUTTER_ELEMENT (stage)); + clutter_actor_paint (CLUTTER_ACTOR (stage)); if (clutter_stage_get_xwindow (stage)) { @@ -548,10 +548,10 @@ clutter_init (int *argc, char ***argv) context->stage = CLUTTER_STAGE (clutter_stage_get_default ()); g_return_val_if_fail (CLUTTER_IS_STAGE (context->stage), -3); - clutter_element_realize (CLUTTER_ELEMENT (context->stage)); + clutter_actor_realize (CLUTTER_ACTOR (context->stage)); g_return_val_if_fail - (CLUTTER_ELEMENT_IS_REALIZED(CLUTTER_ELEMENT(context->stage)), -4); + (CLUTTER_ACTOR_IS_REALIZED(CLUTTER_ACTOR(context->stage)), -4); /* At least GL 1.2 is needed for CLAMP_TO_EDGE */ g_return_val_if_fail(is_gl_version_at_least_12 (), -5); diff --git a/clutter/clutter-main.h b/clutter/clutter-main.h index 1afad6ae9..e7b5195cb 100644 --- a/clutter/clutter-main.h +++ b/clutter/clutter-main.h @@ -26,7 +26,7 @@ #ifndef _HAVE_CLUTTER_MAIN_H #define _HAVE_CLUTTER_MAIN_H -#include +#include #include #include diff --git a/clutter/clutter-rectangle.c b/clutter/clutter-rectangle.c index c8cc87563..7ab02adb4 100644 --- a/clutter/clutter-rectangle.c +++ b/clutter/clutter-rectangle.c @@ -30,7 +30,7 @@ #include #include -G_DEFINE_TYPE (ClutterRectangle, clutter_rectangle, CLUTTER_TYPE_ELEMENT); +G_DEFINE_TYPE (ClutterRectangle, clutter_rectangle, CLUTTER_TYPE_ACTOR); enum { @@ -49,7 +49,7 @@ struct _ClutterRectanglePrivate }; static void -clutter_rectangle_paint (ClutterElement *self) +clutter_rectangle_paint (ClutterActor *self) { ClutterRectangle *rectangle = CLUTTER_RECTANGLE(self); ClutterRectanglePrivate *priv; @@ -63,12 +63,12 @@ clutter_rectangle_paint (ClutterElement *self) glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - clutter_element_get_geometry (self, &geom); + clutter_actor_get_geometry (self, &geom); glColor4ub(priv->color.red, priv->color.green, priv->color.blue, - clutter_element_get_opacity (self)); + clutter_actor_get_opacity (self)); glRecti (geom.x, geom.y, @@ -138,9 +138,9 @@ static void clutter_rectangle_class_init (ClutterRectangleClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - ClutterElementClass *element_class = CLUTTER_ELEMENT_CLASS (klass); + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); - element_class->paint = clutter_rectangle_paint; + actor_class->paint = clutter_rectangle_paint; gobject_class->finalize = clutter_rectangle_finalize; gobject_class->dispose = clutter_rectangle_dispose; @@ -172,11 +172,11 @@ clutter_rectangle_init (ClutterRectangle *self) /** * clutter_rectangle_new: * - * Creates a new #ClutterElement with a rectangular shape. + * Creates a new #ClutterActor with a rectangular shape. * - * Return value: a new #ClutterElement + * Return value: a new #ClutterActor */ -ClutterElement* +ClutterActor* clutter_rectangle_new (void) { return g_object_new (CLUTTER_TYPE_RECTANGLE, NULL); @@ -186,12 +186,12 @@ clutter_rectangle_new (void) * clutter_rectangle_new_with_color: * @color: a #ClutterColor * - * Creates a new #ClutterElement with a rectangular shape + * Creates a new #ClutterActor with a rectangular shape * and with @color. * - * Return value: a new #ClutterElement + * Return value: a new #ClutterActor */ -ClutterElement * +ClutterActor * clutter_rectangle_new_with_color (const ClutterColor *color) { return g_object_new (CLUTTER_TYPE_RECTANGLE, @@ -246,11 +246,11 @@ clutter_rectangle_set_color (ClutterRectangle *rectangle, priv->color.blue = color->blue; priv->color.alpha = color->alpha; - clutter_element_set_opacity (CLUTTER_ELEMENT (rectangle), + clutter_actor_set_opacity (CLUTTER_ACTOR (rectangle), priv->color.alpha); - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT (rectangle))) - clutter_element_queue_redraw (CLUTTER_ELEMENT (rectangle)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR (rectangle))) + clutter_actor_queue_redraw (CLUTTER_ACTOR (rectangle)); g_object_notify (G_OBJECT (rectangle), "color"); } diff --git a/clutter/clutter-rectangle.h b/clutter/clutter-rectangle.h index ef2c2dc01..41ec219c1 100644 --- a/clutter/clutter-rectangle.h +++ b/clutter/clutter-rectangle.h @@ -27,7 +27,7 @@ #define _HAVE_CLUTTER_RECTANGLE_H #include -#include +#include #include G_BEGIN_DECLS @@ -60,7 +60,7 @@ typedef struct _ClutterRectangleClass ClutterRectangleClass; struct _ClutterRectangle { - ClutterElement parent; + ClutterActor parent; /*< private >*/ ClutterRectanglePrivate *priv; @@ -68,7 +68,7 @@ struct _ClutterRectangle struct _ClutterRectangleClass { - ClutterElementClass parent_class; + ClutterActorClass parent_class; /* padding for future expansion */ void (*_clutter_rectangle1) (void); @@ -79,8 +79,8 @@ struct _ClutterRectangleClass GType clutter_rectangle_get_type (void) G_GNUC_CONST; -ClutterElement *clutter_rectangle_new (void); -ClutterElement *clutter_rectangle_new_with_color (const ClutterColor *color); +ClutterActor *clutter_rectangle_new (void); +ClutterActor *clutter_rectangle_new_with_color (const ClutterColor *color); void clutter_rectangle_get_color (ClutterRectangle *rectangle, ClutterColor *color); diff --git a/clutter/clutter-stage.c b/clutter/clutter-stage.c index 8dbb1eca1..350253ca5 100644 --- a/clutter/clutter-stage.c +++ b/clutter/clutter-stage.c @@ -87,7 +87,7 @@ enum static guint stage_signals[LAST_SIGNAL] = { 0 }; -static ClutterElementClass *parent_class = NULL; +static ClutterActorClass *parent_class = NULL; static void sync_fullscreen (ClutterStage *stage) @@ -101,7 +101,7 @@ sync_fullscreen (ClutterStage *stage) if (stage->priv->want_fullscreen) { - clutter_element_set_size (CLUTTER_ELEMENT(stage), + clutter_actor_set_size (CLUTTER_ACTOR(stage), DisplayWidth(clutter_xdisplay(), clutter_xscreen()), DisplayHeight(clutter_xdisplay(), @@ -225,7 +225,7 @@ sync_gl_viewport (ClutterStage *stage) } static void -clutter_stage_show (ClutterElement *self) +clutter_stage_show (ClutterActor *self) { if (clutter_stage_get_xwindow (CLUTTER_STAGE(self))) XMapWindow (clutter_xdisplay(), @@ -233,7 +233,7 @@ clutter_stage_show (ClutterElement *self) } static void -clutter_stage_hide (ClutterElement *self) +clutter_stage_hide (ClutterActor *self) { if (clutter_stage_get_xwindow (CLUTTER_STAGE(self))) XUnmapWindow (clutter_xdisplay(), @@ -241,12 +241,12 @@ clutter_stage_hide (ClutterElement *self) } static void -clutter_stage_unrealize (ClutterElement *element) +clutter_stage_unrealize (ClutterActor *actor) { ClutterStage *stage; ClutterStagePrivate *priv; - stage = CLUTTER_STAGE(element); + stage = CLUTTER_STAGE(actor); priv = stage->priv; CLUTTER_MARK(); @@ -269,7 +269,7 @@ clutter_stage_unrealize (ClutterElement *element) } else { - if (clutter_stage_get_xwindow (CLUTTER_STAGE(element))) + if (clutter_stage_get_xwindow (CLUTTER_STAGE(actor))) { XDestroyWindow (clutter_xdisplay(), priv->xwin); priv->xwin = None; @@ -282,12 +282,12 @@ clutter_stage_unrealize (ClutterElement *element) } static void -clutter_stage_realize (ClutterElement *element) +clutter_stage_realize (ClutterActor *actor) { ClutterStage *stage; ClutterStagePrivate *priv; - stage = CLUTTER_STAGE(element); + stage = CLUTTER_STAGE(actor); priv = stage->priv; @@ -312,7 +312,7 @@ clutter_stage_realize (ClutterElement *element) if (!priv->xvisinfo) { g_critical ("Unable to find suitable GL visual."); - CLUTTER_ELEMENT_UNSET_FLAGS (element, CLUTTER_ELEMENT_REALIZED); + CLUTTER_ACTOR_UNSET_FLAGS (actor, CLUTTER_ACTOR_REALIZED); return; } @@ -386,7 +386,7 @@ clutter_stage_realize (ClutterElement *element) if (!priv->xvisinfo) { g_critical ("Unable to find suitable GL visual."); - CLUTTER_ELEMENT_UNSET_FLAGS (element, CLUTTER_ELEMENT_REALIZED); + CLUTTER_ACTOR_UNSET_FLAGS (actor, CLUTTER_ACTOR_REALIZED); return; } @@ -433,14 +433,14 @@ clutter_stage_realize (ClutterElement *element) } static void -clutter_stage_paint (ClutterElement *self) +clutter_stage_paint (ClutterActor *self) { parent_class->paint (self); } static void -clutter_stage_allocate_coords (ClutterElement *self, - ClutterElementBox *box) +clutter_stage_allocate_coords (ClutterActor *self, + ClutterActorBox *box) { /* Do nothing, just stop group_allocate getting called */ @@ -449,8 +449,8 @@ clutter_stage_allocate_coords (ClutterElement *self, } static void -clutter_stage_request_coords (ClutterElement *self, - ClutterElementBox *box) +clutter_stage_request_coords (ClutterActor *self, + ClutterActorBox *box) { ClutterStage *stage; ClutterStagePrivate *priv; @@ -479,8 +479,8 @@ clutter_stage_request_coords (ClutterElement *self, if (priv->xpixmap) { /* Need to recreate to resize */ - clutter_element_unrealize(self); - clutter_element_realize(self); + clutter_actor_unrealize(self); + clutter_actor_realize(self); } sync_gl_viewport (stage); @@ -499,7 +499,7 @@ clutter_stage_dispose (GObject *object) ClutterStage *self = CLUTTER_STAGE (object); if (self->priv->xwin) - clutter_stage_unrealize (CLUTTER_ELEMENT (self)); + clutter_stage_unrealize (CLUTTER_ACTOR (self)); G_OBJECT_CLASS (clutter_stage_parent_class)->dispose (object); } @@ -531,7 +531,7 @@ clutter_stage_set_property (GObject *object, case PROP_OFFSCREEN: if (priv->want_offscreen != g_value_get_boolean (value)) { - clutter_element_unrealize (CLUTTER_ELEMENT(stage)); + clutter_actor_unrealize (CLUTTER_ACTOR(stage)); /* NOTE: as we are changing GL contexts here. so * all textures will need unreleasing as they will * likely have set up ( i.e labels ) in the old @@ -539,7 +539,7 @@ clutter_stage_set_property (GObject *object, * automatically */ priv->want_offscreen = g_value_get_boolean (value); - clutter_element_realize (CLUTTER_ELEMENT(stage)); + clutter_actor_realize (CLUTTER_ACTOR(stage)); } break; case PROP_FULLSCREEN: @@ -600,18 +600,18 @@ static void clutter_stage_class_init (ClutterStageClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - ClutterElementClass *element_class = CLUTTER_ELEMENT_CLASS (klass); + ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); parent_class = g_type_class_peek_parent (klass); - element_class->realize = clutter_stage_realize; - element_class->unrealize = clutter_stage_unrealize; - element_class->show = clutter_stage_show; - element_class->hide = clutter_stage_hide; - element_class->paint = clutter_stage_paint; + actor_class->realize = clutter_stage_realize; + actor_class->unrealize = clutter_stage_unrealize; + actor_class->show = clutter_stage_show; + actor_class->hide = clutter_stage_hide; + actor_class->paint = clutter_stage_paint; - element_class->request_coords = clutter_stage_request_coords; - element_class->allocate_coords = clutter_stage_allocate_coords; + actor_class->request_coords = clutter_stage_request_coords; + actor_class->allocate_coords = clutter_stage_allocate_coords; gobject_class->dispose = clutter_stage_dispose; gobject_class->finalize = clutter_stage_finalize; @@ -734,7 +734,7 @@ clutter_stage_init (ClutterStage *self) priv->color.blue = 0xff; priv->color.alpha = 0xff; - clutter_element_set_size (CLUTTER_ELEMENT (self), 640, 480); + clutter_actor_set_size (CLUTTER_ACTOR (self), 640, 480); } /** @@ -749,19 +749,19 @@ clutter_stage_init (ClutterStage *self) * Return value: the main #ClutterStage. Use g_object_unref() * when finished using it. */ -ClutterElement * +ClutterActor * clutter_stage_get_default (void) { - ClutterElement *retval = NULL; + ClutterActor *retval = NULL; if (!stage_singleton) { stage_singleton = g_object_new (CLUTTER_TYPE_STAGE, NULL); - retval = CLUTTER_ELEMENT (stage_singleton); + retval = CLUTTER_ACTOR (stage_singleton); } else { - retval = CLUTTER_ELEMENT (stage_singleton); + retval = CLUTTER_ACTOR (stage_singleton); /* We dont ref for now as its assumed there will always be * a stage and no real support for multiple stages. Non @@ -828,8 +828,8 @@ clutter_stage_set_color (ClutterStage *stage, priv->color.blue = color->blue; priv->color.alpha = color->alpha; - if (CLUTTER_ELEMENT_IS_VISIBLE (CLUTTER_ELEMENT (stage))) - clutter_element_queue_redraw (CLUTTER_ELEMENT (stage)); + if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR (stage))) + clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); g_object_notify (G_OBJECT (stage), "color"); } @@ -888,7 +888,7 @@ clutter_stage_snapshot (ClutterStage *stage, { guchar *data; GdkPixbuf *pixb, *fpixb; - ClutterElement *element; + ClutterActor *actor; ClutterStagePrivate *priv; g_return_val_if_fail (CLUTTER_IS_STAGE (stage), NULL); @@ -896,13 +896,13 @@ clutter_stage_snapshot (ClutterStage *stage, priv = stage->priv; - element = CLUTTER_ELEMENT (stage); + actor = CLUTTER_ACTOR (stage); if (width < 0) - width = clutter_element_get_width (element); + width = clutter_actor_get_width (actor); if (height < 0) - height = clutter_element_get_height (element); + height = clutter_actor_get_height (actor); if (priv->want_offscreen) @@ -923,7 +923,7 @@ clutter_stage_snapshot (ClutterStage *stage, data = g_malloc0 (sizeof (guchar) * width * height * 4); glReadPixels (x, - clutter_element_get_height (element) + clutter_actor_get_height (actor) - y - height, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data); @@ -947,22 +947,22 @@ clutter_stage_snapshot (ClutterStage *stage, } /** - * clutter_stage_get_element_at_pos: + * clutter_stage_get_actor_at_pos: * @stage: a #ClutterStage * @x: the x coordinate * @y: the y coordinate * - * If found, retrieves the element that the (x, y) coordinates. + * If found, retrieves the actor that the (x, y) coordinates. * - * Return value: the #ClutterElement at the desired coordinates, - * or %NULL if no element was found. + * Return value: the #ClutterActor at the desired coordinates, + * or %NULL if no actor was found. */ -ClutterElement* -clutter_stage_get_element_at_pos (ClutterStage *stage, +ClutterActor* +clutter_stage_get_actor_at_pos (ClutterStage *stage, gint x, gint y) { - ClutterElement *found = NULL; + ClutterActor *found = NULL; GLuint buff[64] = {0}; GLint hits, view[4]; @@ -987,7 +987,7 @@ clutter_stage_get_element_at_pos (ClutterStage *stage, glMatrixMode(GL_MODELVIEW); - clutter_element_paint (CLUTTER_ELEMENT (stage)); + clutter_actor_paint (CLUTTER_ACTOR (stage)); glMatrixMode(GL_PROJECTION); glPopMatrix(); diff --git a/clutter/clutter-stage.h b/clutter/clutter-stage.h index 9c8c6eac0..f7a324961 100644 --- a/clutter/clutter-stage.h +++ b/clutter/clutter-stage.h @@ -42,10 +42,10 @@ G_BEGIN_DECLS #define CLUTTER_TYPE_STAGE clutter_stage_get_type() #define CLUTTER_STAGE_WIDTH() \ - clutter_element_get_width(CLUTTER_ELEMENT(clutter_stage_get_default())) + clutter_actor_get_width(CLUTTER_ACTOR(clutter_stage_get_default())) #define CLUTTER_STAGE_HEIGHT() \ - clutter_element_get_height(CLUTTER_ELEMENT(clutter_stage_get_default())) + clutter_actor_get_height(CLUTTER_ACTOR(clutter_stage_get_default())) #define CLUTTER_STAGE(obj) \ @@ -108,7 +108,7 @@ struct _ClutterStageClass GType clutter_stage_get_type (void); -ClutterElement *clutter_stage_get_default (void); +ClutterActor *clutter_stage_get_default (void); Window clutter_stage_get_xwindow (ClutterStage *stage); @@ -118,7 +118,7 @@ void clutter_stage_set_color (ClutterStage *stage, void clutter_stage_get_color (ClutterStage *stage, ClutterColor *color); -ClutterElement *clutter_stage_get_element_at_pos (ClutterStage *stage, +ClutterActor *clutter_stage_get_actor_at_pos (ClutterStage *stage, gint x, gint y); diff --git a/clutter/clutter-texture.c b/clutter/clutter-texture.c index bb0950563..0fa2e726d 100644 --- a/clutter/clutter-texture.c +++ b/clutter/clutter-texture.c @@ -32,7 +32,7 @@ #include #include -G_DEFINE_TYPE (ClutterTexture, clutter_texture, CLUTTER_TYPE_ELEMENT); +G_DEFINE_TYPE (ClutterTexture, clutter_texture, CLUTTER_TYPE_ACTOR); #if G_BYTE_ORDER == G_LITTLE_ENDIAN #define PIXEL_TYPE GL_UNSIGNED_BYTE @@ -53,7 +53,7 @@ struct ClutterTexturePrivate GLenum pixel_format; GLenum pixel_type; - gboolean sync_element_size; + gboolean sync_actor_size; gint max_tile_waste; guint filter_quality; gboolean repeat_x, repeat_y; /* non working */ @@ -219,8 +219,8 @@ texture_render_to_gl_quad (ClutterTexture *texture, qwidth = x2-x1; qheight = y2-y1; - if (!CLUTTER_ELEMENT_IS_REALIZED (CLUTTER_ELEMENT(texture))) - clutter_element_realize (CLUTTER_ELEMENT(texture)); + if (!CLUTTER_ACTOR_IS_REALIZED (CLUTTER_ACTOR(texture))) + clutter_actor_realize (CLUTTER_ACTOR(texture)); g_return_if_fail(priv->tiles != NULL); @@ -291,12 +291,12 @@ texture_render_to_gl_quad (ClutterTexture *texture, } static void -clutter_texture_unrealize (ClutterElement *element) +clutter_texture_unrealize (ClutterActor *actor) { ClutterTexture *texture; ClutterTexturePrivate *priv; - texture = CLUTTER_TEXTURE(element); + texture = CLUTTER_TEXTURE(actor); priv = texture->priv; if (priv->tiles == NULL) @@ -471,7 +471,7 @@ clutter_texture_sync_pixbuf (ClutterTexture *texture) gchar *filename; filename = g_strdup_printf("/tmp/%i-%i-%i.png", - clutter_element_get_id(CLUTTER_ELEMENT(texture)), + clutter_actor_get_id(CLUTTER_ACTOR(texture)), x, y); printf("saving %s\n", filename); gdk_pixbuf_save (pixtmp, filename , "png", NULL, NULL); @@ -534,11 +534,11 @@ clutter_texture_sync_pixbuf (ClutterTexture *texture) } static void -clutter_texture_realize (ClutterElement *element) +clutter_texture_realize (ClutterActor *actor) { ClutterTexture *texture; - texture = CLUTTER_TEXTURE(element); + texture = CLUTTER_TEXTURE(actor); CLUTTER_MARK(); @@ -546,9 +546,9 @@ clutter_texture_realize (ClutterElement *element) { /* Dont allow realization with no pixbuf */ CLUTTER_DBG("*** Texture has no pixbuf cannot realize ***"); - CLUTTER_DBG("*** flags %i ***", element->flags); - CLUTTER_ELEMENT_UNSET_FLAGS (element, CLUTTER_ELEMENT_REALIZED); - CLUTTER_DBG("*** flags %i ***", element->flags); + CLUTTER_DBG("*** flags %i ***", actor->flags); + CLUTTER_ACTOR_UNSET_FLAGS (actor, CLUTTER_ACTOR_REALIZED); + CLUTTER_DBG("*** flags %i ***", actor->flags); return; } CLUTTER_DBG("Texture realized"); @@ -560,35 +560,35 @@ clutter_texture_realize (ClutterElement *element) } static void -clutter_texture_show (ClutterElement *self) +clutter_texture_show (ClutterActor *self) { - clutter_element_realize (self); + clutter_actor_realize (self); } static void -clutter_texture_hide (ClutterElement *self) +clutter_texture_hide (ClutterActor *self) { - clutter_element_unrealize (self); + clutter_actor_unrealize (self); } static void -clutter_texture_paint (ClutterElement *self) +clutter_texture_paint (ClutterActor *self) { ClutterTexture *texture = CLUTTER_TEXTURE(self); gint x1, y1, x2, y2; CLUTTER_DBG("@@@ for '%s' @@@", - clutter_element_get_name(self) ? - clutter_element_get_name(self) : "unknown"); + clutter_actor_get_name(self) ? + clutter_actor_get_name(self) : "unknown"); glPushMatrix(); glEnable(GL_BLEND); glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glColor4ub(255, 255, 255, clutter_element_get_opacity(self)); + glColor4ub(255, 255, 255, clutter_actor_get_opacity(self)); - clutter_element_get_coords (self, &x1, &y1, &x2, &y2); + clutter_actor_get_coords (self, &x1, &y1, &x2, &y2); texture_render_to_gl_quad (texture, x1, y1, x2, y2); glDisable(GL_TEXTURE_2D); @@ -607,7 +607,7 @@ clutter_texture_dispose (GObject *object) if (priv != NULL) { - clutter_element_unrealize (CLUTTER_ELEMENT(self)); + clutter_actor_unrealize (CLUTTER_ACTOR(self)); if (priv->pixbuf != NULL) { @@ -665,7 +665,7 @@ clutter_texture_set_property (GObject *object, priv->pixel_format = g_value_get_int (value); break; case PROP_SYNC_SIZE: - priv->sync_element_size = g_value_get_boolean (value); + priv->sync_actor_size = g_value_get_boolean (value); break; case PROP_REPEAT_X: priv->repeat_x = g_value_get_boolean (value); @@ -712,7 +712,7 @@ clutter_texture_get_property (GObject *object, g_value_set_int (value, priv->pixel_format); break; case PROP_SYNC_SIZE: - g_value_set_boolean (value, priv->sync_element_size); + g_value_set_boolean (value, priv->sync_actor_size); break; case PROP_REPEAT_X: g_value_set_boolean (value, priv->repeat_x); @@ -734,16 +734,16 @@ static void clutter_texture_class_init (ClutterTextureClass *klass) { GObjectClass *gobject_class; - ClutterElementClass *element_class; + ClutterActorClass *actor_class; gobject_class = (GObjectClass*)klass; - element_class = (ClutterElementClass*)klass; + actor_class = (ClutterActorClass*)klass; - element_class->paint = clutter_texture_paint; - element_class->realize = clutter_texture_realize; - element_class->unrealize = clutter_texture_unrealize; - element_class->show = clutter_texture_show; - element_class->hide = clutter_texture_hide; + actor_class->paint = clutter_texture_paint; + actor_class->realize = clutter_texture_realize; + actor_class->unrealize = clutter_texture_unrealize; + actor_class->show = clutter_texture_show; + actor_class->hide = clutter_texture_hide; gobject_class->dispose = clutter_texture_dispose; gobject_class->finalize = clutter_texture_finalize; @@ -769,8 +769,8 @@ clutter_texture_class_init (ClutterTextureClass *klass) g_object_class_install_property (gobject_class, PROP_SYNC_SIZE, g_param_spec_boolean ("sync-size", - "Sync size of element", - "Auto sync size of element to underlying pixbuf" + "Sync size of actor", + "Auto sync size of actor to underlying pixbuf" "dimentions", TRUE, G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); @@ -939,12 +939,12 @@ clutter_texture_set_pixbuf (ClutterTexture *texture, GdkPixbuf *pixbuf) */ if (texture_dirty) { - clutter_element_unrealize (CLUTTER_ELEMENT(texture)); + clutter_actor_unrealize (CLUTTER_ACTOR(texture)); } else { /* If texture realised sync things for change */ - if (CLUTTER_ELEMENT_IS_REALIZED(CLUTTER_ELEMENT(texture))) + if (CLUTTER_ACTOR_IS_REALIZED(CLUTTER_ACTOR(texture))) { priv->pixbuf = pixbuf; @@ -980,8 +980,8 @@ clutter_texture_set_pixbuf (ClutterTexture *texture, GdkPixbuf *pixbuf) priv->tiled = TRUE; clutter_threads_leave(); - if (priv->sync_element_size) - clutter_element_set_size (CLUTTER_ELEMENT(texture), + if (priv->sync_actor_size) + clutter_actor_set_size (CLUTTER_ACTOR(texture), priv->width, priv->height); @@ -996,9 +996,9 @@ clutter_texture_set_pixbuf (ClutterTexture *texture, GdkPixbuf *pixbuf) g_signal_emit (texture, texture_signals[SIGNAL_PIXBUF_CHANGE], 0); - /* If resized element may need resizing but paint() will do this */ - if (CLUTTER_ELEMENT_IS_MAPPED (CLUTTER_ELEMENT(texture))) - clutter_element_queue_redraw (CLUTTER_ELEMENT(texture)); + /* If resized actor may need resizing but paint() will do this */ + if (CLUTTER_ACTOR_IS_MAPPED (CLUTTER_ACTOR(texture))) + clutter_actor_queue_redraw (CLUTTER_ACTOR(texture)); } /** @@ -1009,14 +1009,14 @@ clutter_texture_set_pixbuf (ClutterTexture *texture, GdkPixbuf *pixbuf) * * Return value: A newly created #ClutterTexture object. **/ -ClutterElement* +ClutterActor* clutter_texture_new_from_pixbuf (GdkPixbuf *pixbuf) { ClutterTexture *texture; texture = g_object_new (CLUTTER_TYPE_TEXTURE, "pixbuf", pixbuf, NULL); - return CLUTTER_ELEMENT(texture); + return CLUTTER_ACTOR(texture); } /** @@ -1026,14 +1026,14 @@ clutter_texture_new_from_pixbuf (GdkPixbuf *pixbuf) * * Return value: A newly created #ClutterTexture object. **/ -ClutterElement* +ClutterActor* clutter_texture_new (void) { ClutterTexture *texture; texture = g_object_new (CLUTTER_TYPE_TEXTURE, NULL); - return CLUTTER_ELEMENT(texture); + return CLUTTER_ACTOR(texture); } /** diff --git a/clutter/clutter-texture.h b/clutter/clutter-texture.h index 0ab89f50c..679f04b2b 100644 --- a/clutter/clutter-texture.h +++ b/clutter/clutter-texture.h @@ -28,7 +28,7 @@ #include #include -#include +#include G_BEGIN_DECLS @@ -60,14 +60,14 @@ typedef struct _ClutterTextureClass ClutterTextureClass; struct _ClutterTexture { - ClutterElement parent; + ClutterActor parent; ClutterTexturePrivate *priv; }; struct _ClutterTextureClass { - ClutterElementClass parent_class; + ClutterActorClass parent_class; void (*size_change) (ClutterTexture *texture, gint width, gint height); void (*pixbuf_change) (ClutterTexture *texture ); @@ -75,10 +75,10 @@ struct _ClutterTextureClass GType clutter_texture_get_type (void); -ClutterElement* +ClutterActor* clutter_texture_new_from_pixbuf (GdkPixbuf *pixbuf); -ClutterElement* +ClutterActor* clutter_texture_new (void); void @@ -92,7 +92,7 @@ clutter_texture_get_base_size (ClutterTexture *texture, gint *width, gint *height); -/* Below mainly for subclassed texture based elements */ +/* Below mainly for subclassed texture based actors */ void clutter_texture_bind_tile (ClutterTexture *texture, gint index); diff --git a/clutter/clutter-video-texture.c b/clutter/clutter-video-texture.c index f6575eb8b..f86aeb0e0 100644 --- a/clutter/clutter-video-texture.c +++ b/clutter/clutter-video-texture.c @@ -462,10 +462,10 @@ static void clutter_video_texture_class_init (ClutterVideoTextureClass *klass) { GObjectClass *object_class; - ClutterElementClass *element_class; + ClutterActorClass *actor_class; object_class = (GObjectClass*)klass; - element_class = (ClutterElementClass*)klass; + actor_class = (ClutterActorClass*)klass; object_class->dispose = clutter_video_texture_dispose; object_class->finalize = clutter_video_texture_finalize; @@ -565,7 +565,7 @@ bus_message_duration_cb (GstBus *bus, } static void -bus_message_element_cb (GstBus *bus, +bus_message_actor_cb (GstBus *bus, GstMessage *message, ClutterVideoTexture *video_texture) { @@ -692,7 +692,7 @@ lay_pipeline (ClutterVideoTexture *video_texture) { ClutterVideoTexturePrivate *priv; GstElement *audio_sink = NULL; - GstElement *video_sink, *video_bin, *video_capsfilter; + GstElement *video_sink, *video_bin, *video_capsfilter; GstCaps *video_filtercaps; GstPad *video_ghost_pad; @@ -702,7 +702,7 @@ lay_pipeline (ClutterVideoTexture *video_texture) if (!priv->playbin) { - g_warning ("Unable to create playbin GST element."); + g_warning ("Unable to create playbin GST actor."); return FALSE; } @@ -725,7 +725,7 @@ lay_pipeline (ClutterVideoTexture *video_texture) if (video_sink == NULL) { - g_warning ("Could not create element 'fakesink' for video playback"); + g_warning ("Could not create actor 'fakesink' for video playback"); priv->playbin = NULL; return FALSE; } @@ -832,8 +832,8 @@ clutter_video_texture_init (ClutterVideoTexture *video_texture) 0); g_signal_connect_object (bus, - "message::element", - G_CALLBACK (bus_message_element_cb), + "message::actor", + G_CALLBACK (bus_message_actor_cb), video_texture, 0); @@ -848,7 +848,7 @@ clutter_video_texture_init (ClutterVideoTexture *video_texture) return; } -ClutterElement* +ClutterActor* clutter_video_texture_new (void) { ClutterVideoTexture *video_texture; @@ -858,6 +858,6 @@ clutter_video_texture_new (void) "pixel-format", GL_RGB, NULL); - return CLUTTER_ELEMENT(video_texture); + return CLUTTER_ACTOR(video_texture); } diff --git a/clutter/clutter-video-texture.h b/clutter/clutter-video-texture.h index 29cbd706c..0547d2385 100644 --- a/clutter/clutter-video-texture.h +++ b/clutter/clutter-video-texture.h @@ -27,7 +27,7 @@ #define _HAVE_CLUTTER_VIDEO_TEXTURE_H #include -#include +#include #include #include #include @@ -90,7 +90,7 @@ struct _ClutterVideoTextureClass GType clutter_video_texture_get_type (void); -ClutterElement* +ClutterActor* clutter_video_texture_new (void); G_END_DECLS diff --git a/clutter/clutter.h b/clutter/clutter.h index 51103213f..28753f1cf 100644 --- a/clutter/clutter.h +++ b/clutter/clutter.h @@ -9,7 +9,7 @@ #include "clutter-event.h" #include "clutter-timeline.h" #include "clutter-stage.h" -#include "clutter-element.h" +#include "clutter-actor.h" #include "clutter-rectangle.h" #include "clutter-group.h" #include "clutter-texture.h" diff --git a/doc/reference/ChangeLog b/doc/reference/ChangeLog index 10e32858c..ef53bc168 100644 --- a/doc/reference/ChangeLog +++ b/doc/reference/ChangeLog @@ -1,3 +1,16 @@ +2006-06-13 Matthew Allum + + * ChangeLog: + * clutter-0.0-sections.txt: + * clutter.types: + * tmpl/clutter-0.0-unused.sgml: + * tmpl/clutter-enum-types.sgml: + * tmpl/clutter-group.sgml: + * tmpl/clutter-main.sgml: + * tmpl/clutter-stage.sgml: + * tmpl/clutter-video-texture.sgml: + rename element -> actor + 2006-05-26 Emmanuele Bassi A clutter-0.0-sections.txt diff --git a/doc/reference/clutter-0.0-sections.txt b/doc/reference/clutter-0.0-sections.txt index 03839603a..3999f0114 100644 --- a/doc/reference/clutter-0.0-sections.txt +++ b/doc/reference/clutter-0.0-sections.txt @@ -24,66 +24,66 @@ CLUTTER_LABEL_GET_CLASS
-clutter-element +clutter-actor CLUTTER_TYPE_GEOMETRY -CLUTTER_TYPE_ELEMENT_BOX -CLUTTER_ELEMENT_SET_FLAGS -CLUTTER_ELEMENT_UNSET_FLAGS -CLUTTER_ELEMENT_IS_MAPPED -CLUTTER_ELEMENT_IS_REALIZED -CLUTTER_ELEMENT_IS_VISIBLE -ClutterElementBox -ClutterElementPrivate +CLUTTER_TYPE_ACTOR_BOX +CLUTTER_ACTOR_SET_FLAGS +CLUTTER_ACTOR_UNSET_FLAGS +CLUTTER_ACTOR_IS_MAPPED +CLUTTER_ACTOR_IS_REALIZED +CLUTTER_ACTOR_IS_VISIBLE +ClutterActorBox +ClutterActorPrivate ClutterGeometry ClutterCallback -ClutterElementTransform -ClutterElementFlags -clutter_element_box_get_type -ClutterElement -ClutterElement -clutter_element_get_type -clutter_element_show -clutter_element_hide -clutter_element_realize -clutter_element_unrealize -clutter_element_paint -clutter_element_queue_redraw -clutter_element_request_coords -clutter_element_allocate_coords -clutter_element_set_geometry -clutter_element_get_geometry -clutter_element_get_coords -clutter_element_set_position -clutter_element_set_size -clutter_element_get_abs_position -clutter_element_get_width -clutter_element_get_height -clutter_element_get_x -clutter_element_get_y -clutter_element_rotate_z -clutter_element_rotate_x -clutter_element_rotate_y -clutter_element_set_opacity -clutter_element_get_opacity -clutter_element_set_name -clutter_element_get_name -clutter_element_get_id -clutter_element_set_clip -clutter_element_remove_clip -clutter_element_set_parent -clutter_element_get_parent -clutter_element_raise -clutter_element_lower -clutter_element_raise_top -clutter_element_lower_bottom +ClutterActorTransform +ClutterActorFlags +clutter_actor_box_get_type +ClutterActor +ClutterActor +clutter_actor_get_type +clutter_actor_show +clutter_actor_hide +clutter_actor_realize +clutter_actor_unrealize +clutter_actor_paint +clutter_actor_queue_redraw +clutter_actor_request_coords +clutter_actor_allocate_coords +clutter_actor_set_geometry +clutter_actor_get_geometry +clutter_actor_get_coords +clutter_actor_set_position +clutter_actor_set_size +clutter_actor_get_abs_position +clutter_actor_get_width +clutter_actor_get_height +clutter_actor_get_x +clutter_actor_get_y +clutter_actor_rotate_z +clutter_actor_rotate_x +clutter_actor_rotate_y +clutter_actor_set_opacity +clutter_actor_get_opacity +clutter_actor_set_name +clutter_actor_get_name +clutter_actor_get_id +clutter_actor_set_clip +clutter_actor_remove_clip +clutter_actor_set_parent +clutter_actor_get_parent +clutter_actor_raise +clutter_actor_lower +clutter_actor_raise_top +clutter_actor_lower_bottom -CLUTTER_ELEMENT -CLUTTER_IS_ELEMENT -CLUTTER_TYPE_ELEMENT +CLUTTER_ACTOR +CLUTTER_IS_ACTOR +CLUTTER_TYPE_ACTOR clutter_geometry_get_type -CLUTTER_ELEMENT_CLASS -CLUTTER_IS_ELEMENT_CLASS -CLUTTER_ELEMENT_GET_CLASS +CLUTTER_ACTOR_CLASS +CLUTTER_IS_ACTOR_CLASS +CLUTTER_ACTOR_GET_CLASS
@@ -165,7 +165,7 @@ ClutterStage clutter_stage_get_xwindow clutter_stage_set_color clutter_stage_get_color -clutter_stage_get_element_at_pos +clutter_stage_get_actor_at_pos CLUTTER_STAGE CLUTTER_IS_STAGE @@ -1676,10 +1676,10 @@ clutter_marshal_VOID__INT_INT clutter-enum-types CLUTTER_TYPE_EVENT_TYPE clutter_event_type_get_type -CLUTTER_TYPE_ELEMENT_TRANSFORM -clutter_element_transform_get_type -CLUTTER_TYPE_ELEMENT_FLAGS -clutter_element_flags_get_type +CLUTTER_TYPE_ACTOR_TRANSFORM +clutter_actor_transform_get_type +CLUTTER_TYPE_ACTOR_FLAGS +clutter_actor_flags_get_type CLUTTER_TYPE_VIDEO_TEXTURE_ERROR clutter_video_texture_error_get_type CLUTTER_TYPE_VIDEO_TEXTURE_ASPECT_RATIO diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types index 44a606c27..d9a8c3427 100644 --- a/doc/reference/clutter.types +++ b/doc/reference/clutter.types @@ -1,6 +1,6 @@ #include -clutter_element_get_type +clutter_actor_get_type clutter_group_get_type clutter_stage_get_type clutter_rectangle_get_type diff --git a/doc/reference/tmpl/clutter-0.0-unused.sgml b/doc/reference/tmpl/clutter-0.0-unused.sgml index 3caf6a8e7..8d1c0c557 100644 --- a/doc/reference/tmpl/clutter-0.0-unused.sgml +++ b/doc/reference/tmpl/clutter-0.0-unused.sgml @@ -1,3 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + +ClutterElement + + + + + + + +@e: + + + + + + +@e: + + + + + + +@e: + + + + + + +@e: +@f: + + + + + + +@e: +@f: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@parent: +@flags: + + + + + + +@x1: +@y1: +@x2: +@y2: + + + + + + +@CLUTTER_ELEMENT_MAPPED: +@CLUTTER_ELEMENT_REALIZED: + + + + + + + + + + + + +@CLUTTER_ELEMENT_MIRROR_X: +@CLUTTER_ELEMENT_MIRROR_Y: + + + + + + +@CLUTTER_VIDEO_TEXTURE_AUTO: +@CLUTTER_VIDEO_TEXTURE_SQUARE: +@CLUTTER_VIDEO_TEXTURE_FOURBYTHREE: +@CLUTTER_VIDEO_TEXTURE_ANAMORPHIC: +@CLUTTER_VIDEO_TEXTURE_DVB: + + + + + + +@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_PLUGIN: +@CLUTTER_VIDEO_TEXTURE_ERROR_NO_PLUGIN_FOR_FILE: +@CLUTTER_VIDEO_TEXTURE_ERROR_VIDEO_PLUGIN: +@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_BUSY: +@CLUTTER_VIDEO_TEXTURE_ERROR_BROKEN_FILE: +@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_GENERIC: +@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_PERMISSION: +@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_ENCRYPTED: +@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_NOT_FOUND: +@CLUTTER_VIDEO_TEXTURE_ERROR_DVD_ENCRYPTED: +@CLUTTER_VIDEO_TEXTURE_ERROR_INVALID_DEVICE: +@CLUTTER_VIDEO_TEXTURE_ERROR_UNKNOWN_HOST: +@CLUTTER_VIDEO_TEXTURE_ERROR_NETWORK_UNREACHABLE: +@CLUTTER_VIDEO_TEXTURE_ERROR_CONNECTION_REFUSED: +@CLUTTER_VIDEO_TEXTURE_ERROR_UNVALID_LOCATION: +@CLUTTER_VIDEO_TEXTURE_ERROR_GENERIC: +@CLUTTER_VIDEO_TEXTURE_ERROR_CODEC_NOT_HANDLED: +@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_ONLY: +@CLUTTER_VIDEO_TEXTURE_ERROR_CANNOT_CAPTURE: +@CLUTTER_VIDEO_TEXTURE_ERROR_READ_ERROR: +@CLUTTER_VIDEO_TEXTURE_ERROR_PLUGIN_LOAD: +@CLUTTER_VIDEO_TEXTURE_ERROR_STILL_IMAGE: +@CLUTTER_VIDEO_TEXTURE_ERROR_EMPTY_FILE: + + + + + + +@CLUTTER_INFO_TITLE: +@CLUTTER_INFO_ARTIST: +@CLUTTER_INFO_YEAR: +@CLUTTER_INFO_ALBUM: +@CLUTTER_INFO_DURATION: +@CLUTTER_INFO_TRACK_NUMBER: +@CLUTTER_INFO_HAS_VIDEO: +@CLUTTER_INFO_DIMENSION_X: +@CLUTTER_INFO_DIMENSION_Y: +@CLUTTER_INFO_VIDEO_BITRATE: +@CLUTTER_INFO_VIDEO_CODEC: +@CLUTTER_INFO_FPS: +@CLUTTER_INFO_HAS_AUDIO: +@CLUTTER_INFO_AUDIO_BITRATE: +@CLUTTER_INFO_AUDIO_CODEC: + + + + + + +@self: +@box: + + + + + + +@Returns: + + + + + + +@Returns: + + + + + + +@self: +@x: +@y: + + + + + + +@self: +@x1: +@y1: +@x2: +@y2: + + + + + + +@self: +@geom: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: +@Returns: + + + + + + +@self: + + + + + + +@self: +@above: + + + + + + +@self: + + + + + + +@self: + + + + + + +@self: + + + + + + +@self: +@below: + + + + + + +@self: + + + + + + +@self: + + + + + + +@self: + + + + + + +@self: +@box: + + + + + + +@self: +@angle: +@y: +@z: + + + + + + +@self: +@angle: +@x: +@z: + + + + + + +@self: +@angle: +@x: +@y: + + + + + + +@self: +@xoff: +@yoff: +@width: +@height: + + + + + + +@self: +@geom: + + + + + + +@self: +@id: + + + + + + +@self: +@opacity: + + + + + + +@self: +@parent: + + + + + + +@self: +@x: +@y: + + + + + + +@self: +@width: +@height: + + + + + + +@self: + + + + + + +@Returns: + + + + + + +@self: + @@ -12,3 +522,192 @@ @Returns: + + + + + +@stage: +@x: +@y: +@Returns: + + + + + + +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@Returns: + + + + + + +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@type: +@value: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@video_texture: +@Returns: + + + + + + +@Returns: + + + + + + +@video_texture: +@mrl: +@subtitle_uri: +@error: +@Returns: + + + + + + +@video_texture: + + + + + + +@video_texture: +@error: +@Returns: + + + + + + +@video_texture: +@position: +@error: +@Returns: + + + + + + +@video_texture: +@time: +@gerror: +@Returns: + + + + + + +@video_texture: +@ratio: + + + + + + +@video_texture: +@volume: + + + + + + +@video_texture: + diff --git a/doc/reference/tmpl/clutter-enum-types.sgml b/doc/reference/tmpl/clutter-enum-types.sgml index 649e1065d..d53709e14 100644 --- a/doc/reference/tmpl/clutter-enum-types.sgml +++ b/doc/reference/tmpl/clutter-enum-types.sgml @@ -32,14 +32,14 @@ clutter-enum-types @Returns: - + - + @@ -47,59 +47,14 @@ clutter-enum-types @Returns: - + - - - - - -@Returns: - - - - - - - - - - - - - - -@Returns: - - - - - - - - - - - - - - -@Returns: - - - - - - - - - - + diff --git a/doc/reference/tmpl/clutter-group.sgml b/doc/reference/tmpl/clutter-group.sgml index eafd55ccb..dedbe33d8 100644 --- a/doc/reference/tmpl/clutter-group.sgml +++ b/doc/reference/tmpl/clutter-group.sgml @@ -63,7 +63,7 @@ ClutterGroup @group: -@element: +@actor: @@ -72,7 +72,7 @@ ClutterGroup @group: -@first_element: +@first_actor: @args: @@ -82,7 +82,7 @@ ClutterGroup @group: -@first_element: +@first_actor: @Varargs: @@ -92,7 +92,7 @@ ClutterGroup @group: -@element: +@actor: @@ -127,7 +127,7 @@ ClutterGroup @self: -@element: +@actor: @sibling: @@ -137,7 +137,7 @@ ClutterGroup @self: -@element: +@actor: @sibling: diff --git a/doc/reference/tmpl/clutter-main.sgml b/doc/reference/tmpl/clutter-main.sgml index b9dbae34d..d2d9b9f33 100644 --- a/doc/reference/tmpl/clutter-main.sgml +++ b/doc/reference/tmpl/clutter-main.sgml @@ -42,6 +42,8 @@ clutter-main @a...: @a...: @a...: +@a...: +@a...: @a...: diff --git a/doc/reference/tmpl/clutter-stage.sgml b/doc/reference/tmpl/clutter-stage.sgml index 6beacb1b1..01b3b625c 100644 --- a/doc/reference/tmpl/clutter-stage.sgml +++ b/doc/reference/tmpl/clutter-stage.sgml @@ -71,7 +71,7 @@ ClutterStage @color: - + diff --git a/doc/reference/tmpl/clutter-video-texture.sgml b/doc/reference/tmpl/clutter-video-texture.sgml index 1053bee46..1dd72ff9b 100644 --- a/doc/reference/tmpl/clutter-video-texture.sgml +++ b/doc/reference/tmpl/clutter-video-texture.sgml @@ -23,61 +23,6 @@ ClutterVideoTexture - - - - - - - - - - - - -@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_PLUGIN: -@CLUTTER_VIDEO_TEXTURE_ERROR_NO_PLUGIN_FOR_FILE: -@CLUTTER_VIDEO_TEXTURE_ERROR_VIDEO_PLUGIN: -@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_BUSY: -@CLUTTER_VIDEO_TEXTURE_ERROR_BROKEN_FILE: -@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_GENERIC: -@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_PERMISSION: -@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_ENCRYPTED: -@CLUTTER_VIDEO_TEXTURE_ERROR_FILE_NOT_FOUND: -@CLUTTER_VIDEO_TEXTURE_ERROR_DVD_ENCRYPTED: -@CLUTTER_VIDEO_TEXTURE_ERROR_INVALID_DEVICE: -@CLUTTER_VIDEO_TEXTURE_ERROR_UNKNOWN_HOST: -@CLUTTER_VIDEO_TEXTURE_ERROR_NETWORK_UNREACHABLE: -@CLUTTER_VIDEO_TEXTURE_ERROR_CONNECTION_REFUSED: -@CLUTTER_VIDEO_TEXTURE_ERROR_UNVALID_LOCATION: -@CLUTTER_VIDEO_TEXTURE_ERROR_GENERIC: -@CLUTTER_VIDEO_TEXTURE_ERROR_CODEC_NOT_HANDLED: -@CLUTTER_VIDEO_TEXTURE_ERROR_AUDIO_ONLY: -@CLUTTER_VIDEO_TEXTURE_ERROR_CANNOT_CAPTURE: -@CLUTTER_VIDEO_TEXTURE_ERROR_READ_ERROR: -@CLUTTER_VIDEO_TEXTURE_ERROR_PLUGIN_LOAD: -@CLUTTER_VIDEO_TEXTURE_ERROR_STILL_IMAGE: -@CLUTTER_VIDEO_TEXTURE_ERROR_EMPTY_FILE: - - - - - - -@Returns: - - - - - - - -@CLUTTER_VIDEO_TEXTURE_AUTO: -@CLUTTER_VIDEO_TEXTURE_SQUARE: -@CLUTTER_VIDEO_TEXTURE_FOURBYTHREE: -@CLUTTER_VIDEO_TEXTURE_ANAMORPHIC: -@CLUTTER_VIDEO_TEXTURE_DVB: - @@ -94,193 +39,3 @@ ClutterVideoTexture @Returns: - - - - - -@video_texture: -@mrl: -@subtitle_uri: -@error: -@Returns: - - - - - - - -@video_texture: -@error: -@Returns: - - - - - - - -@video_texture: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@time: -@gerror: -@Returns: - - - - - - - -@video_texture: -@position: -@error: -@Returns: - - - - - - - -@video_texture: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@volume: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@video_texture: -@ratio: - - - - - - - -@video_texture: -@Returns: - - - - - - - -@CLUTTER_INFO_TITLE: -@CLUTTER_INFO_ARTIST: -@CLUTTER_INFO_YEAR: -@CLUTTER_INFO_ALBUM: -@CLUTTER_INFO_DURATION: -@CLUTTER_INFO_TRACK_NUMBER: -@CLUTTER_INFO_HAS_VIDEO: -@CLUTTER_INFO_DIMENSION_X: -@CLUTTER_INFO_DIMENSION_Y: -@CLUTTER_INFO_VIDEO_BITRATE: -@CLUTTER_INFO_VIDEO_CODEC: -@CLUTTER_INFO_FPS: -@CLUTTER_INFO_HAS_AUDIO: -@CLUTTER_INFO_AUDIO_BITRATE: -@CLUTTER_INFO_AUDIO_CODEC: - - - - - - -@video_texture: -@type: -@value: - - diff --git a/examples/super-oh.c b/examples/super-oh.c index c89618926..daf2d38fb 100644 --- a/examples/super-oh.c +++ b/examples/super-oh.c @@ -9,7 +9,7 @@ typedef struct SuperOH { - ClutterElement *hand[NHANDS], *bgtex; + ClutterActor *hand[NHANDS], *bgtex; ClutterGroup *group; GdkPixbuf *bgpixb; @@ -26,17 +26,17 @@ input_cb (ClutterStage *stage, if (event->type == CLUTTER_BUTTON_PRESS) { ClutterButtonEvent *bev = (ClutterButtonEvent *) event; - ClutterElement *e; + ClutterActor *e; g_print ("*** button press event (button:%d) ***\n", bev->button); - e = clutter_stage_get_element_at_pos (stage, + e = clutter_stage_get_actor_at_pos (stage, clutter_button_event_x (event), clutter_button_event_y (event)); if (e) - clutter_element_hide(e); + clutter_actor_hide(e); } else if (event->type == CLUTTER_KEY_PRESS) { @@ -58,7 +58,7 @@ frame_cb (ClutterTimeline *timeline, gpointer data) { SuperOH *oh = (SuperOH *)data; - ClutterElement *stage = clutter_stage_get_default (); + ClutterActor *stage = clutter_stage_get_default (); gint i; #if TRAILS @@ -72,21 +72,21 @@ frame_cb (ClutterTimeline *timeline, #endif /* Rotate everything clockwise about stage center*/ - clutter_element_rotate_z (CLUTTER_ELEMENT(oh->group), + clutter_actor_rotate_z (CLUTTER_ACTOR(oh->group), frame_num, WINWIDTH/2, WINHEIGHT/2); for (i = 0; i < NHANDS; i++) { /* rotate each hand around there centers */ - clutter_element_rotate_z (oh->hand[i], + clutter_actor_rotate_z (oh->hand[i], - 6.0 * frame_num, - clutter_element_get_width (oh->hand[i])/2, - clutter_element_get_height (oh->hand[i])/2); + clutter_actor_get_width (oh->hand[i])/2, + clutter_actor_get_height (oh->hand[i])/2); } /* - clutter_element_rotate_x (CLUTTER_ELEMENT(oh->group), + clutter_actor_rotate_x (CLUTTER_ACTOR(oh->group), 75.0, WINHEIGHT/2, 0); */ @@ -96,7 +96,7 @@ int main (int argc, char *argv[]) { ClutterTimeline *timeline; - ClutterElement *stage; + ClutterActor *stage; ClutterColor stage_color = { 0x61, 0x64, 0x8c, 0xff }; GdkPixbuf *pixbuf; SuperOH *oh; @@ -112,7 +112,7 @@ main (int argc, char *argv[]) g_error("pixbuf load failed"); /* Set our stage (window) size */ - clutter_element_set_size (stage, WINWIDTH, WINHEIGHT); + clutter_actor_set_size (stage, WINWIDTH, WINHEIGHT); /* and its background color */ @@ -123,12 +123,12 @@ main (int argc, char *argv[]) #if TRAILS oh->bgtex = clutter_texture_new(); - clutter_element_set_size (oh->bgtex, WINWIDTH, WINHEIGHT); - clutter_element_set_opacity (oh->bgtex, 0x99); + clutter_actor_set_size (oh->bgtex, WINWIDTH, WINHEIGHT); + clutter_actor_set_opacity (oh->bgtex, 0x99); clutter_group_add (CLUTTER_GROUP (stage), oh->bgtex); #endif - /* create a new group to hold multiple elements in a group */ + /* create a new group to hold multiple actors in a group */ oh->group = clutter_group_new(); for (i = 0; i < NHANDS; i++) @@ -142,20 +142,20 @@ main (int argc, char *argv[]) oh->hand[i] = clutter_clone_texture_new (CLUTTER_TEXTURE(oh->hand[0])); /* Place around a circle */ - w = clutter_element_get_width (oh->hand[0]); - h = clutter_element_get_height (oh->hand[0]); + w = clutter_actor_get_width (oh->hand[0]); + h = clutter_actor_get_height (oh->hand[0]); x = WINWIDTH/2 + RADIUS * cos (i * M_PI / (NHANDS/2)) - w/2; y = WINHEIGHT/2 + RADIUS * sin (i * M_PI / (NHANDS/2)) - h/2; - clutter_element_set_position (oh->hand[i], x, y); + clutter_actor_set_position (oh->hand[i], x, y); /* Add to our group group */ clutter_group_add (oh->group, oh->hand[i]); } /* Add the group to the stage */ - clutter_group_add (CLUTTER_GROUP (stage), CLUTTER_ELEMENT(oh->group)); + clutter_group_add (CLUTTER_GROUP (stage), CLUTTER_ACTOR(oh->group)); /* Show everying ( and map window ) */ clutter_group_show_all (oh->group); diff --git a/examples/test-text.c b/examples/test-text.c index 070238a2e..af04d528f 100644 --- a/examples/test-text.c +++ b/examples/test-text.c @@ -5,10 +5,10 @@ frame_cb (ClutterTimeline *timeline, gint frame_num, gpointer data) { - ClutterElement *label = (ClutterElement*)data; + ClutterActor *label = (ClutterActor*)data; - clutter_element_set_depth(label, -400 + (frame_num * 40)); - clutter_element_set_opacity (label, 255 - frame_num ); + clutter_actor_set_depth(label, -400 + (frame_num * 40)); + clutter_actor_set_opacity (label, 255 - frame_num ); } @@ -16,8 +16,8 @@ int main (int argc, char *argv[]) { ClutterTimeline *timeline; - ClutterElement *label; - ClutterElement *stage; + ClutterActor *label; + ClutterActor *stage; gchar *text; gsize size; ClutterColor stage_color = { 0x00, 0x00, 0x00, 0xff }; @@ -30,7 +30,7 @@ main (int argc, char *argv[]) if (!g_file_get_contents ("test-text.c", &text, &size, NULL)) g_error("g_file_get_contents() of test-text.c failed"); - clutter_element_set_size (stage, 800, 600); + clutter_actor_set_size (stage, 800, 600); clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color); label = clutter_label_new_with_text ("Mono 8", text); diff --git a/examples/test-video.c b/examples/test-video.c index a6631ef2b..efa069017 100644 --- a/examples/test-video.c +++ b/examples/test-video.c @@ -1,6 +1,6 @@ #include -ClutterElement *rect; /* um... */ +ClutterActor *rect; /* um... */ void input_cb (ClutterStage *stage, @@ -31,13 +31,13 @@ size_change (ClutterTexture *texture, gint height, gpointer user_data) { - ClutterElement *stage; + ClutterActor *stage; ClutterGeometry stage_geom; gint vid_width, vid_height, new_y, new_height; stage = clutter_stage_get_default (); - clutter_element_get_geometry (stage, &stage_geom); + clutter_actor_get_geometry (stage, &stage_geom); clutter_texture_get_base_size (texture, &vid_width, &vid_height); @@ -48,13 +48,13 @@ size_change (ClutterTexture *texture, new_height = ( vid_height * stage_geom.width ) / vid_width; new_y = (stage_geom.height - new_height) / 2; - clutter_element_set_position (CLUTTER_ELEMENT (texture), 0, new_y); + clutter_actor_set_position (CLUTTER_ACTOR (texture), 0, new_y); - clutter_element_set_size (CLUTTER_ELEMENT (texture), + clutter_actor_set_size (CLUTTER_ACTOR (texture), stage_geom.width, new_height); - // clutter_element_set_opacity (CLUTTER_ELEMENT (texture), 50); + // clutter_actor_set_opacity (CLUTTER_ACTOR (texture), 50); printf("*** Pos set to +%i+%i , %ix%i ***\n", 0, new_y, stage_geom.width, new_height); @@ -79,14 +79,14 @@ tick (GObject *object, clutter_label_set_text (label, buf); clutter_texture_get_base_size (CLUTTER_TEXTURE(label), &w, &h); - clutter_element_set_size(rect, w+10, h+10); + clutter_actor_set_size(rect, w+10, h+10); } int main (int argc, char *argv[]) { - ClutterElement *label, *vtexture, *ctexture; - ClutterElement *stage; + ClutterActor *label, *vtexture, *ctexture; + ClutterActor *stage; ClutterColor rect_color = { 0xde, 0xde, 0xdf, 0xaa }; ClutterColor stage_color = { 0x00, 0x00, 0x00, 0x00 }; GError *err = NULL; @@ -114,17 +114,17 @@ main (int argc, char *argv[]) label = clutter_label_new_with_text ("Sans Bold 24", "Loading..."); - clutter_element_set_position(label, 10, 10); + clutter_actor_set_position(label, 10, 10); rect = clutter_rectangle_new_with_color (&rect_color); - clutter_element_set_size(rect, 0, 0); - clutter_element_set_position(rect, 5, 5); + clutter_actor_set_size(rect, 0, 0); + clutter_actor_set_position(rect, 5, 5); ctexture = clutter_clone_texture_new (CLUTTER_TEXTURE(vtexture)); - clutter_element_set_opacity (CLUTTER_ELEMENT (ctexture), 100); + clutter_actor_set_opacity (CLUTTER_ACTOR (ctexture), 100); - clutter_element_set_size (ctexture, 640, 50); - clutter_element_set_position (ctexture, 0, 430); + clutter_actor_set_size (ctexture, 640, 50); + clutter_actor_set_position (ctexture, 0, 430); clutter_group_add_many (CLUTTER_GROUP (stage), vtexture, rect, label, ctexture, NULL); diff --git a/examples/test.c b/examples/test.c index 53bd7a0b9..c77cacb91 100644 --- a/examples/test.c +++ b/examples/test.c @@ -5,13 +5,13 @@ guint8 opacity = 255; gboolean timeout_cb (gpointer data) { - ClutterElement *element; + ClutterActor *actor; - element = CLUTTER_ELEMENT(data); + actor = CLUTTER_ACTOR(data); if (opacity > 0) { - clutter_element_set_opacity (element, opacity); + clutter_actor_set_opacity (actor, opacity); opacity -= 2; } else opacity = 0xff; @@ -32,7 +32,7 @@ timeout_text_cb (gpointer data) if (opacity > 0) { clutter_label_set_text(label, buf); - clutter_element_set_opacity (CLUTTER_ELEMENT(label), opacity); + clutter_actor_set_opacity (CLUTTER_ACTOR(label), opacity); opacity -= 2; } else opacity = 0xff; @@ -57,19 +57,19 @@ frame_cb (ClutterTimeline *timeline, g_snprintf(buf, 32, "--> %i <--", frame_num); clutter_label_set_text (label, buf); - clutter_element_set_opacity (CLUTTER_ELEMENT(label), opacity); + clutter_actor_set_opacity (CLUTTER_ACTOR(label), opacity); - clutter_element_rotate_z (CLUTTER_ELEMENT(label), + clutter_actor_rotate_z (CLUTTER_ACTOR(label), frame_num, - clutter_element_get_width (CLUTTER_ELEMENT(label))/2, - clutter_element_get_height (CLUTTER_ELEMENT(label))/2); + clutter_actor_get_width (CLUTTER_ACTOR(label))/2, + clutter_actor_get_height (CLUTTER_ACTOR(label))/2); } int main (int argc, char *argv[]) { - ClutterElement *texture, *label; - ClutterElement *stage; + ClutterActor *texture, *label; + ClutterActor *stage; ClutterTimeline *timeline; GdkPixbuf *pixbuf; @@ -90,13 +90,13 @@ main (int argc, char *argv[]) printf("***********foo***********\n"); - clutter_element_set_opacity (CLUTTER_ELEMENT(label), 0x99); - clutter_element_set_position (CLUTTER_ELEMENT(label), 100, 200); + clutter_actor_set_opacity (CLUTTER_ACTOR(label), 0x99); + clutter_actor_set_position (CLUTTER_ACTOR(label), 100, 200); clutter_group_add (CLUTTER_GROUP (stage), texture); clutter_group_add (CLUTTER_GROUP (stage), label); - clutter_element_set_size (CLUTTER_ELEMENT (stage), 800, 600); + clutter_actor_set_size (CLUTTER_ACTOR (stage), 800, 600); clutter_group_show_all (CLUTTER_GROUP (stage)); diff --git a/examples/video-cube.c b/examples/video-cube.c index ab4fd857c..221e07310 100644 --- a/examples/video-cube.c +++ b/examples/video-cube.c @@ -106,13 +106,13 @@ G_DEFINE_TYPE (ClutterVideoTextureCube, clutter_video_texture_cube, CLUTTER_TYPE static void -clutter_video_texture_cube_paint (ClutterElement *self) +clutter_video_texture_cube_paint (ClutterActor *self) { if (clutter_texture_get_pixbuf (CLUTTER_TEXTURE(self)) == NULL) return; - if (!CLUTTER_ELEMENT_IS_REALIZED (CLUTTER_ELEMENT(self))) - clutter_element_realize (CLUTTER_ELEMENT(self)); + if (!CLUTTER_ACTOR_IS_REALIZED (CLUTTER_ACTOR(self))) + clutter_actor_realize (CLUTTER_ACTOR(self)); if (!clutter_texture_has_generated_tiles (CLUTTER_TEXTURE(self))) return; @@ -201,12 +201,12 @@ static void clutter_video_texture_cube_class_init (ClutterVideoTextureCubeClass *klass) { GObjectClass *gobject_class; - ClutterElementClass *element_class; + ClutterActorClass *actor_class; gobject_class = (GObjectClass*)klass; - element_class = (ClutterElementClass*)klass; + actor_class = (ClutterActorClass*)klass; - element_class->paint = clutter_video_texture_cube_paint; + actor_class->paint = clutter_video_texture_cube_paint; } static void @@ -215,10 +215,10 @@ clutter_video_texture_cube_init (ClutterVideoTextureCube *self) } -ClutterElement* +ClutterActor* clutter_video_texture_cube_new (GError **err) { - return CLUTTER_ELEMENT(g_object_new (CLUTTER_TYPE_VIDEO_TEXTURE_CUBE, + return CLUTTER_ACTOR(g_object_new (CLUTTER_TYPE_VIDEO_TEXTURE_CUBE, /* "tiled", FALSE, */ NULL)); } @@ -227,8 +227,8 @@ clutter_video_texture_cube_new (GError **err) int main (int argc, char *argv[]) { - ClutterElement *label, *texture, *vtexture; - ClutterElement *stage = clutter_stage_get_default (); + ClutterActor *label, *texture, *vtexture; + ClutterActor *stage = clutter_stage_get_default (); GdkPixbuf *pixbuf; GError *err = NULL; @@ -242,7 +242,7 @@ main (int argc, char *argv[]) if (!pixbuf) g_error("pixbuf load failed"); - clutter_element_set_size (stage, + clutter_actor_set_size (stage, WINWIDTH, WINHEIGHT); texture = clutter_texture_new_from_pixbuf (pixbuf); diff --git a/gtk/gtk-clutter-test.c b/gtk/gtk-clutter-test.c index d567f6c8f..c7119e6dd 100644 --- a/gtk/gtk-clutter-test.c +++ b/gtk/gtk-clutter-test.c @@ -12,7 +12,7 @@ typedef struct SuperOH { - ClutterElement *hand[NHANDS], *bgtex; + ClutterActor *hand[NHANDS], *bgtex; ClutterGroup *group; GdkPixbuf *bgpixb; @@ -29,17 +29,17 @@ input_cb (ClutterStage *stage, if (event->type == CLUTTER_BUTTON_PRESS) { ClutterButtonEvent *bev = (ClutterButtonEvent *) event; - ClutterElement *e; + ClutterActor *e; g_print ("*** button press event (button:%d) ***\n", bev->button); - e = clutter_stage_get_element_at_pos (stage, + e = clutter_stage_get_actor_at_pos (stage, clutter_button_event_x (event), clutter_button_event_y (event)); if (e) - clutter_element_hide(e); + clutter_actor_hide(e); } else if (event->type == CLUTTER_KEY_PRESS) { @@ -61,7 +61,7 @@ frame_cb (ClutterTimeline *timeline, gpointer data) { SuperOH *oh = (SuperOH *)data; - ClutterElement *stage = clutter_stage_get_default (); + ClutterActor *stage = clutter_stage_get_default (); gint i; #if TRAILS @@ -75,21 +75,21 @@ frame_cb (ClutterTimeline *timeline, #endif /* Rotate everything clockwise about stage center*/ - clutter_element_rotate_z (CLUTTER_ELEMENT(oh->group), + clutter_actor_rotate_z (CLUTTER_ACTOR(oh->group), frame_num, WINWIDTH/2, WINHEIGHT/2); for (i = 0; i < NHANDS; i++) { /* rotate each hand around there centers */ - clutter_element_rotate_z (oh->hand[i], + clutter_actor_rotate_z (oh->hand[i], - 6.0 * frame_num, - clutter_element_get_width (oh->hand[i])/2, - clutter_element_get_height (oh->hand[i])/2); + clutter_actor_get_width (oh->hand[i])/2, + clutter_actor_get_height (oh->hand[i])/2); } /* - clutter_element_rotate_x (CLUTTER_ELEMENT(oh->group), + clutter_actor_rotate_x (CLUTTER_ACTOR(oh->group), 75.0, WINHEIGHT/2, 0); */ @@ -99,7 +99,7 @@ int main (int argc, char *argv[]) { ClutterTimeline *timeline; - ClutterElement *stage; + ClutterActor *stage; ClutterColor stage_color = { 0x61, 0x64, 0x8c, 0xff }; GtkWidget *window, *plug, *clutter; GtkWidget *label, *button, *vbox; @@ -120,7 +120,7 @@ main (int argc, char *argv[]) stage = gtk_clutter_get_stage (GTK_CLUTTER (clutter)); /* Set our stage size */ - clutter_element_set_size (stage, WINWIDTH, WINHEIGHT); + clutter_actor_set_size (stage, WINWIDTH, WINHEIGHT); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", @@ -146,12 +146,12 @@ main (int argc, char *argv[]) #if TRAILS oh->bgtex = clutter_texture_new(); - clutter_element_set_size (oh->bgtex, WINWIDTH, WINHEIGHT); - clutter_element_set_opacity (oh->bgtex, 0x99); + clutter_actor_set_size (oh->bgtex, WINWIDTH, WINHEIGHT); + clutter_actor_set_opacity (oh->bgtex, 0x99); clutter_group_add (CLUTTER_GROUP (stage), oh->bgtex); #endif - /* create a new group to hold multiple elements in a group */ + /* create a new group to hold multiple actors in a group */ oh->group = clutter_group_new(); for (i = 0; i < NHANDS; i++) @@ -165,20 +165,20 @@ main (int argc, char *argv[]) oh->hand[i] = clutter_clone_texture_new (CLUTTER_TEXTURE(oh->hand[0])); /* Place around a circle */ - w = clutter_element_get_width (oh->hand[0]); - h = clutter_element_get_height (oh->hand[0]); + w = clutter_actor_get_width (oh->hand[0]); + h = clutter_actor_get_height (oh->hand[0]); x = WINWIDTH/2 + RADIUS * cos (i * M_PI / (NHANDS/2)) - w/2; y = WINHEIGHT/2 + RADIUS * sin (i * M_PI / (NHANDS/2)) - h/2; - clutter_element_set_position (oh->hand[i], x, y); + clutter_actor_set_position (oh->hand[i], x, y); /* Add to our group group */ clutter_group_add (oh->group, oh->hand[i]); } /* Add the group to the stage */ - clutter_group_add (CLUTTER_GROUP (stage), CLUTTER_ELEMENT(oh->group)); + clutter_group_add (CLUTTER_GROUP (stage), CLUTTER_ACTOR(oh->group)); /* Show everying ( and map window ) */ clutter_group_show_all (oh->group); diff --git a/gtk/gtk-clutter.c b/gtk/gtk-clutter.c index a691e5986..e901ffc68 100644 --- a/gtk/gtk-clutter.c +++ b/gtk/gtk-clutter.c @@ -36,7 +36,7 @@ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_CLUTTER, GtkClutterPrivate)) struct _GtkClutterPrivate { - ClutterElement *stage; + ClutterActor *stage; gboolean anchored; }; @@ -69,8 +69,8 @@ size_request (GtkWidget *widget, clutter = GTK_CLUTTER (widget); priv = GTK_CLUTTER_GET_PRIVATE (clutter); - req->width = clutter_element_get_width (priv->stage); - req->height = clutter_element_get_height (priv->stage); + req->width = clutter_actor_get_width (priv->stage); + req->height = clutter_actor_get_height (priv->stage); } static void @@ -121,7 +121,7 @@ gtk_clutter_init (GtkClutter *clutter) G_DEFINE_TYPE (GtkClutter, gtk_clutter, GTK_TYPE_SOCKET); -ClutterElement * +ClutterActor * gtk_clutter_get_stage (GtkClutter *clutter) { g_return_val_if_fail (GTK_IS_CLUTTER (clutter), NULL); diff --git a/gtk/gtk-clutter.h b/gtk/gtk-clutter.h index a6cf46d12..b60bf7ff9 100644 --- a/gtk/gtk-clutter.h +++ b/gtk/gtk-clutter.h @@ -28,7 +28,7 @@ #include -#include +#include G_BEGIN_DECLS @@ -73,7 +73,7 @@ struct _GtkClutterClass GType gtk_clutter_get_type (void); -ClutterElement *gtk_clutter_get_stage (GtkClutter *clutter); +ClutterActor *gtk_clutter_get_stage (GtkClutter *clutter); G_END_DECLS