1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        splash.h
3 // Purpose:     Splash screen class
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     28/6/2000
7 // RCS-ID:      $Id: splash.h,v 1.1 2006/12/02 15:58:29 scara Exp $
8 // Copyright:   (c) Julian Smart
9 // Licence:
10 /////////////////////////////////////////////////////////////////////////////
11 
12 #if defined(__GNUG__) && !defined(__APPLE__)
13 #pragma interface "splash.h"
14 #endif
15 
16 #ifndef _WX_SPLASH_H_
17 #define _WX_SPLASH_H_
18 
19 #ifndef WX_PRECOMP
20 #include "wx/bitmap.h"
21 #include "wx/timer.h"
22 #endif
23 
24 #include "wx/frame.h"
25 
26 
27 /*
28  * A window for displaying a splash screen
29  */
30 
31 #define wxSPLASH_CENTRE_ON_PARENT   0x01
32 #define wxSPLASH_CENTRE_ON_SCREEN   0x02
33 #define wxSPLASH_NO_CENTRE          0x00
34 #define wxSPLASH_TIMEOUT            0x04
35 #define wxSPLASH_NO_TIMEOUT         0x00
36 
37 class WXDLLEXPORT wxSplashScreenWindow;
38 
39 /*
40  * wxSplashScreen
41  */
42 
43 class WXDLLEXPORT wxSplashScreen: public wxFrame
44 {
45 public:
46     // for RTTI macros only
wxSplashScreen()47     wxSplashScreen() {};
48     wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds,
49                    wxWindow* parent, wxWindowID id,
50                    const wxPoint& pos = wxDefaultPosition,
51                    const wxSize& size = wxDefaultSize,
52                    long style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP);
53     ~wxSplashScreen();
54 
55     void OnCloseWindow(wxCloseEvent& event);
56     void OnNotify(wxTimerEvent& event);
57 
GetSplashStyle()58     long GetSplashStyle() const { return m_splashStyle; }
GetSplashWindow()59     wxSplashScreenWindow* GetSplashWindow() const { return m_window; }
GetTimeout()60     int GetTimeout() const { return m_milliseconds; }
61 
62 protected:
63     wxSplashScreenWindow*   m_window;
64     long                    m_splashStyle;
65     int                     m_milliseconds;
66     wxTimer                 m_timer;
67 
68 DECLARE_DYNAMIC_CLASS(wxSplashScreen)
69 DECLARE_EVENT_TABLE()
70 };
71 
72 /*
73  * wxSplashScreenWindow
74  */
75 
76 class WXDLLEXPORT wxSplashScreenWindow: public wxWindow
77 {
78 public:
79     wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxNO_BORDER);
80 
81     void OnPaint(wxPaintEvent& event);
82     void OnEraseBackground(wxEraseEvent& event);
83     void OnMouseEvent(wxMouseEvent& event);
84     void OnChar(wxKeyEvent& event);
85 
SetBitmap(const wxBitmap & bitmap)86     void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; }
GetBitmap()87     wxBitmap& GetBitmap() { return m_bitmap; }
88 
89 protected:
90     wxBitmap    m_bitmap;
91 
92 DECLARE_EVENT_TABLE()
93 };
94 
95 
96 #endif
97     // _WX_SPLASH_H_
98