diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/widget/iconrenderer.cpp | 13 | ||||
| -rw-r--r-- | src/ui/widget/iconrenderer.h | 5 |
2 files changed, 16 insertions, 2 deletions
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<Cairo::Context>& 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<Gdk::Pixbuf> > property_pixbuf_off(); void add_icon(Glib::ustring name); + + typedef sigc::signal<void, Glib::ustring> type_signal_activated; + type_signal_activated signal_activated(); protected: + type_signal_activated m_signal_activated; + void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, |
