[gtkmm] Gtk::IconInfo: Use Gio::SignalProxy_async_callback()



commit 9db7f47642f8c8b897a6838215c6ac406272ba1d
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Jul 2 19:13:27 2018 +0200

    Gtk::IconInfo: Use Gio::SignalProxy_async_callback()
    
    Requires a version of glibmm that installs giomm/slot_async.h.
    https://gitlab.gnome.org/GNOME/glibmm/commit/e30044809d3de348fd44f66940a3840accc49a83

 gtk/src/iconinfo.ccg | 25 +------------------------
 gtk/src/iconinfo.hg  |  6 +++---
 2 files changed, 4 insertions(+), 27 deletions(-)
---
diff --git a/gtk/src/iconinfo.ccg b/gtk/src/iconinfo.ccg
index dd6207a1..ee83e8fc 100644
--- a/gtk/src/iconinfo.ccg
+++ b/gtk/src/iconinfo.ccg
@@ -16,34 +16,11 @@
  */
 
 #include <glibmm/vectorutils.h>
+#include <giomm/slot_async.h>
 
 #include <gtk/gtk.h>
 #include <gdkmm/texture.h>
 #include <gtkmm/icontheme.h>
-//TODO: Install and use this? #include <giomm/slot_async.h>
-
-namespace {
-
-//TODO: Install and use giomm's slot_async.h if we use this more often:
-static void
-SignalProxy_async_callback(GObject*, GAsyncResult* res, void* data)
-{
-  auto the_slot = static_cast<Gio::SlotAsyncReady*>(data);
-
-  try
-  {
-    auto result = Glib::wrap(res, true /* take copy */);
-    (*the_slot)(result);
-  }
-  catch(...)
-  {
-    Glib::exception_handlers_invoke();
-  }
-
-  delete the_slot;
-}
-
-}
 
 namespace Gtk
 {
diff --git a/gtk/src/iconinfo.hg b/gtk/src/iconinfo.hg
index f8726505..f45dc11a 100644
--- a/gtk/src/iconinfo.hg
+++ b/gtk/src/iconinfo.hg
@@ -69,7 +69,7 @@ public:
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Texture> load_texture() const, gtk_icon_info_load_texture)
 
   _WRAP_METHOD(void load_icon_async(const Gio::SlotAsyncReady& slot{callback}, const 
Glib::RefPtr<Gio::Cancellable>& cancellable{.?}) const,
-    gtk_icon_info_load_icon_async, slot_name slot, slot_callback SignalProxy_async_callback)
+    gtk_icon_info_load_icon_async, slot_name slot, slot_callback Gio::SignalProxy_async_callback)
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Pixbuf> load_icon_finish(const Glib::RefPtr<Gio::AsyncResult>& 
result) const,
     gtk_icon_info_load_icon_finish, errthrow)
 
@@ -82,7 +82,7 @@ public:
   _WRAP_METHOD(void load_symbolic_async(const Gdk::RGBA& fg, const Gdk::RGBA& success_color,
     const Gdk::RGBA& warning_color, const Gdk::RGBA& error_color, const Gio::SlotAsyncReady& slot{callback},
     const Glib::RefPtr<Gio::Cancellable>& cancellable{.?}) const,
-    gtk_icon_info_load_symbolic_async, slot_name slot, slot_callback SignalProxy_async_callback)
+    gtk_icon_info_load_symbolic_async, slot_name slot, slot_callback Gio::SignalProxy_async_callback)
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Pixbuf> load_symbolic_finish(const Glib::RefPtr<Gio::AsyncResult>& 
result,
     bool& was_symbolic{>>}) const, gtk_icon_info_load_symbolic_finish, errthrow)
 
@@ -92,7 +92,7 @@ public:
 
   _WRAP_METHOD(void load_symbolic_for_context_async(const Glib::RefPtr<StyleContext>& context,
     const Gio::SlotAsyncReady& slot{callback}, const Glib::RefPtr<Gio::Cancellable>& cancellable{.?}) const,
-    gtk_icon_info_load_symbolic_for_context_async, slot_name slot, slot_callback SignalProxy_async_callback)
+    gtk_icon_info_load_symbolic_for_context_async, slot_name slot, slot_callback 
Gio::SignalProxy_async_callback)
  _WRAP_METHOD(Glib::RefPtr<const Gdk::Pixbuf> load_symbolic_for_context_finish(const 
Glib::RefPtr<Gio::AsyncResult>& result,
    bool& was_symbolic{>>}) const, gtk_icon_info_load_symbolic_for_context_finish, errthrow)
 };


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