Author: jjongsma
Date: Sun Feb 17 03:30:41 2008
New Revision: 1352
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1352&view=rev

Log:
        * goocanvas/src/item.hg: modify get_items_at() to take a non-const
        listhandle for found_items since the convention for C functions that
        implement this function is to add any found items onto this list and 
then
        pass it down to the child item which adds their found items.
        Also wrapped a few more vfuncs
        * goocanvas/src/itemsimple.hg: wrap vfuncs, add getters and setters for 
some
        public data members
        * goocanvas/src/libgoocanvas_vfuncs.defs: update get_items_at()
        * tools/m4/convert_libgoocanvasmm.m4: minor changes to support the 
changes
        above



Modified:
   goocanvasmm/trunk/ChangeLog
   goocanvasmm/trunk/goocanvas/src/item.hg
   goocanvasmm/trunk/goocanvas/src/itemsimple.hg
   goocanvasmm/trunk/goocanvas/src/libgoocanvas_vfuncs.defs
   goocanvasmm/trunk/tools/m4/convert_libgoocanvasmm.m4

Modified: goocanvasmm/trunk/goocanvas/src/item.hg
==============================================================================
--- goocanvasmm/trunk/goocanvas/src/item.hg     (original)
+++ goocanvasmm/trunk/goocanvas/src/item.hg     Sun Feb 17 03:30:41 2008
@@ -51,6 +51,7 @@
 
   _WRAP_METHOD(Canvas* get_canvas(), goo_canvas_item_get_canvas)
   _WRAP_METHOD(const Canvas* get_canvas() const, goo_canvas_item_get_canvas, 
constversion)
+  // TODO: should this be passed by reference instead of by pointer?
   _WRAP_METHOD(void set_canvas(Canvas* canvas),  goo_canvas_item_set_canvas)
 
   _WRAP_METHOD(bool is_visible() const, goo_canvas_item_is_visible)
@@ -99,8 +100,8 @@
   _WRAP_METHOD(void allocate_area(const Cairo::RefPtr<Cairo::Context>& 
context, const Bounds& requested_area, const Bounds& allocated_area, double 
x_offset, double y_offset), goo_canvas_item_allocate_area)
 
 #m4 _CONVERSION(`GList*',`Glib::ListHandle< Glib::RefPtr<Item> >',`$2($3, 
Glib::OWNERSHIP_SHALLOW)')
-#m4 _CONVERSION(`const Glib::ListHandle< Glib::RefPtr<Item> >&',`GList*', 
`($3).data()')
-  _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Item> > get_items_at(double x, 
double y, const Cairo::RefPtr<Cairo::Context>& context, bool is_pointer_event, 
bool parent_is_visible, const Glib::ListHandle< Glib::RefPtr<Item> >& 
found_items), goo_canvas_item_get_items_at)
+#m4 _CONVERSION(`Glib::ListHandle< Glib::RefPtr<Item> >&',`GList*', 
`($3).data()')
+  _WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<Item> > get_items_at(double x, 
double y, const Cairo::RefPtr<Cairo::Context>& context, bool is_pointer_event, 
bool parent_is_visible, Glib::ListHandle< Glib::RefPtr<Item> >& found_items), 
goo_canvas_item_get_items_at)
 
   //TODO: Use Cairo::RefPtr?
   _WRAP_METHOD(bool get_transform(Cairo::Matrix* matrix), 
goo_canvas_item_get_transform)
@@ -158,21 +159,16 @@
 
 
 /* Virtual methods that group items must implement. */
-/*
-  GooCanvas*           (* get_canvas)                  (GooCanvasItem          
*item);
-  void                 (* set_canvas(
-                                                        GooCanvas              
*canvas);
-  gint                 (* get_n_children)              (GooCanvasItem          
*item);
-  GooCanvasItem*       (* get_child(
-                                                        gint                   
 child_num);
-  void                 (* request_update)              (GooCanvasItem          
*item);
-*/
+  _WRAP_VFUNC(int get_n_children() const, get_n_children)
+  _WRAP_VFUNC(Glib::RefPtr<Item> get_child(int child_num), get_child)
+  _WRAP_VFUNC(void request_update(), request_update)
+  _WRAP_VFUNC(GooCanvas* get_canvas(), get_canvas)
+  // TODO: should this be passed by reference instead of by pointer?
+  _WRAP_VFUNC(void set_canvas(GooCanvas* canvas), set_canvas)
   /* Virtual methods that group items may implement. */
 
+  _WRAP_VFUNC(void add_child(const Glib::RefPtr<Item>& child, int position), 
add_child)
 /*
-  void                 (* add_child(
-                                                        GooCanvasItem          
*child,
-                                                        gint                   
 position);
   void                 (* move_child(
                                                         gint                   
 old_position,
                                                         gint                   
 new_position);
@@ -196,15 +192,16 @@
   /* Virtual methods that all canvas items must implement. */
 
 #m4 _CONVERSION(`Glib::RefPtr<Item>', `GooCanvasItem*', `(($3) ? ($3)->gobj() 
: 0)');
-  _WRAP_VFUNC(Glib::RefPtr<Item> get_parent(), get_parent)
-  _WRAP_VFUNC(void set_parent(const Glib::RefPtr<Item>& parent), set_parent)
+#m4 _CONVERSION(`GooCanvasItem*', `Glib::RefPtr<Item>', `Glib::wrap($3, true)')
+  _WRAP_VFUNC(GooCanvasItem* get_parent(), get_parent)
+  _WRAP_VFUNC(void set_parent(GooCanvasItem* parent), set_parent)
 
 
   _WRAP_VFUNC(void get_bounds(GooCanvasBounds* bounds), get_bounds)
 
 #m4 _CONVERSION(`cairo_t*',`const 
Cairo::RefPtr<Cairo::Context>&',`Cairo::RefPtr<Cairo::Context>(new 
Cairo::Context($3, false /* has_reference */))')
   _WRAP_VFUNC(GList* get_items_at(double x, double y, const 
Cairo::RefPtr<Cairo::Context>& cr, bool is_pointer_event, bool 
parent_is_visible, GList* found_items), get_items_at)
-  _WRAP_VFUNC(void update(bool entire_tree, const 
Cairo::RefPtr<Cairo::Context>& cr, GooCanvasBounds* bounds), update)
+  _WRAP_VFUNC(void update(bool entire_tree, const 
Cairo::RefPtr<Cairo::Context>& cr, Bounds& bounds), update)
 
 #m4 _CONVERSION(`const GooCanvasBounds*', `const Bounds&', `Glib::wrap($3)');
   _WRAP_VFUNC(void paint(const Cairo::RefPtr<Cairo::Context>& cr, const 
Bounds& bounds, double scale), paint)

Modified: goocanvasmm/trunk/goocanvas/src/itemsimple.hg
==============================================================================
--- goocanvasmm/trunk/goocanvas/src/itemsimple.hg       (original)
+++ goocanvasmm/trunk/goocanvas/src/itemsimple.hg       Sun Feb 17 03:30:41 2008
@@ -93,12 +93,14 @@
 protected:
 #m4 _CONVERSION(`cairo_t*',`const 
Cairo::RefPtr<Cairo::Context>&',`Cairo::RefPtr<Cairo::Context>(new 
Cairo::Context($3, false /* has reference */))')
 #m4 _CONVERSION(`const GooCanvasBounds*',`const Bounds&',`Glib::wrap($3)')
-  // TODO: wrapping these vfuncs causes classes that inherit from ItemSimple to
-  // stop working (e.g. Ellipse, Rect).  Ref-counting issue??
-  //_WRAP_VFUNC(void simple_create_path(const Cairo::RefPtr<Cairo::Context>& 
cr), "simple_create_path")
-  //_WRAP_VFUNC(void simple_update(const Cairo::RefPtr<Cairo::Context>& cr), 
"simple_update")
-  //_WRAP_VFUNC(void simple_paint(const Cairo::RefPtr<Cairo::Context>& cr, 
const Bounds& bounds), "simple_paint")
-  //_WRAP_VFUNC(bool simple_is_item_at(double x, double y, const 
Cairo::RefPtr<Cairo::Context>& cr, bool is_pointer_event), "simple_is_item_at")
+  _WRAP_VFUNC(void simple_create_path(const Cairo::RefPtr<Cairo::Context>& 
cr), "simple_create_path")
+  _WRAP_VFUNC(void simple_update(const Cairo::RefPtr<Cairo::Context>& cr), 
"simple_update")
+  _WRAP_VFUNC(void simple_paint(const Cairo::RefPtr<Cairo::Context>& cr, const 
Bounds& bounds), simple_paint)
+  _WRAP_VFUNC(bool simple_is_item_at(double x, double y, const 
Cairo::RefPtr<Cairo::Context>& cr, bool is_pointer_event), "simple_is_item_at")
+  _MEMBER_GET(need_update, need_update, bool, guint);
+  _MEMBER_SET(need_update, need_update, bool, guint);
+  _MEMBER_GET(need_entire_subtree_update, need_entire_subtree_update, bool, 
guint);
+  _MEMBER_SET(need_entire_subtree_update, need_entire_subtree_update, bool, 
guint);
 };
 
 } //namespace Goocanvas

Modified: goocanvasmm/trunk/goocanvas/src/libgoocanvas_vfuncs.defs
==============================================================================
--- goocanvasmm/trunk/goocanvas/src/libgoocanvas_vfuncs.defs    (original)
+++ goocanvasmm/trunk/goocanvas/src/libgoocanvas_vfuncs.defs    Sun Feb 17 
03:30:41 2008
@@ -101,15 +101,16 @@
        )
 )
 
-(define-vfunc get_item_at
+(define-vfunc get_items_at
        (of-object "GooCanvasItem")
-       (return-type "GooCanvasItem*")
+       (return-type "GList*")
        (parameters
                '("gdouble" "x")
                '("gdouble" "y")
                '("cairo_t*" "cr")
                '("gboolean" "is_pointer_event")
                '("gboolean" "parent_is_visible")
+               '("GList*" "found_items")
        )
 )
 

Modified: goocanvasmm/trunk/tools/m4/convert_libgoocanvasmm.m4
==============================================================================
--- goocanvasmm/trunk/tools/m4/convert_libgoocanvasmm.m4        (original)
+++ goocanvasmm/trunk/tools/m4/convert_libgoocanvasmm.m4        Sun Feb 17 
03:30:41 2008
@@ -8,6 +8,7 @@
 _CONVERSION(`const Bounds&',`GooCanvasBounds*',__FCR2P))
 _CONVERSION(`Goocanvas::Bounds&',`GooCanvasBounds*',($3).gobj())
 _CONVERSION(`GooCanvasBounds*',`Goocanvas::Bounds*',`&Glib::wrap($3)')
+_CONVERSION(`GooCanvasBounds*',`Bounds&',`Glib::wrap($3)')
 _CONVERSION(`const Bounds*',`const GooCanvasBounds*',($3).gobj())
 _CONVERSION(`const Bounds&',`const GooCanvasBounds*',($3).gobj())
 
@@ -28,6 +29,7 @@
 _CONVERSION(`GooCanvasStyle*',`Glib::RefPtr<const Style>',`Glib::wrap($3)')
 
 _CONVERSION(`const Glib::RefPtr<Item>&',`GooCanvasItem*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`Glib::RefPtr<Item>',`GooCanvasItem*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const 
Glib::RefPtr<ItemModel>&',`GooCanvasItemModel*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const 
Glib::RefPtr<ItemSimple>&',`GooCanvasItemSimple*',__CONVERT_REFPTR_TO_P)
 _CONVERSION(`const 
Glib::RefPtr<Style>&',`GooCanvasStyle*',__CONVERT_REFPTR_TO_P)
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to