X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f9a3f576cccfd2c2296a24d74b05b9543c47fac7..c822ad5a5e30a21ca3340af644bf79804cf7c777:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index 1ea9b4c11a..88258c10fe 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -54,6 +54,32 @@ class WXDLLEXPORT wxCmdLineParser; static const int wxPRINT_WINDOWS = 1; static const int wxPRINT_POSTSCRIPT = 2; +// ---------------------------------------------------------------------------- +// support for framebuffer ports +// ---------------------------------------------------------------------------- + +#if wxUSE_GUI +// VS: Fullscreen/framebuffer application needs to choose display mode prior +// to wxWindows initialization. This class holds information about display +// mode. It is used by wxApp::Set/GetDisplayMode. +class WXDLLEXPORT wxDisplayModeInfo +{ +public: + wxDisplayModeInfo() : m_ok(FALSE) {} + wxDisplayModeInfo(unsigned width, unsigned height, unsigned depth) + : m_width(width), m_height(height), m_depth(depth), m_ok(TRUE) {} + + unsigned GetWidth() const { return m_width; } + unsigned GetHeight() const { return m_height; } + unsigned GetDepth() const { return m_depth; } + bool IsOk() const { return m_ok; } + +private: + unsigned m_width, m_height, m_depth; + bool m_ok; +}; +#endif + // ---------------------------------------------------------------------------- // the common part of wxApp implementations for all platforms // ---------------------------------------------------------------------------- @@ -62,12 +88,10 @@ class WXDLLEXPORT wxAppBase : public wxEvtHandler { public: wxAppBase(); + virtual ~wxAppBase(); // the virtual functions which may/must be overridden in the derived class // ----------------------------------------------------------------------- -#ifdef __DARWIN__ - virtual ~wxAppBase() { } -#endif // called during the program initialization, returning FALSE from here // prevents the program from continuing - it's a good place to create @@ -135,6 +159,17 @@ public: // process the first event in the event queue (blocks until an event // apperas if there are none currently) virtual void Dispatch() = 0; + + // process all currently pending events right now + // + // it is an error to call Yield() recursively unless the value of + // onlyIfNeeded is TRUE + // + // WARNING: this function is dangerous as it can lead to unexpected + // reentrancies (i.e. when called from an event handler it + // may result in calling the same event handler again), use + // with _extreme_ care or, better, don't use at all! + virtual bool Yield(bool onlyIfNeeded = FALSE) = 0; #endif // wxUSE_GUI // application info: name, description, vendor @@ -245,6 +280,13 @@ public: // wxICON_XXX values virtual wxIcon GetStdIcon(int which) const = 0; + // Get display mode that is used use. This is only used in framebuffer wxWin ports + // (such as wxMGL). + virtual wxDisplayModeInfo GetDisplayMode() const { return wxDisplayModeInfo(); } + // Set display mode to use. This is only used in framebuffer wxWin ports + // (such as wxMGL). This method should be called from wxApp:OnInitGui + virtual bool SetDisplayMode(const wxDisplayModeInfo& WXUNUSED(info)) { return TRUE; } + // VZ: what does this do exactly? void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; } bool GetWantDebugOutput() const { return m_wantDebugOutput; } @@ -331,10 +373,10 @@ protected: #include "wx/motif/app.h" #elif defined(__WXMGL__) #include "wx/mgl/app.h" - #elif defined(__WXQT__) - #include "wx/qt/app.h" #elif defined(__WXGTK__) #include "wx/gtk/app.h" + #elif defined(__WXX11__) + #include "wx/x11/app.h" #elif defined(__WXMAC__) #include "wx/mac/app.h" #elif defined(__WXPM__)