dc.DrawBitmap(m_bitmap, 0, 0);
}
+// VZ: why don't we do it under wxGTK?
+#if !defined(__WXGTK__) && wxUSE_PALETTE
+ #define USE_PALETTE_IN_SPLASH
+#endif
+
static void wxDrawSplashBitmap(wxDC& dc, const wxBitmap& bitmap, int WXUNUSED(x), int WXUNUSED(y))
{
wxMemoryDC dcMem;
-#ifndef __WXGTK__
+#ifdef USE_PALETTE_IN_SPLASH
bool hiColour = (wxDisplayDepth() >= 16) ;
if (bitmap.GetPalette() && !hiColour)
dc.SetPalette(* bitmap.GetPalette());
dcMem.SetPalette(* bitmap.GetPalette());
}
-#endif
+#endif // USE_PALETTE_IN_SPLASH
dcMem.SelectObject(bitmap);
dc.Blit(0, 0, bitmap.GetWidth(), bitmap.GetHeight(), & dcMem, 0, 0);
dcMem.SelectObject(wxNullBitmap);
-#ifndef __WXGTK__
+#ifdef USE_PALETTE_IN_SPLASH
if (bitmap.GetPalette() && !hiColour)
{
dc.SetPalette(wxNullPalette);
dcMem.SetPalette(wxNullPalette);
}
-#endif
+#endif // USE_PALETTE_IN_SPLASH
}
void wxSplashScreenWindow::OnEraseBackground(wxEraseEvent& event)
height = bmp.GetHeight();
HBITMAP hbmpMask = 0;
+
+#if wxUSE_PALETTE
HPALETTE oldPal = 0;
+#endif // wxUSE_PALETTE
if ( useMask )
{
HDC cdc = GetHdc();
HDC hdcMem = ::CreateCompatibleDC(GetHdc());
::SelectObject(hdcMem, GetHbitmapOf(bmp));
- if (bmp.GetPalette() && (::GetDeviceCaps(cdc,BITSPIXEL) <= 8)) {
- oldPal = ::SelectPalette( hdcMem, (HPALETTE)bmp.GetPalette()->GetHPALETTE(), FALSE);
+
+#if wxUSE_PALETTE
+ wxPalette *pal = bmp.GetPalette();
+ if ( pal && ::GetDeviceCaps(cdc,BITSPIXEL) <= 8 )
+ {
+ oldPal = ::SelectPalette( hdcMem, GetHpalette(pal), FALSE);
::RealizePalette(hdcMem);
- }
+ }
+#endif // wxUSE_PALETTE
+
ok = ::MaskBlt(cdc, x, y, width, height,
hdcMem, 0, 0,
hbmpMask, 0, 0,
MAKEROP4(SRCCOPY, DSTCOPY)) != 0;
+
+#if wxUSE_PALETTE
if (oldPal)
::SelectPalette(hdcMem, oldPal, FALSE);
+#endif // wxUSE_PALETTE
+
::DeleteDC(hdcMem);
}
::SetBkColor(GetHdc(), m_textBackgroundColour.GetPixel() );
}
- if (bmp.GetPalette() && (::GetDeviceCaps(cdc,BITSPIXEL) <= 8)) {
- oldPal = ::SelectPalette( memdc, (HPALETTE)bmp.GetPalette()->GetHPALETTE(), FALSE);
- ::RealizePalette(memdc);
+#if wxUSE_PALETTE
+ wxPalette *pal = bmp.GetPalette();
+ if ( pal && ::GetDeviceCaps(cdc,BITSPIXEL) <= 8 )
+ {
+ oldPal = ::SelectPalette( hdcMem, GetHpalette(pal), FALSE);
+ ::RealizePalette(hdcMem);
}
+#endif // wxUSE_PALETTE
+
::SelectObject( memdc, hbitmap );
::BitBlt( cdc, x, y, width, height, memdc, 0, 0, SRCCOPY);
+
+#if wxUSE_PALETTE
if (oldPal)
::SelectPalette(memdc, oldPal, FALSE);
+#endif // wxUSE_PALETTE
+
::DeleteDC( memdc );
::SetTextColor(GetHdc(), old_textground);