[gtkmm] Fix the build with the latest GTK+ from git master.



commit 1d559abcbe4ff7501336f14e645b910636e2a0d8
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Sep 28 10:13:54 2010 +0200

    Fix the build with the latest GTK+ from git master.
    
    * gtk/gtkmm/private/object_p.h: Add this back for now, to avoid making
      more changes to the Gtk::Object code.
      * gtk/gtkmm/object.[h|cc]: Comment out the code that uses
      gtk_object_destroy(), adding TODO comments. If we don't find a way to
      do this in GTK+ 3 then we may need to remove our Gtk::Object and require
      Gtk::CellRenderer and Gtk::TreeViewColumn to be used via RefPtr.
    
      * gtk/src/filechooser.hg: Fix Filter->FileFilter typos.
      * gtk/src/recentchooser.hg: Use RecentFilter via RefPtr.
    
      * gtk/src/ruler.hg: Add a Cairo::Context parameter to the vfuncs.
      * gtk/src/widget.hg: Remove input_shape_combine_mask() and
      shape_combine_mask(). Correct some vfunc parameters.
      * gtk/src/gtk_vfuncs.defs:
      * tools/m4/convert_gtk.m4: Make necessary corrections.
    
      * gtk/src/image.hg: Remove get_pixmap() because Gdk::Pixmap is gone.
      * gtk/src/scale.hg: Remove set/get_bg_pixmap().
    
      * gtk/src/scale.ccg, scrollbar.ccg: Fix typos.
      * gtk/src/viewport.hg, scrolledwindow.hg: Remove duplicate method
      declarations.

 ChangeLog                    |   27 ++++++++++++++++++++
 gtk/gtkmm/filelist.am        |    3 +-
 gtk/gtkmm/object.cc          |   55 +++++++++++++++++++----------------------
 gtk/gtkmm/object.h           |    2 +-
 gtk/gtkmm/private/object_p.h |   37 ++++++++++++++++++++++++++++
 gtk/src/cellrenderer.hg      |    2 +-
 gtk/src/filechooser.hg       |    6 +---
 gtk/src/filefilter.hg        |    2 +-
 gtk/src/gtk_vfuncs.defs      |   37 +++++-----------------------
 gtk/src/image.ccg            |   11 --------
 gtk/src/image.hg             |    1 -
 gtk/src/recentchooser.hg     |   26 +++++++++++--------
 gtk/src/recentfilter.hg      |    6 ++--
 gtk/src/ruler.hg             |    9 +++++-
 gtk/src/scale.ccg            |   14 ++++------
 gtk/src/scrollbar.ccg        |   11 ++++----
 gtk/src/scrolledwindow.hg    |    2 -
 gtk/src/style.ccg            |   20 ---------------
 gtk/src/style.hg             |   12 ++++-----
 gtk/src/treeviewcolumn.ccg   |    1 -
 gtk/src/treeviewcolumn.hg    |    6 ++--
 gtk/src/viewport.hg          |    4 ---
 gtk/src/widget.ccg           |   16 ++----------
 gtk/src/widget.hg            |   26 ++++----------------
 gtk/src/window.ccg           |   16 ++++++------
 gtk/src/window.hg            |    2 +-
 tools/m4/convert_gtk.m4      |   12 ++++-----
 27 files changed, 170 insertions(+), 196 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 48b36f9..62f8ccb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2010-09-28  Murray Cumming  <murrayc murrayc com>
+
+	Fix the build with the latest GTK+ from git master.
+
+	* gtk/gtkmm/private/object_p.h: Add this back for now, to avoid making
+  more changes to the Gtk::Object code.
+  * gtk/gtkmm/object.[h|cc]: Comment out the code that uses
+  gtk_object_destroy(), adding TODO comments. If we don't find a way to
+  do this in GTK+ 3 then we may need to remove our Gtk::Object and require
+  Gtk::CellRenderer and Gtk::TreeViewColumn to be used via RefPtr.
+
+  * gtk/src/filechooser.hg: Fix Filter->FileFilter typos.
+  * gtk/src/recentchooser.hg: Use RecentFilter via RefPtr.
+
+  * gtk/src/ruler.hg: Add a Cairo::Context parameter to the vfuncs.
+  * gtk/src/widget.hg: Remove input_shape_combine_mask() and
+  shape_combine_mask(). Correct some vfunc parameters.
+  * gtk/src/gtk_vfuncs.defs:
+  * tools/m4/convert_gtk.m4: Make necessary corrections.
+
+  * gtk/src/image.hg: Remove get_pixmap() because Gdk::Pixmap is gone.
+  * gtk/src/scale.hg: Remove set/get_bg_pixmap().
+
+  * gtk/src/scale.ccg, scrollbar.ccg: Fix typos.
+  * gtk/src/viewport.hg, scrolledwindow.hg: Remove duplicate method
+  declarations.
+
 2010-09-27  Murray Cumming  <murrayc murrayc com>
 
   Partly fixed the build with latest GTK+.
diff --git a/gtk/gtkmm/filelist.am b/gtk/gtkmm/filelist.am
index af01f28..0a91b8b 100644
--- a/gtk/gtkmm/filelist.am
+++ b/gtk/gtkmm/filelist.am
@@ -39,4 +39,5 @@ gtkmm_files_extra_h =			\
 	treeview_private.h		\
 	wrap_init.h
 
-gtkmm_files_extra_ph =
+gtkmm_files_extra_ph = \
+	private/object_p.h
diff --git a/gtk/gtkmm/object.cc b/gtk/gtkmm/object.cc
index 600e84e..65e5535 100644
--- a/gtk/gtkmm/object.cc
+++ b/gtk/gtkmm/object.cc
@@ -15,6 +15,8 @@
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#include <gtkmm/object.h>
+#include <gtkmm/private/object_p.h>
 #include <glibmm/quark.h>
 #include <gtk/gtk.h>
 
@@ -23,17 +25,15 @@ namespace Gtk
 {
 
 Object::Object(const Glib::ConstructParams& construct_params)
-:
-  Glib::Object(construct_params)
+: Glib::Object(construct_params)
 {
    gobject_disposed_ = false;
 
   _init_unmanage(); //We don't like the GTK+ default memory management - we want to be in control._)
 }
 
-Object::Object(GtkObject* castitem)
-:
-  Glib::Object((GObject*) castitem)
+Object::Object(GObject* castitem)
+: Glib::Object(castitem)
 {
   gobject_disposed_ = false;
 
@@ -73,17 +73,17 @@ void Object::_init_unmanage(bool /* is_toplevel = false */)
        //g_object_ref(gobject_);
 
        //Alternatively, it might be a top-level window (e.g. a Dialog). We would then be doing one too-many refs(),
-       //We do an extra unref() in Window::_destroy_c_instance() to take care of that.
+       //We do an extra unref() in Window::_release_c_instance() to take care of that.
 
-       referenced_ = false; //Managed. We should not try to unfloat GtkObjects that we did not instantiate.
+       referenced_ = false; //Managed. We should not try to unfloat GObjects that we did not instantiate.
     }
   }
 }
 
-void Object::_destroy_c_instance()
+void Object::_release_c_instance()
 {
   #ifdef GLIBMM_DEBUG_REFCOUNTING
-  g_warning("Gtk::Object::_destroy_c_instance() this=%10X, gobject_=%10X\n", this, gobject_);
+  g_warning("Gtk::Object::_release_c_instance() this=%10X, gobject_=%10X\n", this, gobject_);
     if(gobject_)
       g_warning("  gtypename: %s\n", G_OBJECT_TYPE_NAME(gobject_));
   #endif
@@ -91,11 +91,11 @@ void Object::_destroy_c_instance()
   cpp_destruction_in_progress_ = true;
 
   // remove our hook.
-  GtkObject* object = gobj();
+  GObject* object = gobj();
 
   if (object)
   {
-    g_assert(GTK_IS_OBJECT(object));
+    g_assert(G_IS_OBJECT(object));
 
     disconnect_cpp_wrapper();
     //Unfortunately this means that our dispose callback will not be called, because the qdata has been removed.
@@ -128,8 +128,11 @@ void Object::_destroy_c_instance()
         if(!gobject_disposed_) //or if(g_signal_handler_is_connected(object, connection_id_destroy))
           g_signal_handler_disconnect(object, connection_id_destroy);
 
-        //destroy_notify() should have been called after the final g_object_unref() or gtk_object_destroy(), so gobject_disposed_ should now be true.
+        //destroy_notify() should have been called after the final g_object_unref() or gtk_object_destroy(), so gobject_disposed_ could now be true.
 
+        /* TODO: How can we do this with GTK+ 3? Note that it's not an issue for GtkWidgets,
+         * because we use gtk_widget_destroy in Gtk::Widget::_release_c_instance() instead.
+         *
         //If the C instance still isn't dead then insist, by calling gtk_object_destroy().
         //This is necessary because even a manage()d widget is refed when added to a container.
         // <danielk> That's simply not true.  But references might be taken elsewhere,
@@ -137,26 +140,31 @@ void Object::_destroy_c_instance()
         if (!gobject_disposed_)
         {
           #ifdef GLIBMM_DEBUG_REFCOUNTING
-          g_warning("Gtk::Object::_destroy_c_instance(): Calling gtk_object_destroy(): gobject_=%10X, gtypename=%s\n", object, G_OBJECT_TYPE_NAME(object));
+          g_warning("Gtk::Object::_release_c_instance(): Calling gtk_object_destroy(): gobject_=%10X, gtypename=%s\n", object, G_OBJECT_TYPE_NAME(object));
           #endif
 
-          g_assert(GTK_IS_OBJECT(object));
+          g_assert(G_IS_OBJECT(object));
           gtk_object_destroy(object); //Container widgets can respond to this.
         }
+        */
       }
       else
       {
+         /* TODO: How can we do this with GTK+ 3? Note that it's not an issue for GtkWidgets,
+         * because we use gtk_widget_destroy in Gtk::Widget::_release_c_instance() instead.
+         *
         //It's manag()ed, but the coder decided to delete it before deleting its parent.
         //That should be OK because the Container can respond to that.
         #ifdef GLIBMM_DEBUG_REFCOUNTING
-        g_warning("Gtk::Object::_destroy_c_instance(): Calling gtk_object_destroy(): gobject_=%10X\n", gobject_);
+        g_warning("Gtk::Object::_release_c_instance(): Calling gtk_object_destroy(): gobject_=%10X\n", gobject_);
         #endif
 
         if (!gobject_disposed_)
         {
-          g_assert(GTK_IS_OBJECT(object));
+          g_assert(G_IS_OBJECT(object));
           gtk_object_destroy(object);
         }
+        */
       }
     }
 
@@ -171,7 +179,7 @@ Object::~Object()
   #endif
 
   //This has probably been called already from Gtk::Object::_destroy(), which is called from derived destructors.
-  _destroy_c_instance();
+  _release_c_instance();
 }
 
 void Object::disconnect_cpp_wrapper()
@@ -253,7 +261,7 @@ void Object::destroy_()
     cpp_destruction_in_progress_ = true;
 
     //destroy the C instance:
-    _destroy_c_instance();
+    _release_c_instance();
   }
 
   //The C++ destructor will be reached later. This function was called by a destructor.
@@ -316,17 +324,6 @@ namespace
 {
 } // anonymous namespace
 
-
-namespace Glib
-{
-
-Gtk::Object* wrap(GObject* object, bool take_copy)
-{
-  return dynamic_cast<Gtk::Object *> (Glib::wrap_auto ((GObject*)(object), take_copy));
-}
-
-} /* namespace Glib */
-
 namespace Gtk
 {
 
diff --git a/gtk/gtkmm/object.h b/gtk/gtkmm/object.h
index 696e0bc..24e2a67 100644
--- a/gtk/gtkmm/object.h
+++ b/gtk/gtkmm/object.h
@@ -122,7 +122,7 @@ protected:
   void _init_unmanage(bool is_toplevel = false);
   virtual void destroy_notify_(); //override.
   void disconnect_cpp_wrapper();
-  void _destroy_c_instance();
+  void _release_c_instance();
   static void callback_destroy_(GObject* gobject, void* data); //only connected for a short time.
 
   // set if flags used by derived classes.
diff --git a/gtk/gtkmm/private/object_p.h b/gtk/gtkmm/private/object_p.h
new file mode 100644
index 0000000..313598f
--- /dev/null
+++ b/gtk/gtkmm/private/object_p.h
@@ -0,0 +1,37 @@
+#ifndef _GTKMM_OBJECT_P_H
+#define _GTKMM_OBJECT_P_H
+
+
+#include <glibmm/private/object_p.h>
+
+#include <glibmm/class.h>
+
+namespace Gtk
+{
+
+class Object_Class : public Glib::Class
+{
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+  typedef Object CppObjectType;
+  typedef GObject BaseObjectType;
+  typedef GObjectClass BaseClassType;
+  typedef Glib::Object_Class CppClassParent;
+  typedef GObjectClass BaseClassParent;
+
+  friend class Object;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+  const Glib::Class& init();
+
+
+  static void class_init_function(void* g_class, void* class_data);
+
+  static Glib::ObjectBase* wrap_new(GObject*);
+};
+
+
+} // namespace Gtk
+
+
+#endif /* _GTKMM_OBJECT_P_H */
diff --git a/gtk/src/cellrenderer.hg b/gtk/src/cellrenderer.hg
index 9fcf3f3..a9e31d5 100644
--- a/gtk/src/cellrenderer.hg
+++ b/gtk/src/cellrenderer.hg
@@ -38,7 +38,7 @@ _WRAP_ENUM(CellRendererMode, GtkCellRendererMode)
  * @ingroup TreeView
  */
 class CellRenderer :
-  public Gtk::Object
+  public Object
 {
   _CLASS_GTKOBJECT(CellRenderer,GtkCellRenderer,GTK_CELL_RENDERER,Gtk::Object,GObject)
 public:
diff --git a/gtk/src/filechooser.hg b/gtk/src/filechooser.hg
index e9e1ddb..b18d435 100644
--- a/gtk/src/filechooser.hg
+++ b/gtk/src/filechooser.hg
@@ -27,8 +27,6 @@ _PINCLUDE(glibmm/private/interface_p.h)
 namespace Gtk
 {
 
-class FileFilter;
-
 _WRAP_ENUM(FileChooserAction, GtkFileChooserAction)
 _WRAP_ENUM(FileChooserConfirmation, GtkFileChooserConfirmation)
 
@@ -166,8 +164,8 @@ _CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<const FileFilter> >',__FL
 /* Current filter
  */
   _WRAP_METHOD(void set_filter(const Glib::RefPtr<FileFilter>& filter), gtk_file_chooser_set_filter)
-  _WRAP_METHOD(Glib::RefPtr<FileFilter> get_filter(), gtk_file_chooser_get_filter)
-  _WRAP_METHOD(Glib::RefPtr<const FileFilter> get_filter() const, gtk_file_chooser_get_filter, constversion)
+  _WRAP_METHOD(Glib::RefPtr<FileFilter> get_filter(), gtk_file_chooser_get_filter, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const FileFilter> get_filter() const, gtk_file_chooser_get_filter, refreturn, constversion)
 
 /* Per-application shortcut folders */
 
diff --git a/gtk/src/filefilter.hg b/gtk/src/filefilter.hg
index c983919..23925eb 100644
--- a/gtk/src/filefilter.hg
+++ b/gtk/src/filefilter.hg
@@ -44,7 +44,7 @@ _WRAP_ENUM(FileFilterFlags, GtkFileFilterFlags)
  */
 class FileFilter : public Glib::Object
 {
-  _CLASS_OBJECT(FileFilter, GtkFileFilter, GTK_FILE_FILTER, Glib::Object, GObject)
+  _CLASS_GOBJECT(FileFilter, GtkFileFilter, GTK_FILE_FILTER, Glib::Object, GObject)
 protected:
   _CTOR_DEFAULT
 
diff --git a/gtk/src/gtk_vfuncs.defs b/gtk/src/gtk_vfuncs.defs
index 7ee0b28..a042755 100644
--- a/gtk/src/gtk_vfuncs.defs
+++ b/gtk/src/gtk_vfuncs.defs
@@ -190,35 +190,6 @@
   )
 )
 
-; GtkCList
-
-(define-vfunc sort_list
-  (of-object "GtkCList")
-  (return-type "none")
-)
-
-(define-vfunc insert_row
-  (of-object "GtkCList")
-  (return-type "int")
-  (parameters
-    '("gint" "row")
-    '("gchar**" "text")
-  )
-)
-
-(define-vfunc remove_row
-  (of-object "GtkCList")
-  (return-type "none")
-  (parameters
-    '("gint" "row")
-  )
-)
-
-(define-vfunc clear
-  (of-object "GtkCList")
-  (return-type "none")
-)
-
 ; GtkContainer
 
 (define-vfunc child_type
@@ -353,11 +324,17 @@
 (define-vfunc draw_ticks
   (of-object "GtkRuler")
   (return-type "none")
+  (parameters
+    '("cairo_t*" "cr")
+  )
 )
 
 (define-vfunc draw_pos
   (of-object "GtkRuler")
   (return-type "none")
+  (parameters
+    '("cairo_t*" "cr")
+  )
 )
 
 ; GtkScale
@@ -412,7 +389,7 @@
   (of-object "GtkStyle")
   (return-type "none")
   (parameters
-    '("cairo_t*" "cr")
+    '("GdkWindow*" "window")
     '("GtkStateType" "state_type")
   )
 )
diff --git a/gtk/src/image.ccg b/gtk/src/image.ccg
index fa75aa2..e195d01 100644
--- a/gtk/src/image.ccg
+++ b/gtk/src/image.ccg
@@ -40,17 +40,6 @@ Image::Image(const Glib::RefPtr<Gdk::PixbufAnimation>& animation)
   _CONSTRUCT("pixbuf-animation", Glib::unwrap(animation))
 {}
 
-void Image::get_pixmap(Glib::RefPtr<Gdk::Pixmap>& pixmap, Glib::RefPtr<Gdk::Bitmap>& mask) const
-{
-  GdkPixmap* pPixmap = 0;
-  GdkBitmap* pBitmap = 0;
-
-  gtk_image_get_pixmap(const_cast<GtkImage*>(gobj()), &pPixmap, &pBitmap);
-
-  pixmap = Glib::wrap((GdkPixmapObject*) pPixmap, true);
-  mask   = Glib::RefPtr<Gdk::Bitmap>::cast_dynamic(Glib::wrap((GdkPixmapObject*) pBitmap, true));
-}
-
 void Image::get_stock(Gtk::StockID& stock_id, IconSize& size) const
 {
   char* pStockID = 0; // GTK+ iconsistency: although not const, it should not be freed.
diff --git a/gtk/src/image.hg b/gtk/src/image.hg
index b7dc6c7..d78f4fb 100644
--- a/gtk/src/image.hg
+++ b/gtk/src/image.hg
@@ -112,7 +112,6 @@ public:
 
   _WRAP_METHOD(ImageType get_storage_type() const, gtk_image_get_storage_type)
 
-  void get_pixmap(Glib::RefPtr<Gdk::Pixmap>& pixmap, Glib::RefPtr<Gdk::Bitmap>& mask) const;
   _WRAP_METHOD(Glib::RefPtr<Gdk::Pixbuf> get_pixbuf(), gtk_image_get_pixbuf, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Pixbuf> get_pixbuf() const, gtk_image_get_pixbuf, refreturn, constversion)
   void get_stock(Gtk::StockID& stock_id, IconSize& size) const;
diff --git a/gtk/src/recentchooser.hg b/gtk/src/recentchooser.hg
index dd0dc83..39309bd 100644
--- a/gtk/src/recentchooser.hg
+++ b/gtk/src/recentchooser.hg
@@ -107,13 +107,15 @@ public:
   Glib::StringArrayHandle get_uris() const;
   _IGNORE(gtk_recent_chooser_get_uris)
 
-  _WRAP_METHOD(void add_filter(const RecentFilter& filter), gtk_recent_chooser_add_filter)
-  _WRAP_METHOD(void remove_filter(const RecentFilter& filter), gtk_recent_chooser_remove_filter)
-  _WRAP_METHOD(Glib::SListHandle<RecentFilter*> list_filters(), gtk_recent_chooser_list_filters)
-  _WRAP_METHOD(Glib::SListHandle<const RecentFilter*> list_filters() const, gtk_recent_chooser_list_filters)
-  _WRAP_METHOD(void set_filter(const RecentFilter& filter), gtk_recent_chooser_set_filter)
-  _WRAP_METHOD(RecentFilter* get_filter(), gtk_recent_chooser_get_filter)
-  _WRAP_METHOD(const RecentFilter* get_filter() const, gtk_recent_chooser_get_filter)
+  _WRAP_METHOD(void add_filter(const Glib::RefPtr<RecentFilter>& filter), gtk_recent_chooser_add_filter)
+  _WRAP_METHOD(void remove_filter(const Glib::RefPtr<RecentFilter>& filter), gtk_recent_chooser_remove_filter)
+
+  _WRAP_METHOD(Glib::SListHandle< Glib::RefPtr<RecentFilter> > list_filters(), gtk_recent_chooser_list_filters)
+  _WRAP_METHOD(Glib::SListHandle< Glib::RefPtr<const RecentFilter> > list_filters() const, gtk_recent_chooser_list_filters)
+
+  _WRAP_METHOD(void set_filter(const Glib::RefPtr<RecentFilter>& filter), gtk_recent_chooser_set_filter)
+  _WRAP_METHOD(Glib::RefPtr<RecentFilter> get_filter(), gtk_recent_chooser_get_filter, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const RecentFilter> get_filter() const, gtk_recent_chooser_get_filter, refreturn, constversion)
 
   /** This signal is emitted when there is a change in the set of
    * selected recently used resources.  This can happen when a user
@@ -138,7 +140,7 @@ public:
   _WRAP_PROPERTY("local-only", bool)
   _WRAP_PROPERTY("limit", int)
   _WRAP_PROPERTY("sort-type", RecentSortType)
-  _WRAP_PROPERTY("filter", RecentFilter*)
+  _WRAP_PROPERTY("filter", Glib::RefPtr<RecentFilter>)
 
 protected:
 #m4 _CONVERSION(`Glib::ustring', `gchar*', `g_strdup(($3).c_str())')
@@ -158,10 +160,12 @@ protected:
   _WRAP_VFUNC(void unselect_all(), "unselect_all")
   //_WRAP_VFUNC(ArrayHandle_RecentInfos get_items() const, "get_items")
   _WRAP_VFUNC(Glib::RefPtr<RecentManager> get_recent_manager(), "get_recent_manager")
-  _WRAP_VFUNC(void add_filter(const RecentFilter& filter), "add_filter")
-  _WRAP_VFUNC(void remove_filter(const RecentFilter& filter), "remove_filter")
+
+#m4 _CONVERSION(`GtkRecentFilter*',`const Glib::RefPtr<RecentFilter>&',`Glib::wrap($3, true)')
+  _WRAP_VFUNC(void add_filter(const Glib::RefPtr<RecentFilter>& filter), "add_filter")
+  _WRAP_VFUNC(void remove_filter(const Glib::RefPtr<RecentFilter>& filter), "remove_filter")
   //_WRAP_VFUNC(Glib::SListHandle<RecentFilter*> list_filters(), "list_filters")
   //_WRAP_VFUNC(void set_sort_func(const SlotCompare& slot), "set_sort_func")
 };
- 
+
 } // namespace Gtk
diff --git a/gtk/src/recentfilter.hg b/gtk/src/recentfilter.hg
index 7c105fa..ffe87dc 100644
--- a/gtk/src/recentfilter.hg
+++ b/gtk/src/recentfilter.hg
@@ -15,7 +15,7 @@
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <gtkmm/object.h>
+#include <glibmm/object.h>
 
 _DEFS(gtkmm,gtk)
 _PINCLUDE(glibmm/private/object_p.h)
@@ -46,7 +46,7 @@ _WRAP_ENUM(RecentFilterFlags, GtkRecentFilterFlags)
  *
  * @ingroup RecentFiles
  */
-class RecentFilter : public Gtk::Object
+class RecentFilter : public Glib::Object
 {
   _CLASS_GOBJECT(RecentFilter, GtkRecentFilter, GTK_RECENT_FILTER, Glib::Object, GObject)
 protected:
@@ -94,7 +94,7 @@ public:
 
   /// For instance, bool on_custom(const Gtk::RecentFilter::Info& filter_info);
   typedef sigc::slot<bool, const Info&> SlotCustom;
-  
+
   void add_custom(RecentFilterFlags needed, const SlotCustom& slot);
   _IGNORE(gtk_recent_filter_add_custom)
 
diff --git a/gtk/src/ruler.hg b/gtk/src/ruler.hg
index 3244413..98e0c31 100644
--- a/gtk/src/ruler.hg
+++ b/gtk/src/ruler.hg
@@ -69,8 +69,13 @@ public:
   _WRAP_METHOD(void set_range(double lower, double upper, double position, double max_size), gtk_ruler_set_range)
   _WRAP_METHOD(void get_range(double& lower, double& upper, double& position, double& max_size), gtk_ruler_get_range)
 
-  _WRAP_VFUNC(void draw_ticks(), "draw_ticks")
-  _WRAP_VFUNC(void draw_pos(), "draw_pos")
+#m4begin
+dnl This extra conversion does the extra reference, often needed by code for vfuncs and signal.
+_CONVERSION(`cairo_t*',`const Cairo::RefPtr<Cairo::Context>&',`Cairo::RefPtr<Cairo::Context>(new Cairo::Context($3, false /* has_reference */))')
+#m4end
+
+  _WRAP_VFUNC(void draw_ticks(const Cairo::RefPtr<Cairo::Context>& cr), "draw_ticks")
+  _WRAP_VFUNC(void draw_pos(const Cairo::RefPtr<Cairo::Context>& cr), "draw_pos")
 
   _WRAP_PROPERTY("lower", double)
   _WRAP_PROPERTY("upper", double)
diff --git a/gtk/src/scale.ccg b/gtk/src/scale.ccg
index 4a907b1..21e0bd4 100644
--- a/gtk/src/scale.ccg
+++ b/gtk/src/scale.ccg
@@ -1,7 +1,7 @@
 // -*- c++ -*-
 /* $Id: scale.ccg,v 1.2 2004/01/19 19:48:44 murrayc Exp $ */
 
-/* 
+/*
  *
  * Copyright 1998-2002 The gtkmm Development Team
  *
@@ -70,8 +70,7 @@ VScale::VScale()
   _CONSTRUCT_SPECIFIC(Scale, VScale)
 {
   Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0,
-    0.0, 0.0, 0.0));
-  // The adjustment will be destroyed along with the object
+    0.0, 0.0, 0.0);
   set_adjustment(adjustment);
 }
 
@@ -80,8 +79,8 @@ HScale::HScale(double min, double max, double step)
 :
   _CONSTRUCT_SPECIFIC(Scale, HScale)
 {
-  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(min, min, max, step, 10 * step, step));
-  set_adjustment(sadjustment);
+  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(min, min, max, step, 10 * step, step);
+  set_adjustment(adjustment);
 
   set_digits( calc_digits_(step) );
 }
@@ -91,8 +90,8 @@ HScale::HScale()
   _CONSTRUCT_SPECIFIC(Scale, HScale)
 {
   Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0,
-						  0.0, 0.0, 0.0));
-  set_adjustment(*adjustment);
+	  0.0, 0.0, 0.0);
+  set_adjustment(adjustment);
 }
 
 HScale::HScale(const Glib::RefPtr<Adjustment>& adjustment)
@@ -103,4 +102,3 @@ HScale::HScale(const Glib::RefPtr<Adjustment>& adjustment)
 }
 
 } // namespace Gtk
-
diff --git a/gtk/src/scrollbar.ccg b/gtk/src/scrollbar.ccg
index 1d83f02..506ba99 100644
--- a/gtk/src/scrollbar.ccg
+++ b/gtk/src/scrollbar.ccg
@@ -1,7 +1,7 @@
 // -*- c++ -*-
 /* $Id: scrollbar.ccg,v 1.1 2003/01/21 13:40:36 murrayc Exp $ */
 
-/* 
+/*
  *
  * Copyright 1998-2002 The gtkmm Development Team
  *
@@ -38,8 +38,8 @@ VScrollbar::VScrollbar()
 :
   _CONSTRUCT_SPECIFIC(Scrollbar, VScrollbar)
 {
-  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
-  set_adjustment(*adjustment);
+  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+  set_adjustment(adjustment);
 }
 
 
@@ -47,8 +47,8 @@ HScrollbar::HScrollbar()
 :
   _CONSTRUCT_SPECIFIC(Scrollbar, HScrollbar)
 {
-  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
-  set_adjustment(*adjustment);
+  Glib::RefPtr<Adjustment> adjustment = Adjustment::create(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+  set_adjustment(adjustment);
 }
 
 HScrollbar::HScrollbar(const Glib::RefPtr<Adjustment>& adjustment)
@@ -59,4 +59,3 @@ HScrollbar::HScrollbar(const Glib::RefPtr<Adjustment>& adjustment)
 }
 
 } // namespace Gtk
-
diff --git a/gtk/src/scrolledwindow.hg b/gtk/src/scrolledwindow.hg
index b412ed8..6dd82da 100644
--- a/gtk/src/scrolledwindow.hg
+++ b/gtk/src/scrolledwindow.hg
@@ -58,8 +58,6 @@ public:
   //TODO: Add unset_*adjustment().
   _WRAP_METHOD(void set_hadjustment(const Glib::RefPtr<Adjustment>& hadjustment), gtk_scrolled_window_set_hadjustment)
   _WRAP_METHOD(void set_vadjustment(const Glib::RefPtr<Adjustment>& vadjustment), gtk_scrolled_window_set_vadjustment)
-  _WRAP_METHOD(void set_hadjustment(const Glib::RefPtr<Adjustment>& hadjustment), gtk_scrolled_window_set_hadjustment)
-  _WRAP_METHOD(void set_vadjustment(const Glib::RefPtr<Adjustment>& vadjustment), gtk_scrolled_window_set_vadjustment)
 
   _WRAP_METHOD(Glib::RefPtr<Adjustment> get_hadjustment(), gtk_scrolled_window_get_hadjustment)
   _WRAP_METHOD(Glib::RefPtr<const Adjustment> get_hadjustment() const, gtk_scrolled_window_get_hadjustment, constversion)
diff --git a/gtk/src/style.ccg b/gtk/src/style.ccg
index 2833610..d7e8e8a 100644
--- a/gtk/src/style.ccg
+++ b/gtk/src/style.ccg
@@ -78,26 +78,6 @@ Pango::FontDescription Style::get_font() const
   return Pango::FontDescription(gobj()->font_desc, true); // true = make a copy.
 }
 
-void Style::set_bg_pixmap(StateType state_type, const Glib::RefPtr<const Gdk::Pixmap>& pixmap)
-{
-  GdkPixmap *const old_pixmap = gobj()->bg_pixmap[state_type];
-  Glib::RefPtr<Gdk::Pixmap> pixmap_unconst = Glib::RefPtr<Gdk::Pixmap>::cast_const(pixmap);
-  gobj()->bg_pixmap[state_type] = Glib::unwrap_copy(pixmap_unconst); //unwrap_copy() needs a non-const.
-
-  if(old_pixmap)
-    g_object_unref(old_pixmap);
-}
-
-Glib::RefPtr<Gdk::Pixmap> Style::get_bg_pixmap(StateType state_type)
-{
-  return Glib::wrap((GdkPixmapObject*) (gobj()->bg_pixmap[state_type]), true); // true = take_copy
-}
-
-Glib::RefPtr<const Gdk::Pixmap> Style::get_bg_pixmap(StateType state_type) const
-{
-  return Glib::wrap((GdkPixmapObject*) (gobj()->bg_pixmap[state_type]), true); // true = take_copy
-}
-
 void Style::set_xthickness(int xthickness)
 {
   gobj()->xthickness = xthickness;
diff --git a/gtk/src/style.hg b/gtk/src/style.hg
index 08a8e90..46986b4 100644
--- a/gtk/src/style.hg
+++ b/gtk/src/style.hg
@@ -101,11 +101,6 @@ public:
   void set_ythickness(int ythickness);
   _MEMBER_GET(ythickness, ythickness, int, gint)
 
-  void set_bg_pixmap(Gtk::StateType state_type, const Glib::RefPtr<const Gdk::Pixmap>& pixmap);
-
-  Glib::RefPtr<Gdk::Pixmap>       get_bg_pixmap(Gtk::StateType state_type);
-  Glib::RefPtr<const Gdk::Pixmap> get_bg_pixmap(Gtk::StateType state_type) const;
-
   _WRAP_METHOD(void paint_arrow(
                   const Cairo::RefPtr<Cairo::Context>& cr,
                   Gtk::StateType                    state_type,
@@ -372,8 +367,9 @@ protected:
 #m4 _CONVERSION(`GtkRcStyle*',`const Glib::RefPtr<RcStyle>&',`Glib::wrap($3)')
   _WRAP_VFUNC(void init_from_rc(const Glib::RefPtr<RcStyle>& rc_style), init_from_rc)
 
-#m4 _CONVERSION(`cairo_t*',`const Cairo::RefPtr<Cairo::Context>&',`Cairo::RefPtr<Cairo::Context>(new Cairo::Context($3, false /* has_reference */))')
-  _WRAP_VFUNC(void set_background(const Cairo::RefPtr<Cairo::Context>& cr, Gtk::StateType state_type), set_background)
+
+#m4 _CONVERSION(`GdkWindow*',`const Glib::RefPtr<Gdk::Window>&', `Glib::wrap((GdkWindowObject*)($3), true)')
+  _WRAP_VFUNC(void set_background(const Glib::RefPtr<Gdk::Window>& window, Gtk::StateType state_type), set_background)
 
 #m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
   _WRAP_VFUNC(Glib::RefPtr<Gdk::Pixbuf> render_icon(const IconSource& source,
@@ -382,6 +378,8 @@ protected:
                                  IconSize size,
                                  Widget* widget,
                                  const Glib::ustring& detail), render_icon)
+
+#m4 _CONVERSION(`cairo_t*',`const Cairo::RefPtr<Cairo::Context>&',`Cairo::RefPtr<Cairo::Context>(new Cairo::Context($3, false /* has_reference */))')
   _WRAP_VFUNC(void draw_hline(const Cairo::RefPtr<Cairo::Context>& cr,
          Gtk::StateType state_type,
          Widget* widget,
diff --git a/gtk/src/treeviewcolumn.ccg b/gtk/src/treeviewcolumn.ccg
index b7fdd36..7e20a71 100644
--- a/gtk/src/treeviewcolumn.ccg
+++ b/gtk/src/treeviewcolumn.ccg
@@ -84,4 +84,3 @@ void TreeViewColumn::unset_cell_data_func(CellRenderer& cell_renderer)
 
 
 } // namespace Gtk
-
diff --git a/gtk/src/treeviewcolumn.hg b/gtk/src/treeviewcolumn.hg
index bcde2a6..82b4ed5 100644
--- a/gtk/src/treeviewcolumn.hg
+++ b/gtk/src/treeviewcolumn.hg
@@ -27,7 +27,7 @@ _CONFIGINCLUDE(gtkmmconfig.h)
 #include <glibmm/listhandle.h>
 #include <gtkmm/cellrenderer_generation.h>
 _DEFS(gtkmm,gtk)
-_PINCLUDE(glibmm/private/object_p.h)
+_PINCLUDE(gtkmm/private/object_p.h)
 
 namespace Gtk
 {
@@ -48,10 +48,10 @@ class TreeView;
  * @ingroup TreeView
 */
 class GTKMM_API TreeViewColumn
-  : public Gtk::Object,
+  : public Object,
     public CellLayout
 {
-  _CLASS_GTKOBJECT(TreeViewColumn, GtkTreeViewColumn, GTK_TREE_VIEW_COLUMN, Gtk::Object, GObject)
+  _CLASS_GTKOBJECT(TreeViewColumn, GtkTreeViewColumn, GTK_TREE_VIEW_COLUMN, Object, GObject)
   _IMPLEMENTS_INTERFACE(CellLayout)
   _IGNORE(gtk_tree_view_column_set_cell_data_func)
 public:
diff --git a/gtk/src/viewport.hg b/gtk/src/viewport.hg
index e87f075..7a7ccaf 100644
--- a/gtk/src/viewport.hg
+++ b/gtk/src/viewport.hg
@@ -52,13 +52,9 @@ public:
 
   _WRAP_METHOD(void set_hadjustment(const Glib::RefPtr<Adjustment>& adjustment),
                gtk_viewport_set_hadjustment)
-  _WRAP_METHOD(void set_hadjustment(const Glib::RefPtr<Adjustment>& adjustment),
-               gtk_viewport_set_hadjustment)
 
   _WRAP_METHOD(void set_vadjustment(const Glib::RefPtr<Adjustment>& adjustment),
                gtk_viewport_set_vadjustment)
-  _WRAP_METHOD(void set_vadjustment(const Glib::RefPtr<Adjustment>& adjustment),
-               gtk_viewport_set_vadjustment)
 
   _WRAP_METHOD(void set_shadow_type(ShadowType type),
                gtk_viewport_set_shadow_type)
diff --git a/gtk/src/widget.ccg b/gtk/src/widget.ccg
index b795b17..03c4c09 100644
--- a/gtk/src/widget.ccg
+++ b/gtk/src/widget.ccg
@@ -435,7 +435,7 @@ void Widget_Class::dispose_vfunc_callback(GObject* self)
     g_warning("Widget_Class::dispose_vfunc_callback(): unreferenced: before gtk_widget_hide().");
     #endif
 
-    // Always hide widgets on gtk_object_destroy(), regardless of whether
+    // Always hide widgets on object destruction, regardless of whether
     // the widget is managed or not.  This is done for consistency so that
     // connecting to signal_hide() is guaranteed to work.
     gtk_widget_hide(pWidget);
@@ -471,19 +471,9 @@ Glib::ustring Widget::drag_dest_find_target(const Glib::RefPtr<Gdk::DragContext>
   return Gdk::AtomString::to_cpp_type(gtk_drag_dest_find_target(const_cast<GtkWidget*>(gobj()), Glib::unwrap(context), 0 /* See GTK+ docs */));
 }
 
-void Widget::unset_shape_combine_mask()
+void Widget::draw_insertion_cursor(const Cairo::RefPtr<Cairo::Context>& cr, const Gdk::Rectangle& location, bool is_primary, TextDirection direction, bool draw_arrow)
 {
-  gtk_widget_shape_combine_mask(gobj(), 0, 0, 0); /* See GTK+ docs */
-}
-
-void Widget::unset_input_shape_combine_mask()
-{
-  gtk_widget_input_shape_combine_mask(gobj(), 0, 0, 0); /* See GTK+ docs */
-}
-
-void Widget::draw_insertion_cursor(Glib::RefPtr<Gdk::Drawable> drawable, const Gdk::Rectangle& area, const Gdk::Rectangle& location, bool is_primary, TextDirection direction, bool draw_arrow)
-{
-  gtk_draw_insertion_cursor(gobj(), drawable->gobj(), const_cast<GdkRectangle*>(area.gobj()), const_cast<GdkRectangle*>(location.gobj()), is_primary, (GtkTextDirection)direction, draw_arrow);
+  gtk_draw_insertion_cursor(gobj(), cr->cobj(), const_cast<GdkRectangle*>(location.gobj()), is_primary, (GtkTextDirection)direction, draw_arrow);
 }
 
 Requisition Widget::get_requisition() const
diff --git a/gtk/src/widget.hg b/gtk/src/widget.hg
index 5c414dc..319685d 100644
--- a/gtk/src/widget.hg
+++ b/gtk/src/widget.hg
@@ -58,7 +58,6 @@ namespace Gtk
 
 _CC_INCLUDE(gtk/gtk.h)
 _WRAP_ENUM(DestDefaults, GtkDestDefaults)
-_WRAP_ENUM(WidgetFlags, GtkWidgetFlags)
 _WRAP_ENUM(WidgetHelpType, GtkWidgetHelpType)
 _WRAP_ENUM(DragResult, GtkDragResult)
 
@@ -97,13 +96,13 @@ typedef Gdk::Rectangle Allocation;
  * a Gdk::Window.
  */
 class Widget
-: public Gtk::Object,
+: public Object,
   public Buildable
 #ifdef GTKMM_ATKMM_ENABLED
   ,public Atk::Implementor
 #endif //GTKMM_ATKMM_ENABLED
 {
-  _CLASS_GTKOBJECT(Widget,GtkWidget,GTK_WIDGET,Gtk::Object,GObject)
+  _CLASS_GTKOBJECT(Widget,GtkWidget,GTK_WIDGET,Object,GObject)
   _IMPLEMENTS_INTERFACE(Buildable)
   _IMPLEMENTS_INTERFACE(Atk::Implementor, ifdef GTKMM_ATKMM_ENABLED)
   _IGNORE(gtk_widget_set, gtk_widget_queue_clear, gtk_widget_queue_clear_area, gtk_widget_draw,
@@ -475,12 +474,6 @@ public:
   _WRAP_METHOD(static void set_default_direction(TextDirection dir), gtk_widget_set_default_direction)
   _WRAP_METHOD(static TextDirection get_default_direction(), gtk_widget_get_default_direction)
 
-/* Shape masking */
-  _WRAP_METHOD(void shape_combine_mask(const Glib::RefPtr<const Gdk::Bitmap>& shape_mask, int offset_x = 0, int offset_y = 0), gtk_widget_shape_combine_mask)
-  void unset_shape_combine_mask();
-  _WRAP_METHOD(void input_shape_combine_mask(const Glib::RefPtr<const Gdk::Bitmap>& shape_mask, int offset_x = 0, int offset_y = 0), gtk_widget_input_shape_combine_mask)
-  void unset_input_shape_combine_mask();
-
   // must be realized
   _WRAP_METHOD(void reset_shapes(),gtk_widget_reset_shapes)
 
@@ -553,8 +546,8 @@ public:
   _WRAP_METHOD(void map(), gtk_widget_map)
   _WRAP_METHOD(void unmap(), gtk_widget_unmap)
 
-  //TODO: The drawable should be passed by reference, when we can break API/ABI, but it's not the end of the world. murrayc.
-  void draw_insertion_cursor(Glib::RefPtr<Gdk::Drawable> drawable, const Gdk::Rectangle& area, const Gdk::Rectangle& location, bool is_primary, TextDirection direction, bool draw_arrow = true);
+  //TODO: Documentation:
+  void draw_insertion_cursor(const Cairo::RefPtr<Cairo::Context>& cr, const Gdk::Rectangle& location, bool is_primary, TextDirection direction, bool draw_arrow = true);
   _IGNORE(gtk_draw_insertion_cursor)
 
   // Gtk+ 2.12 tooltip API
@@ -696,16 +689,7 @@ dnl
   _POP()
 #m4end
 
-  /// Event triggered by window requiring a refresh.
-  //- Expose events cover a rectangular area that was covered
-  //- or obscured by another window.  That area is now exposed
-  //- and thus is needs to be redrawn.
-  //-
-  //- If the application is not capable of redrawing sections
-  //- it should watch the count field and only draw on the last
-  //- even indicated.  This is important for things such as
-  //- Gtk::DrawingArea.
-  _WRAP_SIGNAL(bool expose_event(GdkEventExpose* event), "expose_event")
+  _WRAP_SIGNAL(bool draw(const Cairo::RefPtr<Cairo::Context>& cr), "draw")
 
   /// Event triggered by a key press will widget has focus.
   _WRAP_SIGNAL(bool key_press_event(GdkEventKey* event), "key_press_event")
diff --git a/gtk/src/window.ccg b/gtk/src/window.ccg
index bf432f3..4a288d3 100644
--- a/gtk/src/window.ccg
+++ b/gtk/src/window.ccg
@@ -68,21 +68,21 @@ void Window::destroy_()
 
   if ( !cpp_destruction_in_progress_ ) //see comment below.
   {
-    //Prevent destroy_notify_() from running as a possible side-effect of gtk_object_destroy.
+    //Prevent destroy_notify_() from running as a possible side-effect of object destruction.
     //We can't predict whether destroy_notify_() will really be run, so we'll disconnect the C++ instance here.
     cpp_destruction_in_progress_ = true;
 
     //destroy the C instance:
-    _destroy_c_instance();
+    _release_c_instance();
   }
 
   //The C++ destructor will be reached later. This function was called by a destructor.
 }
 
-void Window::_destroy_c_instance()
+void Window::_release_c_instance()
 {
-  //We override this,
-  //because though top-level windows can only be destroyed with gtk_widget_destroy, according to Owen Taylor. murrayc.
+  //We override this, (though it's not virtual - we just call it from this class),
+  //because top-level windows can only be destroyed with gtk_widget_destroy, according to Owen Taylor. murrayc.
   #ifdef GLIBMM_DEBUG_REFCOUNTING
   g_warning("Gtk::Window::_destroy_c_instance() gobject_=%10X\n", gobject_);
   #endif
@@ -90,7 +90,7 @@ void Window::_destroy_c_instance()
   cpp_destruction_in_progress_ = true;
 
   // remove our hook.
-  GtkObject* object = (GtkObject*)gobj();
+  GtkWidget* object = GTK_WIDGET(gobj());
   if (object)
   {
     disconnect_cpp_wrapper();
@@ -102,7 +102,7 @@ void Window::_destroy_c_instance()
     if (!gobject_disposed_)
     {
       //Windows can not be unrefed. They are "self-owning".
-      gtk_object_destroy(object);
+      gtk_widget_destroy(object);
     }
 
     //Glib::Object::~Object() will not g_object_unref() it too. because gobject_ is now 0.
@@ -156,7 +156,7 @@ void Window_Class::dispose_vfunc_callback(GObject* self)
     //g_warning("Window_Class::dispose_vfunc_callback(): unreferenced: before gtk_widget_hide().");
     #endif
 
-    // Always hide widgets on gtk_object_destroy(), regardless of whether
+    // Always hide widgets on object destruction, regardless of whether
     // the widget is managed or not.  This is done for consistency so that
     // connecting to signal_hide() is guaranteed to work.
     //gtk_widget_hide(pWidget);
diff --git a/gtk/src/window.hg b/gtk/src/window.hg
index fb0eda1..ed8ef70 100644
--- a/gtk/src/window.hg
+++ b/gtk/src/window.hg
@@ -357,7 +357,7 @@ protected:
 
   //See comments in the implementations:
   void destroy_();
-  void _destroy_c_instance();
+  void _release_c_instance();
 
 private:
 
diff --git a/tools/m4/convert_gtk.m4 b/tools/m4/convert_gtk.m4
index c2ef9f5..5d7f929 100644
--- a/tools/m4/convert_gtk.m4
+++ b/tools/m4/convert_gtk.m4
@@ -351,8 +351,8 @@ _CONVERSION(`GSList*',`Glib::SListHandle<Glib::ustring>',__FL2H_DEEP)
 _CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<PixbufFormat> >',__FL2H_SHALLOW)
 _CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<const PixbufFormat> >',__FL2H_SHALLOW)
 _CONVERSION(`GSList*',`SListHandle_PixbufFormat',__FL2H_DEEP)
-_CONVERSION(`GSList*',`Glib::SListHandle<RecentFilter*>',__FL2H_SHALLOW)
-_CONVERSION(`GSList*',`Glib::SListHandle<const RecentFilter*>', __FL2H_SHALLOW)
+_CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<RecentFilter> >',__FL2H_SHALLOW)
+_CONVERSION(`GSList*',`Glib::SListHandle< Glib::RefPtr<const RecentFilter> >', __FL2H_SHALLOW)
 
 _CONVERSION(`const Widget&',`GtkWidget*',__FCR2P)
 
@@ -546,11 +546,9 @@ _CONVERSION(`const GtkBorder*',`Border',`Glib::wrap(const_cast<GtkBorder*>($3))'
 
 #RecentFilter
 _CONVERSION(`GtkRecentFilterFlags',`RecentFilterFlags',`($2)$3')
-_CONVERSION(`const RecentFilter&', `GtkRecentFilter*', __FCR2P)
-_CONVERSION(`GtkRecentFilter*',`RecentFilter*', `Glib::wrap($3)')
-_CONVERSION(`GtkRecentFilter*',`const RecentFilter*', `Glib::wrap($3)')
-_CONVERSION(`GtkRecentFilter*', `RecentFilter&', `*Glib::wrap($3)')
-_CONVERSION(`GtkRecentFilter*', `const RecentFilter&', `*Glib::wrap($3)')
+_CONVERSION(`const Glib::RefPtr<RecentFilter>&', `GtkRecentFilter*', __CONVERT_REFPTR_TO_P)
+_CONVERSION(`GtkRecentFilter*',`Glib::RefPtr<RecentFilter>', `Glib::wrap($3)')
+_CONVERSION(`GtkRecentFilter*',`Glib::RefPtr<const RecentFilter>', `Glib::wrap($3)')
 
 #RecentInfo
 _CONVERSION(`GtkRecentInfo*',`Glib::RefPtr<RecentInfo>',`Glib::wrap($3)')



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