From a8a5397db22a0cbeecb46eee097adece5dedf14e Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 21 May 2012 12:25:30 +0100 Subject: GTK+ 3 changes for cell-renderers (bzr r11392) --- src/ui/dialog/undo-history.cpp | 58 +++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 15 deletions(-) (limited to 'src/ui/dialog/undo-history.cpp') diff --git a/src/ui/dialog/undo-history.cpp b/src/ui/dialog/undo-history.cpp index 9cc4b39cd..52d160124 100644 --- a/src/ui/dialog/undo-history.cpp +++ b/src/ui/dialog/undo-history.cpp @@ -33,14 +33,20 @@ namespace UI { namespace Dialog { /* Rendering functions for custom cell renderers */ - -void -CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags) +#if WITH_GTKMM_3_0 +void CellRendererSPIcon::render_vfunc(const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags) +#else +void CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags) +#endif { // if this event type doesn't have an icon... if ( !Inkscape::Verb::get(_property_event_type)->get_image() ) return; @@ -59,8 +65,13 @@ CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, sp_icon_fetch_pixbuf(sp_icon); _property_icon = Glib::wrap(sp_icon->pb, true); } else if ( GTK_IS_IMAGE(icon->gobj()) ) { +#if WITH_GTKMM_3_0 + _property_icon = Gtk::Invisible().render_icon_pixbuf(Gtk::StockID(image), + Gtk::ICON_SIZE_MENU); +#else _property_icon = Gtk::Invisible().render_icon(Gtk::StockID(image), Gtk::ICON_SIZE_MENU); +#endif } else { delete icon; return; @@ -74,25 +85,42 @@ CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, property_pixbuf() = _icon_cache[_property_event_type]; } +#if WITH_GTKMM_3_0 + Gtk::CellRendererPixbuf::render_vfunc(cr, widget, background_area, + cell_area, flags); +#else Gtk::CellRendererPixbuf::render_vfunc(window, widget, background_area, cell_area, expose_area, flags); +#endif } -void -CellRendererInt::render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags) +#if WITH_GTKMM_3_0 +void CellRendererInt::render_vfunc(const Cairo::RefPtr& cr, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + Gtk::CellRendererState flags) +#else +void CellRendererInt::render_vfunc(const Glib::RefPtr& window, + Gtk::Widget& widget, + const Gdk::Rectangle& background_area, + const Gdk::Rectangle& cell_area, + const Gdk::Rectangle& expose_area, + Gtk::CellRendererState flags) +#endif { if( _filter(_property_number) ) { std::ostringstream s; s << _property_number << std::flush; property_text() = s.str(); +#if WITH_GTKMM_3_0 + Gtk::CellRendererText::render_vfunc(cr, widget, background_area, + cell_area, flags); +#else Gtk::CellRendererText::render_vfunc(window, widget, background_area, cell_area, expose_area, flags); +#endif } } -- cgit v1.2.3