]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/bitmap.cpp
setting clipping correctly
[wxWidgets.git] / src / msw / bitmap.cpp
index d1e489c88310f72b48ae9c47eb3de55d7fdefbdd..45857264281fdb67e1b1b7e793db78c2bc70f65e 100644 (file)
@@ -1,5 +1,5 @@
 ////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////
-// Name:        bitmap.cpp
+// Name:        src/msw/bitmap.cpp
 // Purpose:     wxBitmap
 // Author:      Julian Smart
 // Modified by:
 // Purpose:     wxBitmap
 // Author:      Julian Smart
 // Modified by:
@@ -24,6 +24,8 @@
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#include "wx/bitmap.h"
+
 #ifndef WX_PRECOMP
     #include <stdio.h>
 
 #ifndef WX_PRECOMP
     #include <stdio.h>
 
     #include "wx/app.h"
     #include "wx/palette.h"
     #include "wx/dcmemory.h"
     #include "wx/app.h"
     #include "wx/palette.h"
     #include "wx/dcmemory.h"
-    #include "wx/bitmap.h"
     #include "wx/icon.h"
     #include "wx/icon.h"
+    #include "wx/log.h"
+    #include "wx/image.h"
 #endif
 
 #include "wx/msw/private.h"
 #endif
 
 #include "wx/msw/private.h"
-#include "wx/log.h"
 
 #if wxUSE_WXDIB
 
 #if wxUSE_WXDIB
-#include "wx/msw/dib.h"
+    #include "wx/msw/dib.h"
 #endif
 
 #endif
 
-#include "wx/image.h"
 #include "wx/xpmdecod.h"
 
 #ifdef wxHAVE_RAW_BITMAP
 #include "wx/xpmdecod.h"
 
 #ifdef wxHAVE_RAW_BITMAP
-#include "wx/rawbmp.h"
+    #include "wx/rawbmp.h"
 #endif
 
 // missing from mingw32 header
 #endif
 
 // missing from mingw32 header
@@ -444,7 +445,7 @@ wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
                     reversed |= (unsigned char)(val & 0x01);
                     val >>= 1;
                 }
                     reversed |= (unsigned char)(val & 0x01);
                     val >>= 1;
                 }
-                *dst++ = reversed;
+                *dst++ = ~reversed;
             }
 
             if ( padding )
             }
 
             if ( padding )
@@ -472,24 +473,6 @@ wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
 #endif
 }
 
 #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);
 wxBitmap::wxBitmap(int w, int h, int d)
 {
     (void)Create(w, h, d);
@@ -500,7 +483,7 @@ wxBitmap::wxBitmap(int w, int h, const wxDC& dc)
     (void)Create(w, h, dc);
 }
 
     (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);
 }
 {
     (void)Create(data, type, width, height, depth);
 }
@@ -1025,7 +1008,7 @@ bool wxBitmap::LoadFile(const wxString& filename, long type)
     return false;
 }
 
     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();
 
 {
     UnRef();
 
@@ -1511,13 +1494,13 @@ bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour)
 // ----------------------------------------------------------------------------
 
 bool wxBitmapHandler::Create(wxGDIImage *image,
 // ----------------------------------------------------------------------------
 
 bool wxBitmapHandler::Create(wxGDIImage *image,
-                             void *data,
+                             const void* data,
                              long flags,
                              int width, int height, int depth)
 {
     wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
 
                              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,
 }
 
 bool wxBitmapHandler::Load(wxGDIImage *image,
@@ -1527,7 +1510,7 @@ bool wxBitmapHandler::Load(wxGDIImage *image,
 {
     wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
 
 {
     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,
 }
 
 bool wxBitmapHandler::Save(wxGDIImage *image,
@@ -1536,11 +1519,11 @@ bool wxBitmapHandler::Save(wxGDIImage *image,
 {
     wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
 
 {
     wxBitmap *bitmap = wxDynamicCast(image, wxBitmap);
 
-    return bitmap ? SaveFile(bitmap, name, type) : false;
+    return bitmap && SaveFile(bitmap, name, type);
 }
 
 bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap),
 }
 
 bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap),
-                             void *WXUNUSED(data),
+                             const void* WXUNUSED(data),
                              long WXUNUSED(type),
                              int WXUNUSED(width),
                              int WXUNUSED(height),
                              long WXUNUSED(type),
                              int WXUNUSED(width),
                              int WXUNUSED(height),