]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/bitmap.cpp
Added clipboard cut and paste
[wxWidgets.git] / src / msw / bitmap.cpp
index a68e54fa7dbf1e4e18c8b9bc21c7effa742771fb..9f62b5e7c0ab41f02959858061dff05e95bd46e9 100644 (file)
@@ -107,8 +107,6 @@ void wxBitmap::Init()
 {
     // m_refData = NULL; done in the base class ctor
 
 {
     // m_refData = NULL; done in the base class ctor
 
-    if ( wxTheBitmapList )
-        wxTheBitmapList->AddBitmap(this);
 }
 
 #ifdef __WIN32__
 }
 
 #ifdef __WIN32__
@@ -144,6 +142,10 @@ bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon)
     refData->m_bitmapMask = new wxMask((WXHBITMAP)
                                         wxInvertMask(iconInfo.hbmMask, w, h));
 
     refData->m_bitmapMask = new wxMask((WXHBITMAP)
                                         wxInvertMask(iconInfo.hbmMask, w, h));
 
+
+    // delete the old one now as we don't need it any more
+    ::DeleteObject(iconInfo.hbmMask);
+
 #if WXWIN_COMPATIBILITY_2
     refData->m_ok = TRUE;
 #endif // WXWIN_COMPATIBILITY_2
 #if WXWIN_COMPATIBILITY_2
     refData->m_ok = TRUE;
 #endif // WXWIN_COMPATIBILITY_2
@@ -218,8 +220,6 @@ bool wxBitmap::CopyFromIcon(const wxIcon& icon)
 
 wxBitmap::~wxBitmap()
 {
 
 wxBitmap::~wxBitmap()
 {
-    if (wxTheBitmapList)
-        wxTheBitmapList->DeleteObject(this);
 }
 
 wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
 }
 
 wxBitmap::wxBitmap(const char bits[], int width, int height, int depth)
@@ -431,6 +431,11 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     if (depth == -1) depth = wxDisplayDepth();
     SetDepth( depth );
 
     if (depth == -1) depth = wxDisplayDepth();
     SetDepth( depth );
 
+#if wxUSE_PALETTE
+    // Copy the palette from the source image
+    SetPalette(image.GetPalette());
+#endif // wxUSE_PALETTE
+
     // create a DIB header
     int headersize = sizeof(BITMAPINFOHEADER);
     BITMAPINFO *lpDIBh = (BITMAPINFO *) malloc( headersize );
     // create a DIB header
     int headersize = sizeof(BITMAPINFOHEADER);
     BITMAPINFO *lpDIBh = (BITMAPINFO *) malloc( headersize );
@@ -609,8 +614,6 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     GetBitmapData()->SetOk();
 #endif // WXWIN_COMPATIBILITY_2
 
     GetBitmapData()->SetOk();
 #endif // WXWIN_COMPATIBILITY_2
 
-    if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
-
     return TRUE;
 #endif
 }
     return TRUE;
 #endif
 }
@@ -1080,7 +1083,7 @@ bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour)
 
     // scan the bitmap for the transparent colour and set the corresponding
     // pixels in the mask to BLACK and the rest to WHITE
 
     // scan the bitmap for the transparent colour and set the corresponding
     // pixels in the mask to BLACK and the rest to WHITE
-    COLORREF maskColour = wxColourToRGB(colour);
+    COLORREF maskColour = RGB(colour.Red(), colour.Green(), colour.Blue());
     m_maskBitmap = (WXHBITMAP)::CreateBitmap(width, height, 1, 1, 0);
 
     HDC srcDC = ::CreateCompatibleDC(NULL);
     m_maskBitmap = (WXHBITMAP)::CreateBitmap(width, height, 1, 1, 0);
 
     HDC srcDC = ::CreateCompatibleDC(NULL);