From d0254626dcd2d7a9384977137fa3cfe48ce13cd0 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Thu, 27 Sep 2018 11:45:08 -0400 Subject: Propagate IconRenderer's activate signal so we don't have to guess where the row/column is. --- src/ui/widget/iconrenderer.cpp | 13 +++++++++++-- src/ui/widget/iconrenderer.h | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ui/widget/iconrenderer.cpp b/src/ui/widget/iconrenderer.cpp index 9826d0bd3..4db870454 100644 --- a/src/ui/widget/iconrenderer.cpp +++ b/src/ui/widget/iconrenderer.cpp @@ -33,6 +33,14 @@ IconRenderer::IconRenderer() : set_pixbuf(); } +/* + * Called when an icon is clicked. + */ +IconRenderer::type_signal_activated IconRenderer::signal_activated() +{ + return m_signal_activated; +} + void IconRenderer::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -76,12 +84,13 @@ void IconRenderer::render_vfunc( const Cairo::RefPtr& cr, bool IconRenderer::activate_vfunc(GdkEvent* /*event*/, Gtk::Widget& /*widget*/, - const Glib::ustring& /*path*/, + const Glib::ustring& path, const Gdk::Rectangle& /*background_area*/, const Gdk::Rectangle& /*cell_area*/, Gtk::CellRendererState /*flags*/) { - return false; + m_signal_activated.emit(path); + return true; } void IconRenderer::add_icon(Glib::ustring name) diff --git a/src/ui/widget/iconrenderer.h b/src/ui/widget/iconrenderer.h index 1f5aafde9..7f8e475ac 100644 --- a/src/ui/widget/iconrenderer.h +++ b/src/ui/widget/iconrenderer.h @@ -28,7 +28,12 @@ public: Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); void add_icon(Glib::ustring name); + + typedef sigc::signal type_signal_activated; + type_signal_activated signal_activated(); protected: + type_signal_activated m_signal_activated; + void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, -- cgit v1.2.3