X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e22c13fe7ed64b4a7cb68ef42b338b6805f9fc64..4d01e350fe2d8cb15c068d579c4022345f3ff0c0:/src/generic/splash.cpp diff --git a/src/generic/splash.cpp b/src/generic/splash.cpp index 144bac6469..f18edab377 100644 --- a/src/generic/splash.cpp +++ b/src/generic/splash.cpp @@ -9,7 +9,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "splash.h" #endif @@ -24,6 +24,7 @@ #ifndef WX_PRECOMP #include "wx/dcmemory.h" +#include "wx/dcclient.h" #endif #include "wx/splash.h" @@ -53,7 +54,7 @@ wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int mil m_splashStyle = splashStyle; m_milliseconds = milliseconds; - m_window = new wxSplashScreenWindow(bitmap, this, -1, pos, size, wxNO_BORDER); + m_window = new wxSplashScreenWindow(bitmap, this, wxID_ANY, pos, size, wxNO_BORDER); SetClientSize(bitmap.GetWidth(), bitmap.GetHeight()); @@ -65,12 +66,12 @@ wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int mil if (m_splashStyle & wxSPLASH_TIMEOUT) { m_timer.SetOwner(this, wxSPLASH_TIMER_ID); - m_timer.Start(milliseconds, TRUE); + m_timer.Start(milliseconds, true); } - Show(TRUE); + Show(true); m_window->SetFocus(); -#ifdef __WXMSW__ +#if defined( __WXMSW__ ) || defined(__WXMAC__) Update(); // Without this, you see a blank screen for an instant #else wxYieldIfNeeded(); // Should eliminate this @@ -84,7 +85,7 @@ wxSplashScreen::~wxSplashScreen() void wxSplashScreen::OnNotify(wxTimerEvent& WXUNUSED(event)) { - Close(TRUE); + Close(true); } void wxSplashScreen::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) @@ -98,7 +99,9 @@ void wxSplashScreen::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) */ BEGIN_EVENT_TABLE(wxSplashScreenWindow, wxWindow) - //EVT_PAINT(wxSplashScreenWindow::OnPaint) +#ifdef __WXGTK__ + EVT_PAINT(wxSplashScreenWindow::OnPaint) +#endif EVT_ERASE_BACKGROUND(wxSplashScreenWindow::OnEraseBackground) EVT_CHAR(wxSplashScreenWindow::OnChar) EVT_MOUSE_EVENTS(wxSplashScreenWindow::OnMouseEvent) @@ -108,13 +111,16 @@ wxSplashScreenWindow::wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* par wxWindow(parent, id, pos, size, style) { m_bitmap = bitmap; -} -void wxSplashScreenWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - if (m_bitmap.Ok()) - dc.DrawBitmap(m_bitmap, 0, 0); +#if !defined(__WXGTK__) && wxUSE_PALETTE + bool hiColour = (wxDisplayDepth() >= 16) ; + + if (bitmap.GetPalette() && !hiColour) + { + SetPalette(* bitmap.GetPalette()); + } +#endif + } // VZ: why don't we do it under wxGTK? @@ -131,7 +137,6 @@ static void wxDrawSplashBitmap(wxDC& dc, const wxBitmap& bitmap, int WXUNUSED(x) if (bitmap.GetPalette() && !hiColour) { - dc.SetPalette(* bitmap.GetPalette()); dcMem.SetPalette(* bitmap.GetPalette()); } #endif // USE_PALETTE_IN_SPLASH @@ -143,12 +148,18 @@ static void wxDrawSplashBitmap(wxDC& dc, const wxBitmap& bitmap, int WXUNUSED(x) #ifdef USE_PALETTE_IN_SPLASH if (bitmap.GetPalette() && !hiColour) { - dc.SetPalette(wxNullPalette); dcMem.SetPalette(wxNullPalette); } #endif // USE_PALETTE_IN_SPLASH } +void wxSplashScreenWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) +{ + wxPaintDC dc(this); + if (m_bitmap.Ok()) + wxDrawSplashBitmap(dc, m_bitmap, 0, 0); +} + void wxSplashScreenWindow::OnEraseBackground(wxEraseEvent& event) { if (event.GetDC()) @@ -171,12 +182,12 @@ void wxSplashScreenWindow::OnEraseBackground(wxEraseEvent& event) void wxSplashScreenWindow::OnMouseEvent(wxMouseEvent& event) { if (event.LeftDown() || event.RightDown()) - GetParent()->Close(TRUE); + GetParent()->Close(true); } void wxSplashScreenWindow::OnChar(wxKeyEvent& WXUNUSED(event)) { - GetParent()->Close(TRUE); + GetParent()->Close(true); } #endif // wxUSE_SPLASH