1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/gtk1/app.h
3// Purpose:
4// Author:      Robert Roebling
5// Id:          $Id: app.h 37065 2006-01-23 02:28:01Z MR $
6// Copyright:   (c) 1998 Robert Roebling, Julian Smart
7// Licence:     wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef __GTKAPPH__
11#define __GTKAPPH__
12
13#include "wx/frame.h"
14#include "wx/icon.h"
15#include "wx/strconv.h"
16
17//-----------------------------------------------------------------------------
18// classes
19//-----------------------------------------------------------------------------
20
21class WXDLLIMPEXP_CORE wxApp;
22class WXDLLIMPEXP_BASE wxLog;
23
24//-----------------------------------------------------------------------------
25// wxApp
26//-----------------------------------------------------------------------------
27
28class WXDLLIMPEXP_CORE wxApp: public wxAppBase
29{
30public:
31    wxApp();
32    virtual ~wxApp();
33
34    /* override for altering the way wxGTK intializes the GUI
35     * (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
36     * default. when overriding this method, the code in it is likely to be
37     * platform dependent, otherwise use OnInit(). */
38    virtual bool OnInitGui();
39
40    // override base class (pure) virtuals
41    virtual bool Yield(bool onlyIfNeeded = FALSE);
42    virtual void WakeUpIdle();
43
44    virtual bool Initialize(int& argc, wxChar **argv);
45    virtual void CleanUp();
46
47    static bool InitialzeVisual();
48
49#ifdef __WXDEBUG__
50    virtual void OnAssert(const wxChar *file, int line, const wxChar *cond, const wxChar *msg);
51
52    bool IsInAssert() const { return m_isInAssert; }
53#endif // __WXDEBUG__
54
55    gint            m_idleTag;
56    void RemoveIdleTag();
57
58    unsigned char  *m_colorCube;
59
60    // Used by the the wxGLApp and wxGLCanvas class for GL-based X visual
61    // selection.
62    void           *m_glVisualInfo; // this is actually an XVisualInfo*
63    void           *m_glFBCInfo; // this is actually an GLXFBConfig*
64    // This returns the current visual: either that used by wxRootWindow
65    // or the XVisualInfo* for SGI.
66    GdkVisual      *GetGdkVisual();
67
68private:
69    // true if we're inside an assert modal dialog
70#ifdef __WXDEBUG__
71    bool m_isInAssert;
72#endif // __WXDEBUG__
73
74    DECLARE_DYNAMIC_CLASS(wxApp)
75    DECLARE_EVENT_TABLE()
76};
77
78#endif // __GTKAPPH__
79