X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aad65f130d9cb77d0e9f2b7b580c54712386f77a..0326d9689eb518ff3d8070cd83ea1d36a6f3324f:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index fc770fe7f5..69f408ac5a 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -108,6 +108,10 @@ public: // Override: always in GUI application, rarely in console ones. virtual bool OnInit(); + // initializes wxMessageOutput; other responsibilities + // may be added later + virtual void DoInit(); + #if wxUSE_GUI // a platform-dependent version of OnInit(): the code here is likely to // depend on the toolkit. default version does nothing. @@ -124,7 +128,7 @@ public: // // Override: rarely in GUI applications, always in console ones. #if wxUSE_GUI - virtual int OnRun() { return MainLoop(); }; + virtual int OnRun(); #else // !GUI virtual int OnRun() = 0; #endif // wxUSE_GUI @@ -147,6 +151,8 @@ public: // Override: rarely. virtual void OnFatalException() { } + virtual bool ProcessIdle() = 0; + // the worker functions - usually not used directly by the user code // ----------------------------------------------------------------- @@ -230,11 +236,13 @@ public: // control the exit behaviour: by default, the program will exit the // main loop (and so, usually, terminate) when the last top-level - // program window is deleted. Beware that if you disabel this (with - // SetExitOnFrameDelete(FALSE)), you'll have to call ExitMainLoop() - // explicitly from somewhere. - void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } + // program window is deleted. Beware that if you disable this behaviour + // (with SetExitOnFrameDelete(FALSE)), you'll have to call + // ExitMainLoop() explicitly from somewhere. + void SetExitOnFrameDelete(bool flag) + { m_exitOnFrameDelete = flag ? Yes : No; } + bool GetExitOnFrameDelete() const + { return m_exitOnFrameDelete == Yes; } #endif // wxUSE_GUI @@ -381,13 +389,21 @@ protected: wxString m_vendorName, // vendor name (ACME Inc) m_appName, // app name m_className; // class name - + #if wxUSE_GUI // the main top level window - may be NULL wxWindow *m_topWindow; - // if TRUE, exit the main loop when the last top level window is deleted - bool m_exitOnFrameDelete; + // if Yes, exit the main loop when the last top level window is deleted, if + // No don't do it and if Later -- only do it once we reach our OnRun() + // + // the explanation for using this strange scheme is given in appcmn.cpp + enum + { + Later = -1, + No, + Yes + } m_exitOnFrameDelete; // TRUE if the apps whats to use the best visual on systems where // more than one are available (Sun, SGI, XFree86 4.0 ?)