////////////////////////////////////////////////////////////////////////////
-// Name: bitmap.cpp
+// Name: src/msw/bitmap.cpp
// Purpose: wxBitmap
// Author: Julian Smart
// Modified by:
#pragma hdrstop
#endif
+#include "wx/bitmap.h"
+
#ifndef WX_PRECOMP
#include <stdio.h>
#include "wx/app.h"
#include "wx/palette.h"
#include "wx/dcmemory.h"
- #include "wx/bitmap.h"
#include "wx/icon.h"
+ #include "wx/log.h"
+ #include "wx/image.h"
#endif
#include "wx/msw/private.h"
-#include "wx/log.h"
#if wxUSE_WXDIB
-#include "wx/msw/dib.h"
+ #include "wx/msw/dib.h"
#endif
-#include "wx/image.h"
#include "wx/xpmdecod.h"
#ifdef wxHAVE_RAW_BITMAP
-#include "wx/rawbmp.h"
+ #include "wx/rawbmp.h"
#endif
// missing from mingw32 header
reversed |= (unsigned char)(val & 0x01);
val >>= 1;
}
- *dst++ = reversed;
+ *dst++ = ~reversed;
}
if ( padding )
#endif
}
-// Create from XPM data
-bool wxBitmap::CreateFromXpm(const char **data)
-{
-#if wxUSE_IMAGE && wxUSE_XPM && wxUSE_WXDIB
- 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
- wxUnusedVar(data);
- return false;
-#endif
-}
-
wxBitmap::wxBitmap(int w, int h, int d)
{
(void)Create(w, h, d);
(void)Create(w, h, dc);
}
-wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth)
+wxBitmap::wxBitmap(const void* data, long type, int width, int height, int depth)
{
(void)Create(data, type, width, height, depth);
}
// wxImage to/from conversions
// ----------------------------------------------------------------------------
-#if wxUSE_WXDIB
-
bool wxBitmap::CreateFromImage(const wxImage& image, int depth)
{
return CreateFromImage(image, depth, 0);
return CreateFromImage(image, -1, dc.GetHDC());
}
+#if wxUSE_WXDIB
+
bool wxBitmap::CreateFromImage(const wxImage& image, int depth, WXHDC hdc)
{
wxCHECK_MSG( image.Ok(), false, wxT("invalid image") );
return image;
}
-#endif // wxUSE_WXDIB
+#else // !wxUSE_WXDIB
+
+bool
+wxBitmap::CreateFromImage(const wxImage& WXUNUSED(image),
+ int WXUNUSED(depth),
+ WXHDC WXUNUSED(hdc))
+{
+ return false;
+}
+
+wxImage wxBitmap::ConvertToImage() const
+{
+ return wxImage();
+}
+
+#endif // wxUSE_WXDIB/!wxUSE_WXDIB
#endif // wxUSE_IMAGE
return false;
}
-bool wxBitmap::Create(void *data, long type, int width, int height, int depth)
+bool wxBitmap::Create(const void* data, long type, int width, int height, int depth)
{
UnRef();
// ----------------------------------------------------------------------------
bool wxBitmapHandler::Create(wxGDIImage *image,
- void *data,
+ const void* data,
long flags,
int width, int height, int depth)
{
wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
- return bitmap ? Create(bitmap, data, flags, width, height, depth) : false;
+ return bitmap && Create(bitmap, data, flags, width, height, depth);
}
bool wxBitmapHandler::Load(wxGDIImage *image,
{
wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
- return bitmap ? LoadFile(bitmap, name, flags, width, height) : false;
+ return bitmap && LoadFile(bitmap, name, flags, width, height);
}
bool wxBitmapHandler::Save(wxGDIImage *image,
{
wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
- return bitmap ? SaveFile(bitmap, name, type) : false;
+ return bitmap && SaveFile(bitmap, name, type);
}
bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap),
- void *WXUNUSED(data),
+ const void* WXUNUSED(data),
long WXUNUSED(type),
int WXUNUSED(width),
int WXUNUSED(height),