+
+void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp)
+{
+#ifdef __WXGTK20__
+ if (bpp != 32)
+ return NULL;
+
+ GdkPixbuf *pixbuf = GetPixbuf();
+ if (!pixbuf)
+ return NULL;
+
+#if 0
+ if (gdk_pixbuf_get_has_alpha( pixbuf ))
+ wxPrintf( wxT("Has alpha\n") );
+ else
+ wxPrintf( wxT("No alpha.\n") );
+#endif
+
+ data.m_height = gdk_pixbuf_get_height( pixbuf );
+ data.m_width = gdk_pixbuf_get_width( pixbuf );
+ data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
+
+ return gdk_pixbuf_get_pixels( pixbuf );
+#else
+ return NULL;
+#endif
+}
+
+void wxBitmap::UngetRawData(wxPixelDataBase& data)
+{
+}
+
+
+bool wxBitmap::HasAlpha() const
+{
+#ifdef __WXGTK20__
+ return HasPixbuf();
+#else
+ return false;
+#endif
+}
+
+void wxBitmap::UseAlpha()
+{
+#ifdef __WXGTK20__
+ GetPixbuf();
+#endif
+}
+
+//-----------------------------------------------------------------------------
+// wxBitmapHandler
+//-----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler,wxBitmapHandlerBase)
+
+wxBitmapHandler::~wxBitmapHandler()
+{
+}
+
+bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth)
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
+ int desiredWidth, int desiredHeight)
+{
+ return FALSE;
+}
+
+bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette)
+{
+ return FALSE;
+}
+
+/* static */ void wxBitmap::InitStandardHandlers()
+{
+ // TODO: Insert handler based on GdkPixbufs handler later
+}
+
+