#include "wx/msw/dib.h"
#include "wx/image.h"
+#include "wx/xpmdecod.h"
// missing from mingw32 header
#ifndef CLR_INVALID
// Create from XPM data
bool wxBitmap::CreateFromXpm(const char **data)
{
+#if wxUSE_IMAGE && wxUSE_XPM
Init();
- return Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0);
+ wxCHECK_MSG( data != NULL, FALSE, wxT("invalid bitmap data") )
+
+ wxXPMDecoder decoder;
+ wxImage img = decoder.ReadData(data);
+ wxCHECK_MSG( img.Ok(), FALSE, wxT("invalid bitmap data") )
+
+ *this = wxBitmap(img);
+ return TRUE;
+#else
+ return FALSE;
+#endif
}
wxBitmap::wxBitmap(int w, int h, int d)
bool ok = TRUE;
+ // SelectObject() will fail
+ wxASSERT_MSG( !bitmap.GetSelectedInto(),
+ _T("bitmap can't be selected in another DC") );
+
HGDIOBJ hbmpSrcOld = ::SelectObject(srcDC, GetHbitmapOf(bitmap));
if ( !hbmpSrcOld )
{