X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2d516f26095ca280536afa9867286f9244c7aef..608f8a111b6149267dc58ba87ea8de2edb550685:/src/generic/splash.cpp diff --git a/src/generic/splash.cpp b/src/generic/splash.cpp index fd23f630b6..e17b168167 100644 --- a/src/generic/splash.cpp +++ b/src/generic/splash.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "splash.h" -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -22,19 +18,25 @@ #if wxUSE_SPLASH +#ifdef __WXGTK20__ + #include +#endif + #ifndef WX_PRECOMP #include "wx/dcmemory.h" +#include "wx/dcclient.h" #endif #include "wx/splash.h" + /* * wxSplashScreen */ #define wxSPLASH_TIMER_ID 9999 -IMPLEMENT_DYNAMIC_CLASS(wxSplashScreen, wxFrame); +IMPLEMENT_DYNAMIC_CLASS(wxSplashScreen, wxFrame) BEGIN_EVENT_TABLE(wxSplashScreen, wxFrame) EVT_TIMER(wxSPLASH_TIMER_ID, wxSplashScreen::OnNotify) @@ -47,13 +49,21 @@ END_EVENT_TABLE() */ wxSplashScreen::wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds, wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style): - wxFrame(parent, id, wxEmptyString, wxPoint(0, 0), wxSize(100, 100), style) + wxFrame(parent, id, wxEmptyString, wxPoint(0,0), wxSize(100, 100), style) { + // At least for GTK+ 2.0, this hint is not available. +#if defined(__WXGTK20__) +#if GTK_CHECK_VERSION(2,2,0) + gtk_window_set_type_hint(GTK_WINDOW(m_widget), + GDK_WINDOW_TYPE_HINT_SPLASHSCREEN); +#endif +#endif + m_window = NULL; 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 +75,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 +94,7 @@ wxSplashScreen::~wxSplashScreen() void wxSplashScreen::OnNotify(wxTimerEvent& WXUNUSED(event)) { - Close(TRUE); + Close(true); } void wxSplashScreen::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) @@ -111,7 +121,7 @@ wxSplashScreenWindow::wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* par { m_bitmap = bitmap; -#ifndef __WXGTK__ +#if !defined(__WXGTK__) && wxUSE_PALETTE bool hiColour = (wxDisplayDepth() >= 16) ; if (bitmap.GetPalette() && !hiColour) @@ -181,12 +191,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