+// ---------------------------------------------------------
+// wxDataViewBitmapCell
+// ---------------------------------------------------------
+
+IMPLEMENT_CLASS(wxDataViewBitmapCell, wxDataViewCell)
+
+wxDataViewBitmapCell::wxDataViewBitmapCell( const wxString &varianttype, wxDataViewCellMode mode ) :
+ wxDataViewCell( varianttype, mode )
+{
+ m_renderer = (void*) gtk_cell_renderer_pixbuf_new();
+}
+
+bool wxDataViewBitmapCell::SetValue( const wxVariant &value )
+{
+ if (value.GetType() == wxT("wxBitmap"))
+ {
+ // We could also use the type safe wxGetVariantCast here
+ const wxBitmap *bitmap = (const wxBitmap*) value.GetWxObjectPtr();
+ if (!bitmap)
+ return false;
+
+ // This may create a Pixbuf representation in the
+ // wxBitmap object (and it will stay there)
+ GdkPixbuf *pixbuf = bitmap->GetPixbuf();
+
+ GValue gvalue = { 0, };
+ g_value_init( &gvalue, G_TYPE_OBJECT );
+ g_value_set_object( &gvalue, pixbuf );
+ g_object_set_property( G_OBJECT(m_renderer), "pixbuf", &gvalue );
+ g_value_unset( &gvalue );
+
+ return true;
+ }
+
+ return false;
+}
+
+bool wxDataViewBitmapCell::GetValue( wxVariant &value )
+{
+ return false;
+}
+