Refactor all code common to X11 OpenGL implementations into glx11.h/.cpp
[wxWidgets.git] / include / wx / gtk / app.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/app.h
3 // Purpose:
4 // Author: Robert Roebling
5 // Id: $Id$
6 // Copyright: (c) 1998 Robert Roebling, Julian Smart
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_GTK_APP_H_
11 #define _WX_GTK_APP_H_
12
13 //-----------------------------------------------------------------------------
14 // classes
15 //-----------------------------------------------------------------------------
16
17 class WXDLLIMPEXP_CORE wxApp;
18 class WXDLLIMPEXP_BASE wxLog;
19
20 //-----------------------------------------------------------------------------
21 // wxApp
22 //-----------------------------------------------------------------------------
23
24 class WXDLLIMPEXP_CORE wxApp: public wxAppBase
25 {
26 public:
27 wxApp();
28 virtual ~wxApp();
29
30 /* override for altering the way wxGTK intializes the GUI
31 * (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
32 * default. when overriding this method, the code in it is likely to be
33 * platform dependent, otherwise use OnInit(). */
34 virtual bool OnInitGui();
35
36 // override base class (pure) virtuals
37 virtual bool Yield(bool onlyIfNeeded = FALSE);
38 virtual void WakeUpIdle();
39
40 virtual bool Initialize(int& argc, wxChar **argv);
41 virtual void CleanUp();
42
43 static bool InitialzeVisual();
44
45 #ifdef __WXDEBUG__
46 virtual void OnAssertFailure(const wxChar *file,
47 int line,
48 const wxChar *func,
49 const wxChar *cond,
50 const wxChar *msg);
51
52 bool IsInAssert() const { return m_isInAssert; }
53 #endif // __WXDEBUG__
54
55 // GTK-specific methods
56 // -------------------
57
58 // this can be overridden to return a specific visual to be used for GTK+
59 // instead of the default one (it's used by wxGLApp)
60 //
61 // must return XVisualInfo pointer (it is not freed by caller)
62 virtual void *GetXVisualInfo() { return NULL; }
63
64
65 // implementation only from now on
66 // -------------------------------
67
68 guint m_idleTag;
69 // temporarily disable idle events
70 void SuspendIdleCallback();
71
72 // This returns the current visual: either that used by wxRootWindow
73 // or the XVisualInfo* for SGI.
74 GdkVisual *GetGdkVisual();
75
76 private:
77 // true if we're inside an assert modal dialog
78 #ifdef __WXDEBUG__
79 bool m_isInAssert;
80 #endif // __WXDEBUG__
81
82 DECLARE_DYNAMIC_CLASS(wxApp)
83 DECLARE_EVENT_TABLE()
84 };
85
86 #endif // _WX_GTK_APP_H_