]> git.saurik.com Git - wxWidgets.git/blame - include/wx/gtk/app.h
Really fix the problem with caret in wxGrid text editor under MSW.
[wxWidgets.git] / include / wx / gtk / app.h
CommitLineData
c801d85f 1/////////////////////////////////////////////////////////////////////////////
8461e4c2 2// Name: wx/gtk/app.h
d48b06bd 3// Purpose: wxApp definition for wxGTK
c801d85f 4// Author: Robert Roebling
dbf858b5 5// Id: $Id$
01111366 6// Copyright: (c) 1998 Robert Roebling, Julian Smart
65571936 7// Licence: wxWindows licence
c801d85f
KB
8/////////////////////////////////////////////////////////////////////////////
9
4f13428c
PC
10#ifndef _WX_GTK_APP_H_
11#define _WX_GTK_APP_H_
c801d85f
KB
12
13//-----------------------------------------------------------------------------
14// classes
15//-----------------------------------------------------------------------------
16
426d19f1 17#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
e2f3bc41 18typedef struct _HildonProgram HildonProgram;
426d19f1 19#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2
e2f3bc41 20
c801d85f
KB
21//-----------------------------------------------------------------------------
22// wxApp
23//-----------------------------------------------------------------------------
24
20123d49 25class WXDLLIMPEXP_CORE wxApp: public wxAppBase
c801d85f 26{
094637f6 27public:
bbe0af5b 28 wxApp();
a6f5aa49 29 virtual ~wxApp();
a3622daa 30
094637f6
VZ
31 /* override for altering the way wxGTK intializes the GUI
32 * (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
33 * default. when overriding this method, the code in it is likely to be
34 * platform dependent, otherwise use OnInit(). */
c50c6fb2 35 virtual bool SetNativeTheme(const wxString& theme);
bbe0af5b 36 virtual bool OnInitGui();
094637f6
VZ
37
38 // override base class (pure) virtuals
e2478fde 39 virtual void WakeUpIdle();
53010e52 40
05e2b077 41 virtual bool Initialize(int& argc, wxChar **argv);
94826170 42 virtual void CleanUp();
a3622daa 43
2d97237d
VZ
44 virtual void OnAssertFailure(const wxChar *file,
45 int line,
46 const wxChar *func,
47 const wxChar *cond,
48 const wxChar *msg);
094637f6 49
498ace9e
VZ
50 // GTK-specific methods
51 // -------------------
52
53 // this can be overridden to return a specific visual to be used for GTK+
54 // instead of the default one (it's used by wxGLApp)
55 //
56 // must return XVisualInfo pointer (it is not freed by caller)
57 virtual void *GetXVisualInfo() { return NULL; }
58
93c609c7
VZ
59 // Check if we're using a global menu. Currently this is only true when
60 // running under Ubuntu Unity and global menu is not disabled.
61 //
62 // This is mostly used in the implementation in order to work around
63 // various bugs arising due to this.
64 static bool GTKIsUsingGlobalMenu();
65
426d19f1 66#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
e2f3bc41 67 // Maemo-specific method: get the main program object
426d19f1
JS
68 HildonProgram *GetHildonProgram();
69#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2
498ace9e
VZ
70
71 // implementation only from now on
72 // -------------------------------
73
a1abca32
PC
74 // check for pending events, without interference from our idle source
75 bool EventsPending();
76 bool DoIdle();
77
094637f6 78private:
a5f1fd3e 79 // true if we're inside an assert modal dialog
a5f1fd3e 80 bool m_isInAssert;
657a8a35 81
a1abca32 82#if wxUSE_THREADS
4d4ec2a5 83 wxMutex m_idleMutex;
a1abca32 84#endif
29e461a2 85 unsigned m_idleSourceId;
094637f6 86
426d19f1 87#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
e2f3bc41 88 HildonProgram *m_hildonProgram;
426d19f1 89#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2
e2f3bc41 90
8636aed8 91 DECLARE_DYNAMIC_CLASS(wxApp)
c801d85f
KB
92};
93
4f13428c 94#endif // _WX_GTK_APP_H_