[gtkmm] Update for the latest gtk+4 (replace class IconSize by enum IconSize)



commit 009fccbdbe2395f872c0c470e79ce776f7274b33
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Nov 20 10:52:54 2017 +0100

    Update for the latest gtk+4 (replace class IconSize by enum IconSize)
    
    User-defined icon sizes are not supported. Class Gtk::IconSize is removed,
    and enum BuiltinIconSize is renamed to IconSize.
    std::vector<Gtk::TargetEntry> is replaced by Glib::RefPtr<Gtk::TargetList>
    in several parameter lists.
    GdkAtom is now a const char*, and GDK_NONE is replaced by nullptr.
    Gtk::TargetEntry::set_info() and get_info() have been removed.

 demos/gtk-demo/example_change_display.cc |    2 -
 demos/gtk-demo/example_dialog.cc         |    3 +-
 demos/gtk-demo/example_headerbar.cc      |    9 +--
 demos/gtk-demo/example_iconbrowser.cc    |   14 +++---
 demos/gtk-demo/example_stack.cc          |    3 +-
 demos/gtk-demo/example_stacksidebar.cc   |    2 +-
 gdk/gdkmm/general.cc                     |    5 --
 gdk/gdkmm/general.h                      |    2 -
 gdk/src/display.hg                       |    3 -
 gdk/src/events.ccg                       |    8 ++--
 gdk/src/window.hg                        |    6 +-
 gtk/gtkmm/targetentry.cc                 |   19 +-------
 gtk/gtkmm/targetentry.h                  |    8 +---
 gtk/src/button.ccg                       |    5 +-
 gtk/src/button.hg                        |    4 +-
 gtk/src/cellrendererpixbuf.hg            |    1 -
 gtk/src/clipboard.ccg                    |   18 ++-----
 gtk/src/clipboard.hg                     |   14 +++---
 gtk/src/entry.ccg                        |    5 --
 gtk/src/entry.hg                         |    6 +-
 gtk/src/enums.ccg                        |   12 -----
 gtk/src/enums.hg                         |   79 +-----------------------------
 gtk/src/iconview.ccg                     |   12 -----
 gtk/src/iconview.hg                      |   26 +++-------
 gtk/src/image.ccg                        |   24 ---------
 gtk/src/image.hg                         |   38 ++++-----------
 gtk/src/scalebutton.ccg                  |    8 ++--
 gtk/src/scalebutton.hg                   |   11 ++---
 gtk/src/targetlist.hg                    |   21 +++++---
 gtk/src/textchildanchor.hg               |    8 ---
 gtk/src/toolbar.hg                       |    9 ---
 gtk/src/toolitem.hg                      |    1 -
 gtk/src/toolpalette.hg                   |    5 --
 gtk/src/toolshell.hg                     |    3 -
 gtk/src/tooltip.hg                       |    4 +-
 gtk/src/treeview.ccg                     |   22 +--------
 gtk/src/treeview.hg                      |   32 +++++-------
 gtk/src/widget.ccg                       |   48 +++++-------------
 gtk/src/widget.hg                        |   32 +++++-------
 tools/m4/convert_gtk.m4                  |    6 +--
 40 files changed, 132 insertions(+), 406 deletions(-)
---
diff --git a/demos/gtk-demo/example_change_display.cc b/demos/gtk-demo/example_change_display.cc
index 50bcc75..b154a82 100644
--- a/demos/gtk-demo/example_change_display.cc
+++ b/demos/gtk-demo/example_change_display.cc
@@ -326,8 +326,6 @@ Gtk::Window* Example_ChangeDisplay::query_for_toplevel(const Glib::RefPtr<Gdk::D
        toplevel = nullptr;
   }
 
-  Gdk::flush(); /* Really release the grab */
-
   return toplevel;
 }
 
diff --git a/demos/gtk-demo/example_dialog.cc b/demos/gtk-demo/example_dialog.cc
index 6b75881..57f71de 100644
--- a/demos/gtk-demo/example_dialog.cc
+++ b/demos/gtk-demo/example_dialog.cc
@@ -138,7 +138,8 @@ Dialog_Interactive::Dialog_Interactive(Gtk::Window& parent, const Glib::ustring&
   m_Label1("_Entry 1", true), m_Label2("E_ntry 2", true),
   m_Image()
 {
-  m_Image.set_from_icon_name("dialog-question", Gtk::BuiltinIconSize::DIALOG);
+  m_Image.set_from_icon_name("dialog-question");
+  m_Image.set_icon_size(Gtk::IconSize::LARGE);
   add_button("_OK", Gtk::ResponseType::OK);
   add_button("_Cancel", Gtk::ResponseType::CANCEL);
 
diff --git a/demos/gtk-demo/example_headerbar.cc b/demos/gtk-demo/example_headerbar.cc
index f46e216..e201513 100644
--- a/demos/gtk-demo/example_headerbar.cc
+++ b/demos/gtk-demo/example_headerbar.cc
@@ -72,12 +72,9 @@ Example_HeaderBar::~Example_HeaderBar()
 
 void Example_HeaderBar::configure_send_receive_button()
 {
-  /* the 'const' is required, to avoid C2668/Ambiguous call errors
-     on some compilers, such as Visual Studio or when compiling without
-     GTKMM_DISABLE_DEPRECATED on g++ */
   auto icon = Gio::ThemedIcon::create("mail-send-receive-symbolic", false);
 
-  m_send_receive_image.set(icon, Gtk::BuiltinIconSize::BUTTON);
+  m_send_receive_image.set(icon);
   m_send_receive_button.add(m_send_receive_image);
 }
 
@@ -85,8 +82,8 @@ void Example_HeaderBar::configure_arrow_buttons()
 {
   m_arrow_buttons_box.get_style_context()->add_class("linked");
 
-  m_left_arrow_button.set_image_from_icon_name("pan-start-symbolic", Gtk::BuiltinIconSize::BUTTON, true);
-  m_right_arrow_button.set_image_from_icon_name("pan-end-symbolic", Gtk::BuiltinIconSize::BUTTON, true);
+  m_left_arrow_button.set_image_from_icon_name("pan-start-symbolic", Gtk::IconSize::INHERIT, true);
+  m_right_arrow_button.set_image_from_icon_name("pan-end-symbolic", Gtk::IconSize::INHERIT, true);
 
   m_arrow_buttons_box.add(m_left_arrow_button);
   m_arrow_buttons_box.add(m_right_arrow_button);
diff --git a/demos/gtk-demo/example_iconbrowser.cc b/demos/gtk-demo/example_iconbrowser.cc
index a87d2ce..feaf109 100644
--- a/demos/gtk-demo/example_iconbrowser.cc
+++ b/demos/gtk-demo/example_iconbrowser.cc
@@ -93,7 +93,7 @@ public:
 protected:
   // Signal handler:
   void on_image_drag_data_get(const Glib::RefPtr<Gdk::DragContext>& context,
-    Gtk::SelectionData& selection_data, guint info, guint time, int size_index);
+    Gtk::SelectionData& selection_data, guint time, int size_index);
 
   Glib::RefPtr<Gdk::Pixbuf> get_icon(int size_index);
 
@@ -195,7 +195,7 @@ Example_IconBrowser::Example_IconBrowser()
   m_header.set_title("Icon Browser");
   m_header.set_show_close_button(true);
   m_header.pack_end(m_search_button);
-  m_search_button.set_image_from_icon_name("edit-find-symbolic", Gtk::BuiltinIconSize::MENU);
+  m_search_button.set_image_from_icon_name("edit-find-symbolic");
   m_header.pack_end(m_header_radio_button_box);
   m_header_radio_button_box.pack_start(m_normal_radio, Gtk::PackOptions::EXPAND_WIDGET);
   m_header_radio_button_box.pack_start(m_symbolic_radio, Gtk::PackOptions::EXPAND_WIDGET);
@@ -230,13 +230,13 @@ Example_IconBrowser::Example_IconBrowser()
   m_icon_view.pack_start(m_icon_cell);
   m_icon_view.pack_start(m_text_cell);
   m_icon_cell.set_padding(10, 10);
-  m_icon_cell.property_stock_size() = static_cast<guint>(Gtk::BuiltinIconSize::DND);
+  m_icon_cell.property_stock_size() = static_cast<guint>(Gtk::IconSize::LARGE);
   m_text_cell.set_padding(10, 10);
   m_text_cell.set_alignment(0.5, 0.5);
 
   // Enable dragging an icon name, and copying it to another program.
   m_icon_view.enable_model_drag_source(
-    std::vector<Gtk::TargetEntry>(), Gdk::ModifierType::BUTTON1_MASK, Gdk::DragAction::COPY);
+    Gtk::TargetList::create({}), Gdk::ModifierType::BUTTON1_MASK, Gdk::DragAction::COPY);
   m_icon_view.drag_source_add_text_targets();
 
   m_icon_view.set_has_tooltip(true);
@@ -907,7 +907,7 @@ DetailDialog::DetailDialog(Gtk::Window& parent)
 
     // Enable dragging an image, and copying it to another program.
     m_image[i].drag_source_set(
-      std::vector<Gtk::TargetEntry>(), Gdk::ModifierType::BUTTON1_MASK, Gdk::DragAction::COPY);
+      Gtk::TargetList::create({}), Gdk::ModifierType::BUTTON1_MASK, Gdk::DragAction::COPY);
     m_image[i].drag_source_add_image_targets();
     m_image[i].signal_drag_data_get().connect(
       sigc::bind(sigc::mem_fun(*this, &DetailDialog::on_image_drag_data_get), i));
@@ -938,7 +938,7 @@ void DetailDialog::set_image(
 
   for (int i = 0; i < n_icon_sizes; ++i)
   {
-    m_image[i].set_from_icon_name(icon_name, Gtk::BuiltinIconSize::MENU);
+    m_image[i].set_from_icon_name(icon_name);
     m_image[i].set_pixel_size(m_icon_size[i]);
     m_image[i].drag_source_set_icon(get_icon(i));
   }
@@ -952,7 +952,7 @@ void DetailDialog::set_image(
 }
 
 void DetailDialog::on_image_drag_data_get(const Glib::RefPtr<Gdk::DragContext>& /* context */,
-  Gtk::SelectionData& selection_data, guint /* info */, guint /* time */, int size_index)
+  Gtk::SelectionData& selection_data, guint /* time */, int size_index)
 {
   selection_data.set_pixbuf(get_icon(size_index));
 }
diff --git a/demos/gtk-demo/example_stack.cc b/demos/gtk-demo/example_stack.cc
index ee4687e..953e43c 100644
--- a/demos/gtk-demo/example_stack.cc
+++ b/demos/gtk-demo/example_stack.cc
@@ -46,7 +46,8 @@ Example_Stack::Example_Stack()
   m_stack.add(m_spinner, "page3");
 
   // Page 1
-  m_image.set_from_icon_name("gtk3-demo", Gtk::BuiltinIconSize::DIALOG);
+  m_image.set_from_icon_name("gtk3-demo");
+  m_image.set_pixel_size(48);
 
   // Page 2
   m_check_button.set_label("Page 2");
diff --git a/demos/gtk-demo/example_stacksidebar.cc b/demos/gtk-demo/example_stacksidebar.cc
index fe9392f..4dd9077 100644
--- a/demos/gtk-demo/example_stacksidebar.cc
+++ b/demos/gtk-demo/example_stacksidebar.cc
@@ -65,7 +65,7 @@ Example_StackSidebar::Example_StackSidebar()
     if (i == 0)
     {
       auto image = Gtk::manage(new Gtk::Image());
-      image->set_from_icon_name("help-about", Gtk::BuiltinIconSize::MENU);
+      image->set_from_icon_name("help-about");
       image->set_pixel_size(256);
       widget = image;
     }
diff --git a/gdk/gdkmm/general.cc b/gdk/gdkmm/general.cc
index ca4f061..b9e9e79 100644
--- a/gdk/gdkmm/general.cc
+++ b/gdk/gdkmm/general.cc
@@ -23,11 +23,6 @@
 namespace Gdk
 {
 
-void flush()
-{
-  gdk_flush();
-}
-
 namespace Cairo
 {
 
diff --git a/gdk/gdkmm/general.h b/gdk/gdkmm/general.h
index f189f17..3477324 100644
--- a/gdk/gdkmm/general.h
+++ b/gdk/gdkmm/general.h
@@ -30,8 +30,6 @@
 namespace Gdk
 {
 
-void flush();
-
 namespace Cairo
 {
 
diff --git a/gdk/src/display.hg b/gdk/src/display.hg
index ad80162..6a0e5be 100644
--- a/gdk/src/display.hg
+++ b/gdk/src/display.hg
@@ -71,9 +71,6 @@ public:
   _WRAP_METHOD(void put_event(const Event& event), gdk_display_put_event)
   _WRAP_METHOD(bool has_pending() const, gdk_display_has_pending)
 
-  // Applications should not set these, they are global user-configured settings.
-  _IGNORE(gdk_display_set_double_click_time, gdk_display_set_double_click_distance)
-
   _WRAP_METHOD(static Glib::RefPtr<Display> get_default(), gdk_display_get_default, refreturn)
 
   _WRAP_METHOD(GdkKeymap* get_keymap(), gdk_keymap_get_for_display)
diff --git a/gdk/src/events.ccg b/gdk/src/events.ccg
index f2908b7..cc7f181 100644
--- a/gdk/src/events.ccg
+++ b/gdk/src/events.ccg
@@ -328,7 +328,7 @@ guint32 EventProperty::get_time() const
 
 GdkAtom EventProperty::get_property_atom() const
 {
-  GdkAtom property = GDK_NONE;
+  GdkAtom property = nullptr;
   GdkPropertyState state = GDK_PROPERTY_DELETE;
   gdk_event_get_property(Event::gobj(), &property, &state);
   return property;
@@ -336,7 +336,7 @@ GdkAtom EventProperty::get_property_atom() const
 
 PropertyState EventProperty::get_property_state() const
 {
-  GdkAtom property = GDK_NONE;
+  GdkAtom property = nullptr;
   GdkPropertyState state = GDK_PROPERTY_DELETE;
   gdk_event_get_property(Event::gobj(), &property, &state);
   return static_cast<PropertyState>(state);
@@ -351,7 +351,7 @@ guint32 EventSelection::get_time() const
 
 GdkAtom EventSelection::get_selection() const
 {
-  GdkAtom selection = GDK_NONE;
+  GdkAtom selection = nullptr;
   gdk_event_get_selection(Event::gobj(), &selection);
   return selection;
 }
@@ -377,7 +377,7 @@ guint32 EventOwnerChange::get_time() const
 
 GdkAtom EventOwnerChange::get_selection() const
 {
-  GdkAtom selection = GDK_NONE;
+  GdkAtom selection = nullptr;
   gdk_event_get_selection(Event::gobj(), &selection);
   return selection;
 }
diff --git a/gdk/src/window.hg b/gdk/src/window.hg
index 83bc099..2bc9b9e 100644
--- a/gdk/src/window.hg
+++ b/gdk/src/window.hg
@@ -71,13 +71,13 @@ public:
   // And we can't make one hand-coded constructor for each gdk_window_new_*()
   // function, because some of them have identical prototypes.
   _WRAP_METHOD(static Glib::RefPtr<Window> create_toplevel(const Glib::RefPtr<Display>& display,
-    EventMask event_mask, int width, int height), gdk_window_new_toplevel)
+    int width, int height), gdk_window_new_toplevel)
   _WRAP_METHOD(static Glib::RefPtr<Window> create_popup(const Glib::RefPtr<Display>& display,
-    EventMask event_mask, const Rectangle& position), gdk_window_new_popup)
+    const Rectangle& position), gdk_window_new_popup)
   //TODO: Wrap or ignore? The documentation says: You most likely do not want to use this function.
   //_WRAP_METHOD(static Glib::RefPtr<Window> create_temp(const Glib::RefPtr<Display>& display), 
gdk_window_new_temp)
   _WRAP_METHOD(static Glib::RefPtr<Window> create_child(const Glib::RefPtr<Window>& parent,
-    EventMask event_mask, const Rectangle& position), gdk_window_new_child)
+    const Rectangle& position), gdk_window_new_child)
 
   _WRAP_METHOD(Type get_window_type() const, gdk_window_get_window_type)
 
diff --git a/gtk/gtkmm/targetentry.cc b/gtk/gtkmm/targetentry.cc
index 129c789..7e2f946 100644
--- a/gtk/gtkmm/targetentry.cc
+++ b/gtk/gtkmm/targetentry.cc
@@ -1,6 +1,3 @@
-// -*- c++ -*-
-/* $Id$ */
-
 /* targetentry.cc
  *
  * Copyright (C) 1998-2002 The gtkmm Development Team
@@ -33,24 +30,21 @@ TargetEntry::TargetEntry()
   memset(&gobject_, 0, sizeof(gobject_));
 }
 
-TargetEntry::TargetEntry(const Glib::ustring& target, Gtk::TargetFlags flags, guint info)
+TargetEntry::TargetEntry(const Glib::ustring& target, Gtk::TargetFlags flags)
 {
   set_target(target);
   set_flags(flags);
-  set_info(info);
 }
 
 TargetEntry::TargetEntry(const GtkTargetEntry& gobject)
 {
   set_target(gobject.target);
-  set_info(gobject.info);
   set_flags(TargetFlags(gobject.flags));
 }
 
 TargetEntry::TargetEntry(const TargetEntry& src)
 {
   set_target(src.get_target());
-  set_info(src.get_info());
   set_flags(src.get_flags());
 }
 
@@ -66,7 +60,6 @@ TargetEntry& TargetEntry::operator=(const TargetEntry& src)
   if(&src != this)
   {
     set_target(src.get_target());
-    set_info(src.get_info());
     set_flags(src.get_flags());
   }
 
@@ -93,16 +86,6 @@ void TargetEntry::set_flags(Gtk::TargetFlags flags)
   gobject_.flags = (guint)(flags);
 }
 
-guint TargetEntry::get_info() const
-{
-  return gobject_.info;
-}
-
-void TargetEntry::set_info(guint info)
-{
-  gobject_.info = info;
-}
-
 GtkTargetEntry* TargetEntry::gobj()
 {
   return &gobject_;
diff --git a/gtk/gtkmm/targetentry.h b/gtk/gtkmm/targetentry.h
index 0db2bd1..0cf93d0 100644
--- a/gtk/gtkmm/targetentry.h
+++ b/gtk/gtkmm/targetentry.h
@@ -1,9 +1,6 @@
-// -*- c++ -*-
 #ifndef _GTKMM_TARGETENTRY_H
 #define _GTKMM_TARGETENTRY_H
 
-/* $Id$ */
-
 /* targetentry.h
  *
  * Copyright (C) 2002 The gtkmm Development Team
@@ -42,7 +39,7 @@ class TargetEntry
 {
 public:
   TargetEntry();
-  explicit TargetEntry(const Glib::ustring& target, Gtk::TargetFlags flags = Gtk::TargetFlags(0), guint info 
= 0);
+  explicit TargetEntry(const Glib::ustring& target, Gtk::TargetFlags flags = Gtk::TargetFlags(0));
   explicit TargetEntry(const GtkTargetEntry& gobject);
   TargetEntry(const TargetEntry& src);
   virtual ~TargetEntry() noexcept;
@@ -55,9 +52,6 @@ public:
   Gtk::TargetFlags get_flags() const;
   void set_flags(Gtk::TargetFlags flags);
 
-  guint get_info() const;
-  void set_info(guint info);
-
   //Use this when you have to use an array of GdkTargetEntrys
   //This TargetEntry will still own the string memory.
   GtkTargetEntry* gobj();
diff --git a/gtk/src/button.ccg b/gtk/src/button.ccg
index e3571f4..3037d4f 100644
--- a/gtk/src/button.ccg
+++ b/gtk/src/button.ccg
@@ -34,13 +34,14 @@ void Button::set_image_from_icon_name(const Glib::ustring& icon_name, IconSize s
   // appropriately for a button with an icon.
 
   set_icon_name(icon_name);
-  if (size == static_cast<int>(BuiltinIconSize::BUTTON) && !use_fallback)
+  if (size == IconSize::INHERIT && !use_fallback)
     return;
 
   auto image = dynamic_cast<Image*>(get_child());
   if (image)
   {
-    image->set_from_icon_name(icon_name, size);
+    image->set_from_icon_name(icon_name);
+    image->set_icon_size(size);
     image->property_use_fallback() = use_fallback;
   }
 }
diff --git a/gtk/src/button.hg b/gtk/src/button.hg
index 9d0a90d..79ebfd0 100644
--- a/gtk/src/button.hg
+++ b/gtk/src/button.hg
@@ -88,14 +88,14 @@ public:
    * and @a use_fallback, it's identical to set_icon_name().
    *
    * @param icon_name An icon name.
-   * @param size An icon size. Can be either an IconSize or a BuiltinIconSize.
+   * @param size An icon size.
    * @param use_fallback Whether the icon displayed in the Gtk::Image will use
    *        standard icon names fallback. See also Gtk::IconLookupFlags::GENERIC_FALLBACK.
    *
    * @newin{3,12}
    */
   void set_image_from_icon_name(const Glib::ustring& icon_name,
-    IconSize size = BuiltinIconSize::BUTTON, bool use_fallback = false);
+    IconSize size = IconSize::INHERIT, bool use_fallback = false);
 
   _WRAP_SIGNAL(void clicked(), "clicked")
   _IGNORE_SIGNAL("activate") // Action signal
diff --git a/gtk/src/cellrendererpixbuf.hg b/gtk/src/cellrendererpixbuf.hg
index a8c3cb2..631a46f 100644
--- a/gtk/src/cellrendererpixbuf.hg
+++ b/gtk/src/cellrendererpixbuf.hg
@@ -49,7 +49,6 @@ public:
   _WRAP_PROPERTY("pixbuf_expander_open", Glib::RefPtr<Gdk::Pixbuf>)
   _WRAP_PROPERTY("pixbuf_expander_closed", Glib::RefPtr<Gdk::Pixbuf>)
   _WRAP_PROPERTY("stock_size", guint)
-  _WRAP_PROPERTY("stock_detail", Glib::ustring)
   _WRAP_PROPERTY("icon-name", Glib::ustring)
   _WRAP_PROPERTY("gicon", Glib::RefPtr<Gio::Icon>)
   _WRAP_PROPERTY("surface", Cairo::RefPtr<Cairo::Surface>)
diff --git a/gtk/src/clipboard.ccg b/gtk/src/clipboard.ccg
index f4c24bc..5c6a0b6 100644
--- a/gtk/src/clipboard.ccg
+++ b/gtk/src/clipboard.ccg
@@ -53,14 +53,14 @@ SignalProxy_GetClear::SignalProxy_GetClear(const Gtk::Clipboard::SlotGet& slot_g
 {}
 
 static void SignalProxy_GetClear_gtk_callback_get(GtkClipboard*, GtkSelectionData* selection_data,
-                                            unsigned int info, void* data)
+                                            void* data)
 {
   const auto self = static_cast<SignalProxy_GetClear*>(data);
 
   try
   {
     Gtk::SelectionData_WithoutOwnership cppSelectionData(selection_data);
-    (self->slot_get_)(cppSelectionData, info);
+    (self->slot_get_)(cppSelectionData);
   }
   catch(...)
   {
@@ -198,7 +198,7 @@ static void SignalProxy_ImageReceived_gtk_callback(GtkClipboard*, GdkPixbuf* ima
 namespace Gtk
 {
 
-bool Clipboard::set(const std::vector<TargetEntry>& targets,
+bool Clipboard::set(const Glib::RefPtr<TargetList>& targets,
                     const SlotGet& slot_get, const SlotClear& slot_clear)
 {
   // Create a signal proxy. A pointer to this will be passed through the callback's data parameter.
@@ -206,8 +206,7 @@ bool Clipboard::set(const std::vector<TargetEntry>& targets,
 
   return gtk_clipboard_set_with_data(
       gobj(),
-      Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data (),
-      targets.size(),
+      targets->gobj(),
       &SignalProxy_GetClear_gtk_callback_get,
       &SignalProxy_GetClear_gtk_callback_clear,
       pSignalProxy);
@@ -291,21 +290,16 @@ std::vector<Glib::ustring> Clipboard::wait_for_targets() const
   return Glib::ArrayHandler<Glib::ustring, Gdk::AtomStringTraits>::array_to_vector(atoms, n_targets, 
Glib::OWNERSHIP_SHALLOW);
 }
 
-void Clipboard::set_can_store(const std::vector<TargetEntry>& targets)
-{
-  gtk_clipboard_set_can_store( gobj(), Glib::ArrayHandler<TargetEntry, 
TargetEntryTraits>::vector_to_array(targets).data (), targets.size() );
-}
-
 void Clipboard::set_can_store()
 {
-  gtk_clipboard_set_can_store( gobj(), nullptr, 0 /* See C docs */ );
+  gtk_clipboard_set_can_store(gobj(), nullptr);
 }
 
 std::string Clipboard::wait_for_rich_text(const Glib::RefPtr<TextBuffer>& buffer, std::string& format)
 {
   std::string result;
 
-  GdkAtom format_atom = GDK_NONE;
+  GdkAtom format_atom = nullptr;
   gsize length = 0;
   guint8* text = gtk_clipboard_wait_for_rich_text(const_cast<GtkClipboard*>(gobj()), buffer->gobj(), 
&format_atom, &length);
   if(text && length)
diff --git a/gtk/src/clipboard.hg b/gtk/src/clipboard.hg
index bc58903..80b0826 100644
--- a/gtk/src/clipboard.hg
+++ b/gtk/src/clipboard.hg
@@ -21,7 +21,7 @@
 #include <gdkmm/display.h>
 #include <gdkmm/events.h>
 #include <gdkmm/pixbuf.h>
-#include <gtkmm/targetentry.h>
+#include <gtkmm/targetlist.h>
 #include <gtkmm/selectiondata.h>
 #include <glibmm/object.h>
 
@@ -75,11 +75,11 @@ public:
   _WRAP_METHOD(Glib::RefPtr<Gdk::Display> get_display(), gtk_clipboard_get_display, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Display> get_display() const, gtk_clipboard_get_display, refreturn, 
constversion)
 
-  /// For instance: void on_get(Gtk::SelectionData& selection_data, guint info);
-  typedef sigc::slot<void(SelectionData&, guint)> SlotGet;
+  /// For instance: void on_get(Gtk::SelectionData& selection_data);
+  using SlotGet = sigc::slot<void(SelectionData&)>;
 
   /// For instance: void on_clear();
-  typedef sigc::slot<void()> SlotClear;
+  using SlotClear = sigc::slot<void()>;
 
  /** Virtually sets the contents of the specified clipboard by providing
   * a list of supported formats for the clipboard data and a function
@@ -94,7 +94,7 @@ public:
   *               the clipboard data failed then the provided callback methods
   *               will be ignored.
   */
-  bool set(const std::vector<TargetEntry>& targets, const SlotGet& slot_get, const SlotClear& slot_clear);
+  bool set(const Glib::RefPtr<TargetList>& targets, const SlotGet& slot_get, const SlotClear& slot_clear);
   _IGNORE(gtk_clipboard_set_with_owner, gtk_clipboard_set_with_data)
 
   _WRAP_METHOD(Glib::RefPtr<Glib::Object> get_owner(), gtk_clipboard_get_owner, refreturn)
@@ -295,9 +295,9 @@ public:
    * This value is reset when the clipboard owner changes. Where the clipboard data is stored is platform
    * dependent, see Gdk::Display::store_clipboard() for more information.
    *
-   * @param targets Array containing information about which forms should be stored.
+   * @param targets The targets (data formats) in which the functions can provide the data.
    */
-  void set_can_store(const std::vector<TargetEntry>& targets);
+  _WRAP_METHOD(void set_can_store(const Glib::RefPtr<TargetList>& targets), gtk_clipboard_set_can_store)
 
   /** Hints that all forms of clipboard data should be stored somewhere when the application exits or when 
store()
    * is called.
diff --git a/gtk/src/entry.ccg b/gtk/src/entry.ccg
index a82fcef..63f0cf9 100644
--- a/gtk/src/entry.ccg
+++ b/gtk/src/entry.ccg
@@ -54,11 +54,6 @@ void Entry::set_icon_tooltip_markup(const Glib::ustring& tooltip, IconPosition i
   gtk_entry_set_icon_tooltip_markup(gobj(), static_cast<GtkEntryIconPosition>(icon_pos), tooltip.c_str());
 }
 
-void Entry::set_icon_drag_source(const Glib::RefPtr<TargetList>& target_list, Gdk::DragAction actions, 
IconPosition icon_pos)
-{
-  gtk_entry_set_icon_drag_source(gobj(), static_cast<GtkEntryIconPosition>(icon_pos), 
const_cast<GtkTargetList*>(Glib::unwrap(target_list)), static_cast<GdkDragAction>(actions));
-}
-
 Gdk::Rectangle Entry::get_icon_area(IconPosition icon_pos) const
 {
   Gdk::Rectangle result;
diff --git a/gtk/src/entry.hg b/gtk/src/entry.hg
index 2b5a636..0237b91 100644
--- a/gtk/src/entry.hg
+++ b/gtk/src/entry.hg
@@ -160,9 +160,9 @@ public:
 
   _WRAP_METHOD(Glib::ustring get_icon_tooltip_markup(IconPosition icon_pos = IconPosition::PRIMARY) const, 
gtk_entry_get_icon_tooltip_markup)
 
-  _WRAP_METHOD_DOCS_ONLY(gtk_entry_set_icon_drag_source)
-  void set_icon_drag_source(const Glib::RefPtr<TargetList>& target_list, Gdk::DragAction actions = 
Gdk::DragAction::COPY, IconPosition icon_pos = IconPosition::PRIMARY);
-  _IGNORE(gtk_entry_set_icon_drag_source)
+  _WRAP_METHOD(void set_icon_drag_source(const Glib::RefPtr<TargetList>& target_list{.},
+    Gdk::DragAction actions{.} = Gdk::DragAction::COPY,
+    IconPosition icon_pos{.} = IconPosition::PRIMARY), gtk_entry_set_icon_drag_source)
 
   /** Returns the area where entry's icon at @a icon_pos is drawn.
    * This function is useful when drawing something to the
diff --git a/gtk/src/enums.ccg b/gtk/src/enums.ccg
index d6325f1..42c7c23 100644
--- a/gtk/src/enums.ccg
+++ b/gtk/src/enums.ccg
@@ -18,21 +18,9 @@
 
 #include <gtkmm/enums.h>
 
-// static
-GType Glib::Value<Gtk::IconSize>::value_type()
-{
-  return gtk_icon_size_get_type();
-}
-
 namespace Gtk
 {
 
-// static
-bool IconSize::lookup(IconSize size, int& width, int& height)
-{
-  return gtk_icon_size_lookup((GtkIconSize) int(size), &width, &height);
-}
-
 float _gtkmm_align_float_from_enum(Align value)
 {
   //Choose the float alignment value appropriate for this human-readable enum value:
diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg
index 8bc27dd..130b8e5 100644
--- a/gtk/src/enums.hg
+++ b/gtk/src/enums.hg
@@ -32,7 +32,7 @@ _WRAP_ENUM(ArrowType, GtkArrowType)
 _WRAP_ENUM(ButtonBoxStyle, GtkButtonBoxStyle)
 _WRAP_ENUM(DeleteType, GtkDeleteType)
 _WRAP_ENUM(DirectionType, GtkDirectionType)
-_WRAP_ENUM(BuiltinIconSize, GtkIconSize)
+_WRAP_ENUM(IconSize, GtkIconSize)
 _WRAP_ENUM(TextDirection, GtkTextDirection)
 _WRAP_ENUM(Justification, GtkJustification)
 _WRAP_ENUM(MenuDirectionType, GtkMenuDirectionType)
@@ -64,83 +64,6 @@ _WRAP_ENUM(InputPurpose, GtkInputPurpose)
 _WRAP_ENUM(InputHints, GtkInputHints)
 _WRAP_ENUM(BaselinePosition, GtkBaselinePosition)
 
-
-/* We use a class to implement the GtkIconSize enum, because you can register
- * new "enum" values.  The strict type rules of C++ don't allow using an enum
- * like that.  Gtk::BuiltinIconSize is the actual GtkIconSize wrapper enum.
- */
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-class Settings;
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
-/**
- * Represents registered icon sizes.
- * You can also use a Gtk::BuiltinIconSize instead of an IconSize.
- */
-class IconSize
-{
-private:
-  int size_;
-
-public:
-  IconSize()                     : size_(0) {}
-  IconSize(BuiltinIconSize size) : size_(static_cast<int>(size)) {}
-
-  // Behave like an ordinary enum.
-  explicit IconSize(int size) : size_ (size) {}
-  operator int() const { return size_; }
-
-  /** Obtains the pixel size of a semantic icon size, possibly modified by user preferences for the default 
Gtk::Settings.
-   * Normally size would be Gtk::BuiltinIconSize::MENU, Gtk::BuiltinIconSize::BUTTON, etc.
-   * This function isn't normally needed because Gtk::Widget::render_icon() is the usual way to get an icon 
for
-   * rendering - then just look at the size of the rendered pixbuf. The rendered pixbuf may not even 
correspond
-   * to the width/height returned by IconSize::lookup(), because themes are free to render the pixbuf 
however they
-   * like, including changing the usual size.
-   *
-   * @param size An icon size.
-   * @param width Location to store icon width.
-   * @param height Location to store icon height.
-   * @result true if size was a valid size.
-   */
-  static bool lookup(IconSize size, int& width, int& height);
-};
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-struct IconSizeTraits
-{
-  typedef Gtk::IconSize CppType;
-  typedef GtkIconSize   CType;
-  typedef GtkIconSize   CTypeNonConst;
-
-  static CType   to_c_type      (CType c_obj)            { return c_obj; }
-  static void    release_c_type (CType)                  {}
-  static CType   to_c_type      (const CppType& cpp_obj) { int value (cpp_obj); return static_cast<CType> 
(value); }
-  static CppType to_cpp_type    (CType c_obj)            { return CppType (c_obj); }
-};
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
-} // namespace Gtk
-
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-namespace Glib
-{
-
-template <>
-class Value<Gtk::IconSize> : public Glib::Value_Enum<Gtk::IconSize>
-{
-public:
-  static GType value_type() G_GNUC_CONST;
-};
-
-} // namespace Glib
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-namespace Gtk
-{
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 //We need this because we can't just use floats for enum value.
 float _gtkmm_align_float_from_enum(Align value);
diff --git a/gtk/src/iconview.ccg b/gtk/src/iconview.ccg
index a7adb01..a8908ee 100644
--- a/gtk/src/iconview.ccg
+++ b/gtk/src/iconview.ccg
@@ -174,18 +174,6 @@ bool IconView::get_dest_item_at_pos(int drag_x, int drag_y, DropPosition& pos) c
   return gtk_icon_view_get_dest_item_at_pos(const_cast<GtkIconView*>(gobj()), drag_x, drag_y, nullptr, 
(GtkIconViewDropPosition*)(&pos));
 }
 
-
-void IconView::enable_model_drag_source(const std::vector<TargetEntry>& targets, Gdk::ModifierType 
start_button_mask, Gdk::DragAction actions)
-{
-  gtk_icon_view_enable_model_drag_source(gobj(), (GdkModifierType)start_button_mask, 
Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data (), targets.size(), 
(GdkDragAction)actions);
-}
-
-
-void  IconView::enable_model_drag_dest(const std::vector<TargetEntry>& targets, Gdk::DragAction actions)
-{
-  gtk_icon_view_enable_model_drag_dest(gobj(), Glib::ArrayHandler<TargetEntry, 
TargetEntryTraits>::vector_to_array(targets).data(), targets.size(), (GdkDragAction)actions);
-}
-
 bool
 IconView::get_tooltip_context_path(int& x, int& y,
                                    bool keyboard_tip,
diff --git a/gtk/src/iconview.hg b/gtk/src/iconview.hg
index 14d28be..183b037 100644
--- a/gtk/src/iconview.hg
+++ b/gtk/src/iconview.hg
@@ -239,25 +239,15 @@ public:
   _WRAP_METHOD(void scroll_to_path(const TreeModel::Path& path, bool use_align, gfloat row_align, gfloat 
col_align), gtk_icon_view_scroll_to_path)
 
 /* Drag-and-Drop support */
-  /**
-   * Turns the IconView into a drag source for automatic DND.
-   *
-   * @param targets Standard container of targets that the drag will support.
-   * @param start_button_mask Mask of allowed buttons to start drag.
-   * @param actions The bitmask of possible actions for a drag from this widget.
-   */
-  void enable_model_drag_source(const std::vector<TargetEntry>& targets,
-                                Gdk::ModifierType start_button_mask = Gdk::ModifierType::MODIFIER_MASK,
-                                Gdk::DragAction actions = Gdk::DragAction::COPY | Gdk::DragAction::MOVE);
-  _IGNORE(gtk_icon_view_enable_model_drag_source)
 
-  /** Turns the IconView into a drop destination for automatic DND.
-   *
-   * @param targets The table of targets that the drag will support.
-   * @param actions The bitmask of possible actions for a drag from this widget.
-   */
-  void enable_model_drag_dest(const std::vector<TargetEntry>& targets, Gdk::DragAction actions = 
Gdk::DragAction::COPY | Gdk::DragAction::MOVE);
-  _IGNORE(gtk_icon_view_enable_model_drag_dest)
+  _WRAP_METHOD(void enable_model_drag_source(const Glib::RefPtr<TargetList>& targets{.},
+     Gdk::ModifierType start_button_mask{.} = Gdk::ModifierType::MODIFIER_MASK,
+     Gdk::DragAction actions{.} = Gdk::DragAction::COPY | Gdk::DragAction::MOVE),
+     gtk_icon_view_enable_model_drag_source)
+
+  _WRAP_METHOD(void enable_model_drag_dest(const Glib::RefPtr<TargetList>& targets,
+     Gdk::DragAction actions = Gdk::DragAction::COPY | Gdk::DragAction::MOVE),
+     gtk_icon_view_enable_model_drag_dest)
 
   _WRAP_METHOD(void unset_model_drag_source(), gtk_icon_view_unset_model_drag_source)
   _WRAP_METHOD(void unset_model_drag_dest(), gtk_icon_view_unset_model_drag_dest)
diff --git a/gtk/src/image.ccg b/gtk/src/image.ccg
index 0c40348..e0375bd 100644
--- a/gtk/src/image.ccg
+++ b/gtk/src/image.ccg
@@ -31,28 +31,4 @@ Image::Image(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf)
   gtk_image_set_from_pixbuf(gobj(), Glib::unwrap(pixbuf));
 }
 
-Glib::ustring Image::get_icon_name() const
-{
-  const gchar* pchIconName = nullptr;
-  gtk_image_get_icon_name(const_cast<GtkImage*>(gobj()), &pchIconName, nullptr);
-  return Glib::convert_const_gchar_ptr_to_ustring(pchIconName);
-}
-
-Glib::RefPtr<Gio::Icon> Image::get_gicon(Gtk::IconSize& icon_size)
-{
-  GIcon* cicon = nullptr;
-  GtkIconSize cicon_size = GTK_ICON_SIZE_INVALID;
-  gtk_image_get_gicon(gobj(), &cicon, &cicon_size);
-
-  icon_size = Gtk::IconSize(cicon_size);
-  return Glib::wrap(cicon);
-}
-
-Glib::RefPtr<const Gio::Icon> Image::get_gicon(Gtk::IconSize& icon_size) const
-{
-  auto nonconstthis = const_cast<Image*>(this);
-  return nonconstthis->get_gicon(icon_size);
-}
-
-
 } // namespace Gtk
diff --git a/gtk/src/image.hg b/gtk/src/image.hg
index 290031c..1c160d0 100644
--- a/gtk/src/image.hg
+++ b/gtk/src/image.hg
@@ -74,12 +74,12 @@ public:
   _WRAP_METHOD(void set(const std::string& filename), gtk_image_set_from_file)
   _WRAP_METHOD(void set_from_resource(const std::string& resource_path), gtk_image_set_from_resource)
   _WRAP_METHOD(void set(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf), gtk_image_set_from_pixbuf)
-  _WRAP_METHOD(void set(const Glib::RefPtr<Gdk::Texture>& pixbuf), gtk_image_set_from_texture)
-  _WRAP_METHOD(void set(const Glib::RefPtr<const Gio::Icon>& icon, IconSize size), gtk_image_set_from_gicon)
+  _WRAP_METHOD(void set(const Glib::RefPtr<Gdk::Texture>& texture), gtk_image_set_from_texture)
+  _WRAP_METHOD(void set(const Glib::RefPtr<const Gio::Icon>& icon), gtk_image_set_from_gicon)
 
   _WRAP_METHOD(void set(const Cairo::RefPtr<Cairo::Surface>& surface), gtk_image_set_from_surface)
 
-  _WRAP_METHOD(void set_from_icon_name(const Glib::ustring& icon_name, IconSize size), 
gtk_image_set_from_icon_name)
+  _WRAP_METHOD(void set_from_icon_name(const Glib::ustring& icon_name), gtk_image_set_from_icon_name)
 
   _WRAP_METHOD(void clear(), gtk_image_clear)
 
@@ -91,36 +91,18 @@ public:
   _WRAP_METHOD(Glib::RefPtr<Gdk::Texture> get_texture(), gtk_image_get_texture, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Texture> get_texture() const, gtk_image_get_texture, refreturn, 
constversion)
 
- /** Gets the Gio::Icon and size being displayed by the Gtk::Image.
-  * The storage type of the image must be Image::Type::EMPTY or
-  * Image::Type::GICON (see get_storage_type()).
-  *
-  * @param[out] icon_size A place to store an icon size.
-  *
-  * @newin{2,14}
-  */
-  Glib::RefPtr<Gio::Icon> get_gicon(Gtk::IconSize& icon_size);
-
- /** Gets the Gio::Icon and size being displayed by the Gtk::Image.
-  * The storage type of the image must be Image::Type::EMPTY or
-  * Image::Type::GICON (see get_storage_type()).
-  *
-  * @param[out] icon_size A place to store an icon size.
-  *
-  * @newin{2,14}
-  */
-  Glib::RefPtr<const Gio::Icon> get_gicon(Gtk::IconSize& icon_size) const;
-  _IGNORE(gtk_image_get_gicon)
-
-  Glib::ustring get_icon_name() const;
-  Glib::ustring get_icon_name(IconSize& size);
-  _IGNORE(gtk_image_get_icon_name)
+  _WRAP_METHOD(void set_icon_size(IconSize icon_size), gtk_image_set_icon_size)
+  _WRAP_METHOD(IconSize get_icon_size() const, gtk_image_get_icon_size)
+
+  _WRAP_METHOD(Glib::RefPtr<Gio::Icon> get_gicon(), gtk_image_get_gicon, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Gio::Icon> get_gicon() const, gtk_image_get_gicon, refreturn, constversion)
+  _WRAP_METHOD(Glib::ustring get_icon_name() const, gtk_image_get_icon_name)
 
  _WRAP_METHOD(int get_pixel_size() const, gtk_image_get_pixel_size)
  _WRAP_METHOD(void set_pixel_size(int pixel_size), gtk_image_set_pixel_size)
 
   _WRAP_PROPERTY("file", Glib::ustring)
-  _WRAP_PROPERTY("icon-size", int)
+  _WRAP_PROPERTY("icon-size", IconSize)
   _WRAP_PROPERTY("pixel-size", int)
   _WRAP_PROPERTY("icon-name", Glib::ustring)
   _WRAP_PROPERTY("storage-type", Type)
diff --git a/gtk/src/scalebutton.ccg b/gtk/src/scalebutton.ccg
index 0e2e3ce..5c495fc 100644
--- a/gtk/src/scalebutton.ccg
+++ b/gtk/src/scalebutton.ccg
@@ -23,17 +23,17 @@
 namespace Gtk
 {
 
-ScaleButton::ScaleButton(IconSize size, double min, double max, double step, const 
std::vector<Glib::ustring>& icons)
+ScaleButton::ScaleButton(double min, double max, double step, const std::vector<Glib::ustring>& icons)
 :
-  _CONSTRUCT("size", static_cast<GtkIconSize>(int(size)), "icons", 
Glib::ArrayHandler<Glib::ustring>::vector_to_array(icons).data(), nullptr)
+  _CONSTRUCT("icons", Glib::ArrayHandler<Glib::ustring>::vector_to_array(icons).data(), nullptr)
 {
   auto adjustment = Adjustment::create(min, min, max, step, 10 * step, 0);
   set_adjustment(adjustment);
 }
 
-ScaleButton::ScaleButton(IconSize size, double min, double max, double step)
+ScaleButton::ScaleButton(double min, double max, double step)
 :
-  _CONSTRUCT("size", static_cast<GtkIconSize>(int(size)))
+  _CONSTRUCT()
 {
   auto adjustment = Adjustment::create(min, min, max, step, 10 * step, 0);
   set_adjustment(adjustment);
diff --git a/gtk/src/scalebutton.hg b/gtk/src/scalebutton.hg
index e93ef01..960bbe6 100644
--- a/gtk/src/scalebutton.hg
+++ b/gtk/src/scalebutton.hg
@@ -48,28 +48,26 @@ class ScaleButton
 
 public:
   //We custom-implement the constructor because gtk_scale_button_new() does more than just call 
g_object_new().
-  /** Creates a GtkScaleButton, with a range between min and max , with a stepping of step.
+  /** Creates a %ScaleButton, with a range between min and max, with a stepping of step.
    *
-   * @param size A stock icon size.
    * @param min The minimum value of the scale (usually 0).
    * @param max The maximum value of the scale (usually 100).
    * @param step The stepping of value when a scroll-wheel event, or up/down arrow event occurs (usually 2).
    * @param icons A vector of icon names.
    */
-  explicit ScaleButton(IconSize size, double min, double max, double step, const std::vector<Glib::ustring>& 
icons);
+  explicit ScaleButton(double min, double max, double step, const std::vector<Glib::ustring>& icons);
   _IGNORE(gtk_scale_button_new)
 
   //We add the constructor without icons because the C functions allows that to be NULL.
-  /** Creates a GtkScaleButton, with a range between min and max , with a stepping of step.
+  /** Creates a %ScaleButton, with a range between min and max, with a stepping of step.
    *
-   * @param size A stock icon size.
    * @param min The minimum value of the scale (usually 0).
    * @param max The maximum value of the scale (usually 100).
    * @param step The stepping of value when a scroll-wheel event, or up/down arrow event occurs (usually 2).
    *
    * @newin{3,16}
    */
-  explicit ScaleButton(IconSize size, double min, double max, double step);
+  explicit ScaleButton(double min, double max, double step);
 
 #m4 _CONVERSION(`const std::vector<Glib::ustring>&',`const 
gchar**',`Glib::ArrayHandler<Glib::ustring>::vector_to_array($3).data ()')
   _WRAP_METHOD(void set_icons(const std::vector<Glib::ustring>& icons), gtk_scale_button_set_icons)
@@ -99,7 +97,6 @@ public:
   _IGNORE_SIGNAL("popdown")
 
   _WRAP_PROPERTY("value", double)
-  _WRAP_PROPERTY("size", IconSize)
   _WRAP_PROPERTY("adjustment", Glib::RefPtr<Adjustment>)
   _WRAP_PROPERTY("icons", std::vector<Glib::ustring>)
 };
diff --git a/gtk/src/targetlist.hg b/gtk/src/targetlist.hg
index 8865815..620ba19 100644
--- a/gtk/src/targetlist.hg
+++ b/gtk/src/targetlist.hg
@@ -21,7 +21,6 @@ _DEFS(gtkmm,gtk)
 
 #include <gtkmm/enums.h>
 #include <gtkmm/targetentry.h>
-//#include <gtkmm/textbuffer.h>
 #include <gdkmm/types.h>
 
 _CC_INCLUDE(gtk/gtk.h)
@@ -41,18 +40,26 @@ public:
   static Glib::RefPtr<Gtk::TargetList> create(const std::vector<TargetEntry>& targets);
 
 #m4 _CONVERSION(`TargetFlags', `guint', `($2)($3)')
-  _WRAP_METHOD(void add(const Glib::ustring& target, TargetFlags flags = TargetFlags(0), guint info = 0), 
gtk_target_list_add)
+  _WRAP_METHOD(void add(const Glib::ustring& target, TargetFlags flags = TargetFlags(0)), 
gtk_target_list_add)
   void add(const std::vector<TargetEntry>& targets);
   _IGNORE(gtk_target_list_add_table)
 
-  _WRAP_METHOD(void add_text_targets(guint info), gtk_target_list_add_text_targets)
-  _WRAP_METHOD(void add_rich_text_targets(guint info, bool deserializable, const Glib::RefPtr<TextBuffer>& 
buffer), gtk_target_list_add_rich_text_targets)
+  _WRAP_METHOD(void add_text_targets(), gtk_target_list_add_text_targets)
+  _WRAP_METHOD(void add_rich_text_targets(bool deserializable, const Glib::RefPtr<TextBuffer>& buffer), 
gtk_target_list_add_rich_text_targets)
 
-  _WRAP_METHOD(void add_image_targets(guint info, bool writable), gtk_target_list_add_image_targets)
-  _WRAP_METHOD(void add_uri_targets(guint info), gtk_target_list_add_uri_targets)
+  _WRAP_METHOD(void add_image_targets(bool writable), gtk_target_list_add_image_targets)
+
+  //TODO: Remove the hand-coded description when gtk+'s description contains
+  // the correct number of parameters (no @info).
+  /** Appends the URI targets supported by Gtk::SelectionData to
+   * the target list.
+   *
+   * @newin{2,6}
+   */
+  _WRAP_METHOD(void add_uri_targets(), gtk_target_list_add_uri_targets)
 
   _WRAP_METHOD(void remove(const Glib::ustring& target), gtk_target_list_remove)
-  _WRAP_METHOD(bool find(const Glib::ustring& target, guint* info) const, gtk_target_list_find)
+  _WRAP_METHOD(bool find(const Glib::ustring& target) const, gtk_target_list_find)
 };
 
 } // namespace Gtk
diff --git a/gtk/src/textchildanchor.hg b/gtk/src/textchildanchor.hg
index 87bb60e..3e45380 100644
--- a/gtk/src/textchildanchor.hg
+++ b/gtk/src/textchildanchor.hg
@@ -47,14 +47,6 @@ public:
 #m4 _CONVERSION(`GList*',`std::vector<const Widget*>',`Glib::ListHandler<const Widget*>::list_to_vector($3, 
Glib::OWNERSHIP_SHALLOW)')
   _WRAP_METHOD(std::vector<const Widget*> get_widgets() const, gtk_text_child_anchor_get_widgets)
   _WRAP_METHOD(bool get_deleted() const, gtk_text_child_anchor_get_deleted)
-
-  //These methods, and GtkTextLayout are semi-private:
-  _IGNORE(gtk_text_child_anchor_register_child, gtk_text_child_anchor_unregister_child, 
gtk_text_child_anchor_queue_resize)
-  //_WRAP_METHOD(void Register_child(TextLayout& layout), gtk_text_child_anchor_register_child)
-  //_WRAP_METHOD(void unregister_child(Widget& child), gtk_text_child_anchor_unregister_child)
-  //_WRAP_METHOD(void queue_resize(TextLayout& layout), gtk_text_child_anchor_queue_resize)
-
 };
 
 } //namespace Gtk
-
diff --git a/gtk/src/toolbar.hg b/gtk/src/toolbar.hg
index 8a9161f..cbb511e 100644
--- a/gtk/src/toolbar.hg
+++ b/gtk/src/toolbar.hg
@@ -74,13 +74,6 @@ public:
 
   _WRAP_METHOD(void unset_toolbar_style(), gtk_toolbar_unset_style)
 
-  //Note that gtk_toolbar_set_icon_size() and gtk_toolbar_unset_icon_size() were
-  //deprecated sometime before GTK+ 2.4, but were undeprecated in GTK+ 2.12.
-  _WRAP_METHOD(void set_icon_size(IconSize icon_size), gtk_toolbar_set_icon_size)
-  _WRAP_METHOD(void unset_icon_size(), gtk_toolbar_unset_icon_size)
-
-  _WRAP_METHOD(IconSize get_icon_size() const, gtk_toolbar_get_icon_size)
-
   _WRAP_METHOD(int get_drop_index(int x, int y) const, gtk_toolbar_get_drop_index)
   _WRAP_METHOD(void set_drop_highlight_item(ToolItem& tool_item, int index), 
gtk_toolbar_set_drop_highlight_item)
   void unset_drop_highlight_item();
@@ -93,8 +86,6 @@ public:
 
   _WRAP_PROPERTY("toolbar_style", ToolbarStyle)
   _WRAP_PROPERTY("show_arrow", bool)
-  _WRAP_PROPERTY("icon-size", IconSize)
-  _WRAP_PROPERTY("icon-size-set", bool)
 
   _WRAP_CHILD_PROPERTY("expand", bool)
   _WRAP_CHILD_PROPERTY("homogeneous", bool)
diff --git a/gtk/src/toolitem.hg b/gtk/src/toolitem.hg
index 98cb595..0464013 100644
--- a/gtk/src/toolitem.hg
+++ b/gtk/src/toolitem.hg
@@ -67,7 +67,6 @@ public:
   _WRAP_METHOD(void set_is_important(bool is_important = true), gtk_tool_item_set_is_important)
 
   _WRAP_METHOD(Pango::EllipsizeMode get_ellipsize_mode() const, gtk_tool_item_get_ellipsize_mode)
-  _WRAP_METHOD(IconSize get_icon_size () const, gtk_tool_item_get_icon_size)
   _WRAP_METHOD(Orientation get_orientation() const, gtk_tool_item_get_orientation)
   _WRAP_METHOD(ToolbarStyle get_toolbar_style() const, gtk_tool_item_get_toolbar_style)
 
diff --git a/gtk/src/toolpalette.hg b/gtk/src/toolpalette.hg
index fd87c19..f87aaf5 100644
--- a/gtk/src/toolpalette.hg
+++ b/gtk/src/toolpalette.hg
@@ -66,12 +66,9 @@ public:
   _WRAP_METHOD(bool get_exclusive(ToolItemGroup& group) const, gtk_tool_palette_get_exclusive)
   _WRAP_METHOD(bool get_expand(ToolItemGroup& group) const, gtk_tool_palette_get_expand)
 
-  _WRAP_METHOD(void set_icon_size(IconSize icon_size), gtk_tool_palette_set_icon_size)
-  _WRAP_METHOD(void unset_icon_size(), gtk_tool_palette_unset_icon_size)
   _WRAP_METHOD(void set_style(ToolbarStyle style), gtk_tool_palette_set_style)
   _WRAP_METHOD(void unset_style(), gtk_tool_palette_unset_style)
 
-  _WRAP_METHOD(IconSize get_icon_size() const, gtk_tool_palette_get_icon_size)
   _WRAP_METHOD(ToolbarStyle get_style() const, gtk_tool_palette_get_style)
 
   _WRAP_METHOD(ToolItem* get_drop_item(int x, int y), gtk_tool_palette_get_drop_item)
@@ -93,8 +90,6 @@ public:
   _WRAP_METHOD(static TargetEntry get_drag_target_item(), gtk_tool_palette_get_drag_target_item)
   _WRAP_METHOD(static TargetEntry get_drag_target_group(), gtk_tool_palette_get_drag_target_group)
 
-  _WRAP_PROPERTY("icon-size", IconSize)
-  _WRAP_PROPERTY("icon-size-set", bool)
   _WRAP_PROPERTY("toolbar-style", ToolbarStyle)
 
   _WRAP_CHILD_PROPERTY("exclusive", bool)
diff --git a/gtk/src/toolshell.hg b/gtk/src/toolshell.hg
index 50c209e..62bd263 100644
--- a/gtk/src/toolshell.hg
+++ b/gtk/src/toolshell.hg
@@ -42,7 +42,6 @@ class ToolShell : public Glib::Interface
   _CLASS_INTERFACE(ToolShell, GtkToolShell, GTK_TOOL_SHELL, GtkToolShellIface)
 
 public:
-  _WRAP_METHOD(IconSize get_icon_size() const, gtk_tool_shell_get_icon_size)
   _WRAP_METHOD(Orientation get_orientation() const, gtk_tool_shell_get_orientation)
   _WRAP_METHOD(ToolbarStyle get_style() const, gtk_tool_shell_get_style)
   _WRAP_METHOD(void rebuild_menu(), gtk_tool_shell_rebuild_menu)
@@ -54,8 +53,6 @@ public:
   _WRAP_METHOD(Glib::RefPtr<const SizeGroup> get_text_size_group() const, 
gtk_tool_shell_get_text_size_group, refreturn, constversion)
 
 protected:
-
-  _WRAP_VFUNC(IconSize get_icon_size() const, get_icon_size)
   _WRAP_VFUNC(Orientation get_orientation() const, get_orientation)
   _WRAP_VFUNC(ToolbarStyle get_style() const, get_style)
   _WRAP_VFUNC(void rebuild_menu(), rebuild_menu)
diff --git a/gtk/src/tooltip.hg b/gtk/src/tooltip.hg
index 34be32c..55abe83 100644
--- a/gtk/src/tooltip.hg
+++ b/gtk/src/tooltip.hg
@@ -90,10 +90,10 @@ public:
   void unset_text();
 
   _WRAP_METHOD(void set_icon(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf), gtk_tooltip_set_icon)
-  _WRAP_METHOD(void set_icon(const Glib::RefPtr<Gio::Icon>& gicon, IconSize size), 
gtk_tooltip_set_icon_from_gicon)
+  _WRAP_METHOD(void set_icon(const Glib::RefPtr<Gio::Icon>& gicon), gtk_tooltip_set_icon_from_gicon)
 
   //TODO: Remove the _from_*() suffixes?
-  _WRAP_METHOD(void set_icon_from_icon_name(const Glib::ustring& icon_name, IconSize size), 
gtk_tooltip_set_icon_from_icon_name)
+  _WRAP_METHOD(void set_icon_from_icon_name(const Glib::ustring& icon_name), 
gtk_tooltip_set_icon_from_icon_name)
 
   /** Hide the image.
    * @newin{3,2}
diff --git a/gtk/src/treeview.ccg b/gtk/src/treeview.ccg
index 70561c8..87e360b 100644
--- a/gtk/src/treeview.ccg
+++ b/gtk/src/treeview.ccg
@@ -147,36 +147,18 @@ void TreeView::get_cursor(TreeModel::Path& path, TreeViewColumn*& focus_column)
   focus_column = Glib::wrap(pTreeViewColumn);
 }
 
-
-void TreeView::enable_model_drag_source(const std::vector<TargetEntry>& targets,
-                              Gdk::ModifierType start_button_mask,
-                              Gdk::DragAction actions)
-{
-  gtk_tree_view_enable_model_drag_source(
-      gobj(), (GdkModifierType) start_button_mask,
-      Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data(),
-      targets.size(), (GdkDragAction) actions);
-}
-
 void TreeView::enable_model_drag_source(Gdk::ModifierType start_button_mask, Gdk::DragAction actions)
 {
   std::vector<TargetEntry> targets (1, TargetEntry (treeview_target_row));
 
-  enable_model_drag_source(targets, start_button_mask, actions);
-}
-
-void TreeView::enable_model_drag_dest(const std::vector<TargetEntry>& targets, Gdk::DragAction actions)
-{
-  gtk_tree_view_enable_model_drag_dest(
-      gobj(), Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data(),
-      targets.size(), (GdkDragAction) actions);
+  enable_model_drag_source(TargetList::create(targets), start_button_mask, actions);
 }
 
 void TreeView::enable_model_drag_dest(Gdk::DragAction actions)
 {
   std::vector<TargetEntry> targets (1, TargetEntry (treeview_target_row));
 
-  enable_model_drag_dest(targets, actions);
+  enable_model_drag_dest(TargetList::create(targets), actions);
 }
 
 bool TreeView::get_path_at_pos(int x, int y, TreeModel::Path& path, TreeViewColumn*& column, int& cell_x, 
int& cell_y) const
diff --git a/gtk/src/treeview.hg b/gtk/src/treeview.hg
index da927be..f6c047e 100644
--- a/gtk/src/treeview.hg
+++ b/gtk/src/treeview.hg
@@ -27,7 +27,7 @@ _CONFIGINCLUDE(gtkmmconfig.h)
 #include <gtkmm/treemodelcolumn.h>
 #include <gtkmm/cellrenderer.h>
 #include <gtkmm/scrollable.h>
-#include <gtkmm/targetentry.h>
+#include <gtkmm/targetlist.h>
 #include <gtkmm/entry.h>
 #include <gtkmm/tooltip.h>
 
@@ -557,22 +557,15 @@ public:
 
 
 /* Drag-and-Drop support */
-  _IGNORE(gtk_tree_view_enable_model_drag_source)
 
-  /**
-   * Turns the TreeView into a drag source for automatic DND.
-   *
-   * @param targets Standard container of targets that the drag will support.
-   * @param start_button_mask Mask of allowed buttons to start drag.
-   * @param actions The bitmask of possible actions for a drag from this widget.
-   */
-  void enable_model_drag_source(const std::vector<TargetEntry>& targets,
-                                Gdk::ModifierType start_button_mask = Gdk::ModifierType::MODIFIER_MASK,
-                                Gdk::DragAction actions = Gdk::DragAction::COPY | Gdk::DragAction::MOVE);
+  _WRAP_METHOD(void enable_model_drag_source(const Glib::RefPtr<TargetList>& targets{.},
+    Gdk::ModifierType start_button_mask{.} = Gdk::ModifierType::MODIFIER_MASK,
+    Gdk::DragAction actions{.} = Gdk::DragAction::COPY | Gdk::DragAction::MOVE),
+    gtk_tree_view_enable_model_drag_source)
 
-  // Uses the default "GTK_TREE_MODEL_ROW" target, which the TreeView can handle automatically.
 
   /** Turns the TreeView into a drag source for automatic DND.
+   * Uses the default "GTK_TREE_MODEL_ROW" target, which the TreeView can handle automatically.
    *
    * @param start_button_mask Mask of allowed buttons to start drag.
    * @param actions The bitmask of possible actions for a drag from this widget.
@@ -580,14 +573,17 @@ public:
   void enable_model_drag_source(Gdk::ModifierType start_button_mask = Gdk::ModifierType::MODIFIER_MASK,
                                 Gdk::DragAction actions = Gdk::DragAction::COPY | Gdk::DragAction::MOVE);
 
-  _IGNORE(gtk_tree_view_enable_model_drag_dest)
-
-  /** Turns the TreeView into a drop destination for automatic DND.
+  //TODO: Remove the hand-coded description when gtk+'s description contains
+  // the correct number of parameters (no @n_targets).
+  /** Turns this %TreeView instance into a drop destination for automatic DND. Calling
+   * this method sets Gtk::TreeView::property_reorderable() to <tt>false</tt>.
    *
-   * @param targets The table of targets that the drag will support.
+   * @param targets The targets that the drag will support.
    * @param actions The bitmask of possible actions for a drag from this widget.
    */
-  void enable_model_drag_dest(const std::vector<TargetEntry>& targets, Gdk::DragAction actions = 
Gdk::DragAction::COPY | Gdk::DragAction::MOVE);
+  _WRAP_METHOD(void enable_model_drag_dest(const Glib::RefPtr<TargetList>& targets,
+    Gdk::DragAction actions = Gdk::DragAction::COPY | Gdk::DragAction::MOVE),
+    gtk_tree_view_enable_model_drag_dest)
 
   /** Turns the TreeView into a drop destination for automatic DND.  This uses the default
    *  "GTK_TREE_MODEL_ROW" target, which the TreeView can handle automatically.
diff --git a/gtk/src/widget.ccg b/gtk/src/widget.ccg
index 1ea4c43..e5bbc22 100644
--- a/gtk/src/widget.ccg
+++ b/gtk/src/widget.ccg
@@ -58,10 +58,10 @@ void Widget_signal_hide_callback(GObject* self, void* data)
 
 //These signal callbacks are custom implemented, so that we can create a temporary SelectionData instance.
 //To do this, we used the optional custom_c_callback paramater to _WRAP_SIGNAL() in the .hg file.
-static void Widget_signal_drag_data_get_callback(GtkWidget* self, GdkDragContext* p0,GtkSelectionData* 
p1,guint p2,guint p3,void* data)
+static void Widget_signal_drag_data_get_callback(GtkWidget* self, GdkDragContext* p0,GtkSelectionData* 
p1,guint p2,void* data)
 {
   using namespace Gtk;
-  typedef sigc::slot<void(const Glib::RefPtr<Gdk::DragContext>&,SelectionData&,guint,guint)> SlotType;
+  typedef sigc::slot<void(const Glib::RefPtr<Gdk::DragContext>&,SelectionData&,guint)> SlotType;
 
   // Do not try to call a signal on a disassociated wrapper.
   if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
@@ -71,7 +71,7 @@ static void Widget_signal_drag_data_get_callback(GtkWidget* self, GdkDragContext
       if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
       {
         SelectionData_WithoutOwnership temp_instance(p1);
-        (*static_cast<SlotType*>(slot))( Glib::wrap(p0, true), temp_instance, p2, p3 );
+        (*static_cast<SlotType*>(slot))(Glib::wrap(p0, true), temp_instance, p2);
       }
     }
     catch(...)
@@ -81,10 +81,10 @@ static void Widget_signal_drag_data_get_callback(GtkWidget* self, GdkDragContext
   }
 }
 
-static void Widget_signal_selection_get_callback(GtkWidget* self, GtkSelectionData* p0,guint p1,guint 
p2,void* data)
+static void Widget_signal_selection_get_callback(GtkWidget* self, GtkSelectionData* p0,guint p1,void* data)
 {
   using namespace Gtk;
-  typedef sigc::slot<void(SelectionData&, guint, guint)> SlotType;
+  typedef sigc::slot<void(SelectionData&, guint)> SlotType;
 
   // Do not try to call a signal on a disassociated wrapper.
   if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
@@ -94,7 +94,7 @@ static void Widget_signal_selection_get_callback(GtkWidget* self, GtkSelectionDa
       if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
       {
         SelectionData_WithoutOwnership temp_instance(p0);
-        (*static_cast<SlotType*>(slot))( temp_instance, p1, p2 );
+        (*static_cast<SlotType*>(slot))(temp_instance, p1);
       }
     }
     catch(...)
@@ -162,7 +162,7 @@ void Widget_Class::hide_callback(GtkWidget* self)
 
 //These default handler callbacks are custom implemented, so that we can create a temporary SelectionData 
instance.
 //To do this, we used the optional custom_c_callback paramater to _WRAP_SIGNAL() in the .hg file.
-void Widget_Class::selection_get_callback(GtkWidget* self, GtkSelectionData* p0, guint p1, guint p2)
+void Widget_Class::selection_get_callback(GtkWidget* self, GtkSelectionData* p0, guint p1)
 {
   const auto obj = dynamic_cast<CppObjectType*>(
       Glib::ObjectBase::_get_current_wrapper((GObject*)self));
@@ -178,7 +178,7 @@ void Widget_Class::selection_get_callback(GtkWidget* self, GtkSelectionData* p0,
     {
       // Call the virtual member method, which derived classes might override.
       SelectionData_WithoutOwnership temp_instance(p0);
-      obj->on_selection_get(temp_instance, p1, p2);
+      obj->on_selection_get(temp_instance, p1);
     }
     catch(...)
     {
@@ -193,11 +193,11 @@ void Widget_Class::selection_get_callback(GtkWidget* self, GtkSelectionData* p0,
 
     // Call the original underlying C function:
     if(base && base->selection_get)
-      (*base->selection_get)(self, p0, p1, p2);
+      (*base->selection_get)(self, p0, p1);
   }
 }
 
-void Widget_Class::drag_data_get_callback(GtkWidget* self, GdkDragContext* p0, GtkSelectionData* p1, guint 
p2, guint p3)
+void Widget_Class::drag_data_get_callback(GtkWidget* self, GdkDragContext* p0, GtkSelectionData* p1, guint 
p2)
 {
   const auto obj = dynamic_cast<CppObjectType*>(
       Glib::ObjectBase::_get_current_wrapper((GObject*)self));
@@ -213,7 +213,7 @@ void Widget_Class::drag_data_get_callback(GtkWidget* self, GdkDragContext* p0, G
     {
       // Call the virtual member method, which derived classes might override.
       SelectionData_WithoutOwnership temp_instance(p1);
-      obj->on_drag_data_get(Glib::wrap(p0, true), temp_instance, p2, p3);
+      obj->on_drag_data_get(Glib::wrap(p0, true), temp_instance, p2);
     }
     catch(...)
     {
@@ -228,7 +228,7 @@ void Widget_Class::drag_data_get_callback(GtkWidget* self, GdkDragContext* p0, G
 
     // Call the original underlying C function:
     if(base && base->drag_data_get)
-      (*base->drag_data_get)(self, p0, p1, p2, p3);
+      (*base->drag_data_get)(self, p0, p1, p2);
   }
 }
 
@@ -423,29 +423,7 @@ int Widget::get_height() const
 
 void Widget::drag_dest_set(DestDefaults flags, Gdk::DragAction actions)
 {
-  gtk_drag_dest_set(gobj(), (GtkDestDefaults)flags, nullptr, 0, (GdkDragAction)actions);
-}
-
-void Widget::drag_dest_set(const std::vector<TargetEntry>& targets,
-                           DestDefaults flags, Gdk::DragAction actions)
-{
-  // I've used Gdk::ACTION_COPY as the default, because Gdk::ACTION_DEFAULT means that
-  // it's never a drag destination, so it would seem like this method didn't work. murrayc.
-  gtk_drag_dest_set(
-      gobj(), (GtkDestDefaults)flags,
-      Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data(),
-      targets.size(), (GdkDragAction)actions);
-}
-
-void Widget::drag_source_set(const std::vector<TargetEntry>& targets,
-                             Gdk::ModifierType start_button_mask, Gdk::DragAction actions)
-{
-  // I've used Gdk::MODIFIER_MASK as the default, because it seems
-  // to mean 'whatever is possible in the context'. murrayc.
-  gtk_drag_source_set(
-      gobj(), (GdkModifierType)start_button_mask,
-      Glib::ArrayHandler<TargetEntry, TargetEntryTraits>::vector_to_array(targets).data(),
-      targets.size(), (GdkDragAction)actions);
+  gtk_drag_dest_set(gobj(), (GtkDestDefaults)flags, nullptr, (GdkDragAction)actions);
 }
 
 Widget* Widget::drag_get_source_widget(const Glib::RefPtr<Gdk::DragContext>& context) //static
diff --git a/gtk/src/widget.hg b/gtk/src/widget.hg
index ab6ef22..5adcf2d 100644
--- a/gtk/src/widget.hg
+++ b/gtk/src/widget.hg
@@ -46,14 +46,6 @@ _CONFIGINCLUDE(gtkmmconfig.h)
 _DEFS(gtkmm,gtk)
 _PINCLUDE(gtkmm/private/object_p.h)
 
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-extern "C"
-{
-typedef struct _GtkTargetEntry GtkTargetEntry;
-}
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
 namespace Gtk
 {
 
@@ -284,9 +276,6 @@ public:
   _WRAP_METHOD(void set_opacity(double opacity), gtk_widget_set_opacity)
   _WRAP_METHOD(double get_opacity() const, gtk_widget_get_opacity)
 
-  _WRAP_METHOD(void set_device_enabled(const Glib::RefPtr<Gdk::Device>& device, bool enabled = true), 
gtk_widget_set_device_enabled)
-  _WRAP_METHOD(bool get_device_enabled(const Glib::RefPtr<const Gdk::Device>& device) const, 
gtk_widget_get_device_enabled)
-
   _WRAP_METHOD(Container* get_toplevel(), gtk_widget_get_toplevel)
   _WRAP_METHOD(const Container* get_toplevel() const, gtk_widget_get_toplevel, constversion)
 
@@ -389,8 +378,12 @@ public:
 
   //TODO: Change the defaults? Maybe we should use ALL for DestDefaults. See other drag_dest_set() methods 
here and in other widgets.
   void drag_dest_set(DestDefaults flags = DestDefaults(0), Gdk::DragAction actions = Gdk::DragAction(0));
-  void drag_dest_set(const std::vector<TargetEntry>& targets, DestDefaults flags = DestDefaults::ALL, 
Gdk::DragAction actions = Gdk::DragAction::COPY);
-  _IGNORE(gtk_drag_dest_set)
+
+  // I've used Gdk::DragAction::COPY as the default, because Gdk::DragAction::DEFAULT means that
+  // it's never a drag destination, so it would seem like this method didn't work. murrayc.
+  _WRAP_METHOD(void drag_dest_set(const Glib::RefPtr<TargetList>& targets{.},
+    DestDefaults flags{.} = DestDefaults::ALL,
+    Gdk::DragAction actions{.} = Gdk::DragAction::COPY), gtk_drag_dest_set)
 
   _WRAP_METHOD(void drag_dest_unset(), gtk_drag_dest_unset)
   _WRAP_METHOD(Glib::ustring drag_dest_find_target(const Glib::RefPtr<Gdk::DragContext>& context, const 
Glib::RefPtr<TargetList>& target_list) const, gtk_drag_dest_find_target)
@@ -404,8 +397,11 @@ public:
   _WRAP_METHOD(void drag_dest_add_image_targets(), gtk_drag_dest_add_image_targets)
   _WRAP_METHOD(void drag_dest_add_uri_targets(), gtk_drag_dest_add_uri_targets)
 
-  void drag_source_set(const std::vector<TargetEntry>& targets, Gdk::ModifierType start_button_mask = 
Gdk::ModifierType::MODIFIER_MASK, Gdk::DragAction actions = Gdk::DragAction::COPY);
-  _IGNORE(gtk_drag_source_set)
+  // I've used Gdk::ModifierType::MODIFIER_MASK as the default, because it seems
+  // to mean 'whatever is possible in the context'. murrayc.
+  _WRAP_METHOD(void drag_source_set(const Glib::RefPtr<TargetList>& targets{.},
+    Gdk::ModifierType start_button_mask{.} = Gdk::ModifierType::MODIFIER_MASK,
+    Gdk::DragAction actions{.} = Gdk::DragAction::COPY), gtk_drag_source_set)
 
   _WRAP_METHOD(void drag_source_unset(), gtk_drag_source_unset)
 
@@ -632,20 +628,20 @@ dnl
 
   //We use the optional custom_c_callback parameter with _WRAP_SIGNAL() for some of these,
   //so that we can write special code to wrap the non-const SelectionData& output parameters:
-  _WRAP_SIGNAL(void selection_get(SelectionData& selection_data, guint info, guint time), "selection_get", 
custom_c_callback)
+  _WRAP_SIGNAL(void selection_get(SelectionData& selection_data, guint time), "selection_get", 
custom_c_callback)
   _WRAP_SIGNAL(void selection_received(const SelectionData& selection_data, guint time), 
"selection_received")
 
 #m4 _CONVERSION(`GdkDragContext*',`const Glib::RefPtr<Gdk::DragContext>&',Glib::wrap($3, true))
 
   _WRAP_SIGNAL(void drag_begin(const Glib::RefPtr<Gdk::DragContext>& context), "drag_begin")
   _WRAP_SIGNAL(void drag_end(const Glib::RefPtr<Gdk::DragContext>& context), "drag_end")
-  _WRAP_SIGNAL(void drag_data_get(const Glib::RefPtr<Gdk::DragContext>& context, SelectionData& 
selection_data, guint info, guint time), "drag_data_get", custom_c_callback)
+  _WRAP_SIGNAL(void drag_data_get(const Glib::RefPtr<Gdk::DragContext>& context, SelectionData& 
selection_data, guint time), "drag_data_get", custom_c_callback)
   _WRAP_SIGNAL(void drag_data_delete(const Glib::RefPtr<Gdk::DragContext>& context), "drag_data_delete")
   _WRAP_SIGNAL(bool drag_failed(const Glib::RefPtr<Gdk::DragContext>& context, DragResult result), 
"drag_failed")
   _WRAP_SIGNAL(void drag_leave(const Glib::RefPtr<Gdk::DragContext>& context, guint time), "drag_leave")
   _WRAP_SIGNAL(bool drag_motion(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, guint time), 
"drag_motion")
   _WRAP_SIGNAL(bool drag_drop(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, guint time), 
"drag_drop")
-  _WRAP_SIGNAL(void drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const 
SelectionData& selection_data, guint info, guint time), "drag_data_received")
+  _WRAP_SIGNAL(void drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const 
SelectionData& selection_data, guint time), "drag_data_received")
 
 _CONVERSION(`GdkDisplay*',`const Glib::RefPtr<Gdk::Display>&',`Glib::wrap($3, true)')
   _WRAP_SIGNAL(void display_changed(const Glib::RefPtr<Gdk::Display>& previous_display), "display_changed")
diff --git a/tools/m4/convert_gtk.m4 b/tools/m4/convert_gtk.m4
index ebb7e68..c27561c 100644
--- a/tools/m4/convert_gtk.m4
+++ b/tools/m4/convert_gtk.m4
@@ -47,6 +47,7 @@ _CONV_ENUM(Gtk,DestDefaults)
 _CONV_ENUM(Gtk,DirectionType)
 _CONV_ENUM(Gtk,EventSequenceState)
 _CONV_INCLASS_ENUM(Gtk,Image,Type)
+_CONV_ENUM(Gtk,IconSize)
 _CONV_ENUM(Gtk,Justification)
 _CONV_ENUM(Gtk,License)
 _CONV_ENUM(Gtk,MenuDirectionType)
@@ -129,10 +130,6 @@ _CONV_ENUM(Gtk,InputHints)
 _CONV_INCLASS_ENUM(Gtk,LevelBar,Mode)
 _CONV_ENUM(Gtk,BaselinePosition)
 
-_CONVERSION(`GtkIconSize',`IconSize',`IconSize(static_cast<int>($3))')
-_CONVERSION(`GtkIconSize',`Gtk::IconSize',`Gtk::IconSize(static_cast<int>($3))')
-_CONVERSION(`IconSize',`GtkIconSize',`static_cast<GtkIconSize>(int($3))')
-_CONVERSION(`Gtk::IconSize',`GtkIconSize',`static_cast<GtkIconSize>(int($3))')
 include(convert_atk.m4)
 include(convert_pango.m4)
 include(convert_gdk.m4)
@@ -370,7 +367,6 @@ _CONVERSION(`const TreeModelColumnBase&',`int',`($3).index`'()')
 _CONVERSION(`GtkTreePath*',`TreePath', `Gtk::TreePath($3, false)')
 _CONVERSION(`GtkTreePath*',`Path', `Gtk::TreePath($3, false)')
 _CONVERSION(`GtkTreePath*',`TreeModel::Path', `Gtk::TreePath($3, false)')
-_CONVERSION(`GtkIconSize&',`GtkIconSize*',`&($3)')
 _CONVERSION(`GtkCellEditable*',`CellEditable*',`dynamic_cast<$2>(Glib::wrap_auto((GObject*)($3), false))')
 _CONVERSION(`CellEditable*',`GtkCellEditable*',`Glib::unwrap($3)')
 


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