summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2012-05-21 11:25:30 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2012-05-21 11:25:30 +0000
commita8a5397db22a0cbeecb46eee097adece5dedf14e (patch)
tree856e9393270cf1aecbd031a7441ab60ea67466a7
parentMore size-request GTK+ 3 fixes (diff)
downloadinkscape-a8a5397db22a0cbeecb46eee097adece5dedf14e.tar.gz
inkscape-a8a5397db22a0cbeecb46eee097adece5dedf14e.zip
GTK+ 3 changes for cell-renderers
(bzr r11392)
-rw-r--r--src/ui/dialog/undo-history.cpp58
-rw-r--r--src/ui/dialog/undo-history.h46
-rw-r--r--src/ui/widget/dock-item.cpp4
-rw-r--r--src/ui/widget/dock.cpp4
-rw-r--r--src/ui/widget/imagetoggler.cpp26
-rw-r--r--src/ui/widget/imagetoggler.h13
6 files changed, 108 insertions, 43 deletions
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<Gdk::Drawable>& 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<Cairo::Context>& 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<Gdk::Drawable>& 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<Gdk::Drawable>& 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<Gdk::Drawable>& 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<Gdk::Drawable>& 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<Cairo::Context>& 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<Gdk::Drawable>& 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
}
}
diff --git a/src/ui/dialog/undo-history.h b/src/ui/dialog/undo-history.h
index ee7941580..f6bca30b7 100644
--- a/src/ui/dialog/undo-history.h
+++ b/src/ui/dialog/undo-history.h
@@ -48,14 +48,20 @@ public:
property_event_type() { return _property_event_type.get_proxy(); }
protected:
-
- virtual void
- render_vfunc(const Glib::RefPtr<Gdk::Drawable>& 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
+ virtual void render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ Gtk::CellRendererState flags);
+#else
+ virtual void render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ const Gdk::Rectangle& expose_area,
+ Gtk::CellRendererState flags);
+#endif
private:
Glib::Property<Glib::RefPtr<Gdk::Pixbuf> > _property_icon;
@@ -85,15 +91,21 @@ public:
static const Filter& no_filter;
- protected:
-
- virtual void
- render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
- Gtk::Widget& widget,
- const Gdk::Rectangle& background_area,
- const Gdk::Rectangle& cell_area,
- const Gdk::Rectangle& expose_area,
- Gtk::CellRendererState flags);
+protected:
+#if WITH_GTKMM_3_0
+ virtual void render_vfunc(const Cairo::RefPtr<Cairo::Context>& cr,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ Gtk::CellRendererState flags);
+#else
+ virtual void render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ const Gdk::Rectangle& expose_area,
+ Gtk::CellRendererState flags);
+#endif
private:
diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp
index 0f93968e5..b9cc50845 100644
--- a/src/ui/widget/dock-item.cpp
+++ b/src/ui/widget/dock-item.cpp
@@ -58,7 +58,11 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l
Gtk::StockItem item;
Gtk::StockID stockId(icon_name);
if ( Gtk::StockItem::lookup(stockId, item) ) {
+#if WITH_GTKMM_3_0
+ _icon_pixbuf = _dock.getWidget().render_icon_pixbuf( stockId, Gtk::ICON_SIZE_MENU );
+#else
_icon_pixbuf = _dock.getWidget().render_icon( stockId, Gtk::ICON_SIZE_MENU );
+#endif
}
}
}
diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp
index ab3a8adca..a7dabef1c 100644
--- a/src/ui/widget/dock.cpp
+++ b/src/ui/widget/dock.cpp
@@ -25,7 +25,7 @@ namespace Widget {
namespace {
-void hideCallback(GtkObject */*object*/, gpointer dock_ptr)
+void hideCallback(GObject * /*object*/, gpointer dock_ptr)
{
g_return_if_fail( dock_ptr != NULL );
@@ -33,7 +33,7 @@ void hideCallback(GtkObject */*object*/, gpointer dock_ptr)
dock->hide();
}
-void unhideCallback(GtkObject */*object*/, gpointer dock_ptr)
+void unhideCallback(GObject * /*object*/, gpointer dock_ptr)
{
g_return_if_fail( dock_ptr != NULL );
diff --git a/src/ui/widget/imagetoggler.cpp b/src/ui/widget/imagetoggler.cpp
index 6517219f2..73c343887 100644
--- a/src/ui/widget/imagetoggler.cpp
+++ b/src/ui/widget/imagetoggler.cpp
@@ -71,17 +71,27 @@ ImageToggler::get_size_vfunc( Gtk::Widget& widget,
}
}
-
-void
-ImageToggler::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& 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 ImageToggler::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ Gtk::CellRendererState flags )
+#else
+void ImageToggler::render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ const Gdk::Rectangle& expose_area,
+ Gtk::CellRendererState flags )
+#endif
{
property_pixbuf() = _property_active.get_value() ? _property_pixbuf_on : _property_pixbuf_off;
+#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
}
bool
diff --git a/src/ui/widget/imagetoggler.h b/src/ui/widget/imagetoggler.h
index 6389ce8af..0a20fe7ed 100644
--- a/src/ui/widget/imagetoggler.h
+++ b/src/ui/widget/imagetoggler.h
@@ -10,6 +10,10 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <glibmm/property.h>
#include <gtkmm/cellrendererpixbuf.h>
#include <gtkmm/widget.h>
@@ -37,13 +41,20 @@ protected:
Gdk::Rectangle const *cell_area,
int *x_offset, int *y_offset, int *width, int *height ) const;
-
+#if WITH_GTKMM_3_0
+ virtual void render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
+ Gtk::Widget& widget,
+ const Gdk::Rectangle& background_area,
+ const Gdk::Rectangle& cell_area,
+ Gtk::CellRendererState flags );
+#else
virtual void render_vfunc( const Glib::RefPtr<Gdk::Drawable>& window,
Gtk::Widget& widget,
const Gdk::Rectangle& background_area,
const Gdk::Rectangle& cell_area,
const Gdk::Rectangle& expose_area,
Gtk::CellRendererState flags );
+#endif
virtual bool activate_vfunc(GdkEvent *event,
Gtk::Widget &widget,