X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fd3f686c274a264e89ea97505350a82c1134f307..95aabccc3aac9dffa8490e1310cd93c6cd04c1e9:/src/msw/bitmap.cpp diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index 67d698f32b..264bb3359e 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -38,7 +38,7 @@ #if wxUSE_XPM_IN_MSW #define FOR_MSW 1 -#include "../../contrib/wxxpm/libxpm.34b/lib/xpm34.h" +#include "../src/xpm/xpm34.h" #endif #include "wx/msw/dib.h" @@ -78,6 +78,7 @@ wxBitmapRefData::~wxBitmapRefData(void) if (m_bitmapMask) delete m_bitmapMask; m_bitmapMask = NULL; + } wxList wxBitmap::sm_handlers; @@ -170,7 +171,7 @@ wxBitmap::wxBitmap(const wxString& filename, long type) #if wxUSE_XPM_IN_MSW // Create from data -wxBitmap::wxBitmap(const char **data, wxItem *WXUNUSED(anItem)) +wxBitmap::wxBitmap(char **data, wxItem *WXUNUSED(anItem)) { (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); } @@ -394,6 +395,7 @@ wxBitmap wxBitmap::GetBitmapForDC(wxDC& dc) const LPBITMAPINFO lpDib; void *lpBits = NULL; +/* wxASSERT( this->GetPalette() && this->GetPalette()->Ok() && (this->GetPalette()->GetHPALETTE() != 0) ); tmpBitmap.SetPalette(this->GetPalette()); @@ -401,6 +403,23 @@ wxBitmap wxBitmap::GetBitmapForDC(wxDC& dc) const memDC.SetPalette(this->GetPalette()); hPal = (HPALETTE) this->GetPalette()->GetHPALETTE(); +*/ + if( this->GetPalette() && this->GetPalette()->Ok() && (this->GetPalette()->GetHPALETTE() != 0) ) + { + tmpBitmap.SetPalette(* this->GetPalette()); + memDC.SelectObject(tmpBitmap); + memDC.SetPalette(* this->GetPalette()); + hPal = (HPALETTE) this->GetPalette()->GetHPALETTE(); + } + else + { + hPal = (HPALETTE) ::GetStockObject(DEFAULT_PALETTE); + wxPalette palette; + palette.SetHPALETTE( (WXHPALETTE)hPal ); + tmpBitmap.SetPalette( palette ); + memDC.SelectObject(tmpBitmap); + memDC.SetPalette( palette ); + } // set the height negative because in a DIB the order of the lines is reversed createDIB(this->GetWidth(), -this->GetHeight(), this->GetDepth(), hPal, &lpDib);