gnomemm r1564 - in cluttermm/trunk: . clutter/src



Author: arminb
Date: Sun Jun 15 13:00:59 2008
New Revision: 1564
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1564&view=rev

Log:
2008-06-15  Armin Burgmeier  <armin openismus com>

	* clutter/src/clutter_others.defs: Added signals for ClutterContainer.
	* clutter/src/clutter_vfuncs.defs: Added vfuncs for ClutterContainer.

	* clutter/src/container.hg: Wrapped vfuncs and other missing methods.
	Did not yet wrap the ChildMeta/Child properties stuff which probably
	needs some more thought.

	* clutter/src/stage.hg:
	* clutter/src/stage.ccg: Wrapped new properties and methods, and
	ClutterPerspective.

	* clutter/src/timeline.hg:
	* clutter/src/timeline.ccg: Wrapped new signals, properties and methods.

	* clutter/src/clutter_signals.defs: Regenerated after clutter bug #967
	has been fixed (http://bugzilla.openedhand.com/show_bug.cgi?id=967).


Modified:
   cluttermm/trunk/ChangeLog
   cluttermm/trunk/clutter/src/clutter_others.defs
   cluttermm/trunk/clutter/src/clutter_signals.defs
   cluttermm/trunk/clutter/src/clutter_vfuncs.defs
   cluttermm/trunk/clutter/src/container.hg
   cluttermm/trunk/clutter/src/stage.ccg
   cluttermm/trunk/clutter/src/stage.hg
   cluttermm/trunk/clutter/src/timeline.ccg
   cluttermm/trunk/clutter/src/timeline.hg

Modified: cluttermm/trunk/clutter/src/clutter_others.defs
==============================================================================
--- cluttermm/trunk/clutter/src/clutter_others.defs	(original)
+++ cluttermm/trunk/clutter/src/clutter_others.defs	Sun Jun 15 13:00:59 2008
@@ -16,3 +16,33 @@
     '("GError*" "error")
   )
 )
+
+; ClutterContainer
+
+(define-signal actor-added
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+
+(define-signal actor-removed
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+
+(define-signal child-notify
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (when "first")
+  (parameters
+    '("ClutterActor*" "actor")
+    '("GParamSpec*" "pspec")
+  )
+)

Modified: cluttermm/trunk/clutter/src/clutter_signals.defs
==============================================================================
--- cluttermm/trunk/clutter/src/clutter_signals.defs	(original)
+++ cluttermm/trunk/clutter/src/clutter_signals.defs	Sun Jun 15 13:00:59 2008
@@ -3709,7 +3709,7 @@
   (when "last")
   (parameters
     '("const-gchar*" "p0")
-    '("guint" "p1")
+    '("gint" "p1")
   )
 )
 

Modified: cluttermm/trunk/clutter/src/clutter_vfuncs.defs
==============================================================================
--- cluttermm/trunk/clutter/src/clutter_vfuncs.defs	(original)
+++ cluttermm/trunk/clutter/src/clutter_vfuncs.defs	Sun Jun 15 13:00:59 2008
@@ -240,3 +240,76 @@
     '("ClutterActorBox*" "box")
   )
 )
+
+; ClutterContainer
+
+(define-vfunc add
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+
+(define-vfunc remove
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+
+(define-vfunc foreach
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterCallback" "callback")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-vfunc raise
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+    '("ClutterActor*" "sibling")
+  )
+)
+
+(define-vfunc lower
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+    '("ClutterActor*" "sibling")
+  )
+)
+
+(define-vfunc sort_depth_order
+  (of-object "ClutterContainer")
+  (return-type "void")
+)
+
+(define-vfunc create_child_meta
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+
+(define-vfunc destroy_child_meta
+  (of-object "ClutterContainer")
+  (return-type "void")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)
+(define-vfunc get_child_meta
+  (of-object "ClutterContainer")
+  (return-type "ClutterChildMeta*")
+  (parameters
+    '("ClutterActor*" "actor")
+  )
+)

Modified: cluttermm/trunk/clutter/src/container.hg
==============================================================================
--- cluttermm/trunk/clutter/src/container.hg	(original)
+++ cluttermm/trunk/clutter/src/container.hg	Sun Jun 15 13:00:59 2008
@@ -35,6 +35,11 @@
   _WRAP_METHOD(void add_actor(const Glib::RefPtr<Actor>& actor), clutter_container_add_actor)
   _WRAP_METHOD(void remove_actor(const Glib::RefPtr<Actor>& actor), clutter_container_remove_actor)
 
+#m4 _CONVERSION(`GList*', `Glib::ListHandle<Glib::RefPtr<Actor> >', `$2(($3), Glib::OWNERSHIP_SHALLOW)')
+#m4 _CONVERSION(`GList*', `Glib::ListHandle<Glib::RefPtr<const Actor> >', `$2(($3), Glib::OWNERSHIP_SHALLOW)')
+  _WRAP_METHOD(Glib::ListHandle<Glib::RefPtr<Actor> > get_children(), clutter_container_get_children)
+  _WRAP_METHOD(Glib::ListHandle<Glib::RefPtr<const Actor> > get_children() const, clutter_container_get_children)
+
   _WRAP_METHOD(void lower_child(const Glib::RefPtr<Actor>& actor, const Glib::RefPtr<Actor>& sibling), clutter_container_lower_child)
   void lower_child(const Glib::RefPtr<Actor>& actor);
   _WRAP_METHOD(void raise_child(const Glib::RefPtr<Actor>& actor, const Glib::RefPtr<Actor>& sibling), clutter_container_raise_child)
@@ -52,17 +57,18 @@
   _IGNORE(clutter_container_foreach)
 
   // not sure the valist stuff is good to wrap in C++
-  //clutter_container_add_valist
-  //clutter_container_remove_valist
-  //clutter_container_add
-  //clutter_container_remove
+  _IGNORE(clutter_container_add_valist, clutter_container_remove_valist, clutter_container_add, clutter_container_remove, clutter_container_child_get, clutter_contaienr_child_set, clutter_container_class_find_child_property, clutter_container_class_list_child_properties)
 
-  // clutter_container_get_children
+  // TODO: Do we want to wrap clutter_container_get/set_child_property, and/or
+  // clutter_container_get_child_meta?
 
 #m4 _CONVERSION(`ClutterActor*',`const Glib::RefPtr<Actor>&',`Glib::wrap($3, true)')
   _WRAP_SIGNAL(void actor_added(const Glib::RefPtr<Actor>& actor), "actor_added")
   _WRAP_SIGNAL(void actor_removed(const Glib::RefPtr<Actor>& actor), "actor_removed")
 
+  // TODO: child-notify signal? Perhaps doesn't make sense until we wrap
+  // the ClutterChildMeta stuff, and clutter_container_get/set_child_property.
+
 protected:
 
   // Only useful as a protected method for derived implementations.
@@ -70,8 +76,14 @@
 
   _WRAP_VFUNC(void add(const Glib::RefPtr<Actor>& actor), add)
   _WRAP_VFUNC(void remove(const Glib::RefPtr<Actor>& actor), remove)
+  _WRAP_VFUNC(void raise(const Glib::RefPtr<Actor>& actor, const Glib::RefPtr<Actor>& sibling), raise)
+  _WRAP_VFUNC(void lower(const Glib::RefPtr<Actor>& actor, const Glib::RefPtr<Actor>& lower), lower)
+  _WRAP_VFUNC(void sort_depth_order(), sort_depth_order)
+
+  _WRAP_VFUNC(void foreach(ClutterCallback callback, gpointer user_data), foreach)
 
-  _WRAP_VFUNC(void foreach(), foreach)
+  // TODO: Do we want to wrap create_child_meta, destory_child_meta,
+  // get_child_meta?
 };
 
 } // namespace Clutter

Modified: cluttermm/trunk/clutter/src/stage.ccg
==============================================================================
--- cluttermm/trunk/clutter/src/stage.ccg	(original)
+++ cluttermm/trunk/clutter/src/stage.ccg	Sun Jun 15 13:00:59 2008
@@ -20,6 +20,14 @@
 namespace Clutter
 {
 
+Perspective::Perspective(Fixed fovy, Fixed aspect, Fixed z_near, Fixed z_far)
+{
+  gobject_.fovy = fovy;
+  gobject_.aspect = aspect;
+  gobject_.z_near = z_near;
+  gobject_.z_far = z_far;
+}
+
 Color Stage::get_color() const
 {
   Color color;
@@ -27,5 +35,17 @@
   return color;
 }
 
+Perspective Stage::get_perspectivex() const
+{
+  Perspective perspective;
+  clutter_stage_get_perspectivex(const_cast<ClutterStage*>(gobj()), perspective.gobj());
+  return perspective;
+}
+
+void Stage::set_key_focus()
+{
+  clutter_stage_set_key_focus(gobj(), NULL);
+}
+
 } //namespace Clutter
 

Modified: cluttermm/trunk/clutter/src/stage.hg
==============================================================================
--- cluttermm/trunk/clutter/src/stage.hg	(original)
+++ cluttermm/trunk/clutter/src/stage.hg	Sun Jun 15 13:00:59 2008
@@ -18,7 +18,7 @@
 #include <cluttermm/group.h>
 #include <cluttermm/color.h>
 #include <gdkmm/pixbuf.h>
-#include <clutter/clutter-stage.h> // TODO: Remove this when we have a wrapper for ClutterPerspective.
+#include <clutter/clutter-stage.h> // For ClutterPerspective
  
 _DEFS(cluttermm,clutter)
 _PINCLUDE(cluttermm/private/group_p.h)
@@ -28,6 +28,22 @@
 
 typedef ClutterFog Fog;
 
+class Perspective
+{
+  _CLASS_BOXEDTYPE_STATIC(Perspective, ClutterPerspective)
+public:
+  Perspective(Fixed fovy, Fixed aspect, Fixed z_near, Fixed z_far);
+
+  _MEMBER_GET(fovy, fovy, Fixed, ClutterFixed)
+  _MEMBER_SET(fovy, fovy, Fixed, ClutterFixed)
+  _MEMBER_GET(aspect, aspect, Fixed, ClutterFixed)
+  _MEMBER_SET(aspect, aspect, Fixed, ClutterFixed)
+  _MEMBER_GET(z_near, z_near, Fixed, ClutterFixed)
+  _MEMBER_SET(z_near, z_near, Fixed, ClutterFixed)
+  _MEMBER_GET(z_far, z_far, Fixed, ClutterFixed)
+  _MEMBER_SET(z_far, z_far, Fixed, ClutterFixed)
+};
+
 class Stage :
   public Group
 {
@@ -42,12 +58,11 @@
   _WRAP_METHOD(void set_color(const Color& color), clutter_stage_set_color)
   _WRAP_METHOD_DOCS_ONLY(clutter_stage_get_color)
   Color get_color() const;
-  _IGNORE(clutter_stage_get_color)
 
-  // TODO: wrap ClutterPerspective
-  _WRAP_METHOD(void set_perspectivex(ClutterPerspective* perspective), clutter_stage_set_perspectivex)
-  // TODO: return the perspective by value
-  _WRAP_METHOD(void get_perspectivex(ClutterPerspective* perspective) const, clutter_stage_get_perspectivex)
+#m4 _CONVERSION(`const Perspective&', `ClutterPerspective*',`const_cast<$2>(($3).gobj())')
+  _WRAP_METHOD(void set_perspectivex(const Perspective& perspective), clutter_stage_set_perspectivex)
+  _WRAP_METHOD_DOCS_ONLY(clutter_stage_get_perspectivex)
+  Perspective get_perspectivex() const;
 
   _WRAP_METHOD(void set_perspective(float fovy, float aspect, float z_near, float z_far), clutter_stage_set_perspective)
   _WRAP_METHOD(void get_perspective(float& fovy, float& aspect, float& z_near, float& z_far), clutter_stage_get_perspective)
@@ -66,10 +81,12 @@
   _WRAP_METHOD(Glib::RefPtr<Actor> get_key_focus(), clutter_stage_get_key_focus, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Actor> get_key_focus() const, clutter_stage_get_key_focus,  refreturn, constversion)
 
-  //TODO: actor can be NULL.
   _WRAP_METHOD(void set_key_focus(const Glib::RefPtr<Actor>& actor), clutter_stage_set_key_focus)
+  void set_key_focus();
 
-  //_WRAP_METHOD(Glib::RefPtr<Gdk::Pixbuf> snapshot(int x, int y, int width, int height) const, clutter_stage_snapshot)
+  // TODO: Should we rather wrap this as std::string, or
+  // as std::vector<unsigned char>, or Glib::ArrayHandle<guchar>?
+  _WRAP_METHOD(guchar* read_pixels(int x, int y, int width, int height) const, clutter_stage_read_pixels)
   _WRAP_METHOD(bool get_use_fog() const, clutter_stage_get_use_fog)
   _WRAP_METHOD(void set_use_fog(bool fog = true), clutter_stage_set_use_fog)
   _WRAP_METHOD(void set_fog(double density, double z_near, double z_far), clutter_stage_set_fog)
@@ -80,21 +97,28 @@
   _WRAP_METHOD(double get_resolution() const, clutter_stage_get_resolution)
   _WRAP_METHOD(Fixed get_resolutionx() const, clutter_stage_get_resolutionx)
   
-  _WRAP_METHOD(void stage_event(Event* event), clutter_stage_event);
+  _WRAP_METHOD(void stage_event(Event* event), clutter_stage_event)
+  _WRAP_METHOD(bool is_default() const, clutter_stage_is_default)
+  _WRAP_METHOD(void ensure_current(), clutter_stage_ensure_current)
 
   _WRAP_SIGNAL(void fullscreen(), "fullscreen")
   _WRAP_SIGNAL(void unfullscreen(), "unfullscreen")
   _WRAP_SIGNAL(void activate(), "activate")
   _WRAP_SIGNAL(void deactivate(), "deactivate")
 
+  _WRAP_PROPERTY("color", Color)
+  _WRAP_PROPERTY("cursor-visible", bool)
+  _WRAP_PROPERTY("fullscreen", bool)
+  _WRAP_PROPERTY("offscreen", bool)
+  _WRAP_PROPERTY("title", Glib::ustring)
+  _WRAP_PROPERTY("use-fog", bool)
+  _WRAP_PROPERTY("user-resizable", bool)
+
 protected:
-/*  _WRAP_VFUNC(void set_fullscreen(bool fullscreen), set_fullscreen)
-  _WRAP_VFUNC(void set_cursor_visible(bool visible), set_cursor_visible)
-  _WRAP_VFUNC(Glib::RefPtr<Gdk::Pixbuf> draw_to_pixbuf(int x, int y, int width, int height), draw_to_pixbuf)
-
-#m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
-  _WRAP_VFUNC(void set_title(const Glib::ustring& title), set_title)
-  _WRAP_VFUNC(void set_user_resize(bool value), set_user_resize)*/
+  // From the Clutter Docs:
+  // Applications should call clutter_actor_queue_redraw and not this function.
+  //_WRAP_METHOD(void queue_redraw(), clutter_stage_queue_redraw)
+  _IGNORE(clutter_stage_queue_redraw)
 };
 
 } // namespace Clutter

Modified: cluttermm/trunk/clutter/src/timeline.ccg
==============================================================================
--- cluttermm/trunk/clutter/src/timeline.ccg	(original)
+++ cluttermm/trunk/clutter/src/timeline.ccg	Sun Jun 15 13:00:59 2008
@@ -20,6 +20,17 @@
 namespace Clutter
 {
 
+guint Timeline::get_delta() const
+{
+  return clutter_timeline_get_delta(const_cast<ClutterTimeline*>(gobj()), NULL);
+}
+
+Glib::StringArrayHandle Timeline::list_markers(gint frame_num) const
+{
+  gsize n_markers;
+  gchar** markers = clutter_timeline_list_markers(const_cast<ClutterTimeline*>(gobj()), frame_num, &n_markers);
+  return Glib::StringArrayHandle(markers, n_markers, Glib::OWNERSHIP_DEEP);
+}
 
 } //namespace Clutter
 

Modified: cluttermm/trunk/clutter/src/timeline.hg
==============================================================================
--- cluttermm/trunk/clutter/src/timeline.hg	(original)
+++ cluttermm/trunk/clutter/src/timeline.hg	Sun Jun 15 13:00:59 2008
@@ -56,6 +56,7 @@
   _WRAP_METHOD(void advance(guint frame_num), clutter_timeline_advance)
   _WRAP_METHOD(int get_current_frame() const, clutter_timeline_get_current_frame)
   _WRAP_METHOD(guint get_delta(guint& msecs) const, clutter_timeline_get_delta)
+  guint get_delta() const;
   _WRAP_METHOD(void set_n_frames(guint n_frames), clutter_timeline_set_n_frames)
   _WRAP_METHOD(guint get_n_frames() const, clutter_timeline_get_n_frames)
   _WRAP_METHOD(bool is_playing() const, clutter_timeline_is_playing)
@@ -66,7 +67,17 @@
   _WRAP_METHOD(void set_direction(TimelineDirection direction), clutter_timeline_set_direction)
   _WRAP_METHOD(TimelineDirection get_direction() const, clutter_timeline_get_direction)
 
+  _WRAP_METHOD_DOCS_ONLY(clutter_timeline_list_markers)
+  Glib::StringArrayHandle list_markers(gint frame_num) const;
+  _WRAP_METHOD(void add_marker_at_time(const Glib::ustring& marker_name, guint msecs), clutter_timeline_add_marker_at_time)
+  _WRAP_METHOD(void add_marker_at_frame(const Glib::ustring& marker_name, guint frame_num), clutter_timeline_add_marker_at_frame)
+  _WRAP_METHOD(bool has_marker(const Glib::ustring& marker_name), clutter_timeline_has_marker)
+  _WRAP_METHOD(void remove_marker(const Glib::ustring& marker_name), clutter_timeline_remove_marker)
+  _WRAP_METHOD(void advance_to_marker(const Glib::ustring& marker_name), clutter_timeline_advance_to_marker)
+
   _WRAP_PROPERTY("delay", guint)
+  _WRAP_PROPERTY("direction", TimelineDirection)
+  _WRAP_PROPERTY("duration", guint)
   _WRAP_PROPERTY("fps", guint)
   _WRAP_PROPERTY("loop", bool)
   _WRAP_PROPERTY("num-frames", guint)
@@ -76,6 +87,11 @@
   _WRAP_SIGNAL(void paused(), "paused")
   _WRAP_SIGNAL(void started(), "started")
 
+  // TODO: This signal is detailed, though I don't think we can wrap the
+  // detail in Glibmm yet. armin.
+#m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
+  _WRAP_SIGNAL(void marker_reached(const Glib::ustring& marker_name, int frame_num), "marker-reached")
+
 };
 
 } // namespace Clutter



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]