X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd435a79ed2c79e20621fbe6b1013a86a9e05fed..79099b80ad442cb93b2f7df716bf3d1dd80b446f:/include/wx/app.h diff --git a/include/wx/app.h b/include/wx/app.h index f172a41422..887ddbdaad 100644 --- a/include/wx/app.h +++ b/include/wx/app.h @@ -92,7 +92,7 @@ public: // class OnInit() to do it. virtual bool OnInit(); - // this is here only temproary hopefully (FIXME) + // this is here only temporary hopefully (FIXME) virtual bool OnInitGui() { return true; } // This is the replacement for the normal main(): all program work should @@ -117,6 +117,12 @@ public: virtual void OnFatalException() { } #if wxUSE_EXCEPTIONS + // function called if an uncaught exception is caught inside the main + // event loop: it may return true to continue running the event loop or + // false to stop it (in the latter case it may rethrow the exception as + // well) + virtual bool OnExceptionInMainLoop(); + // Called when an unhandled C++ exception occurs inside OnRun(): note that // the exception type is lost by now, so if you really want to handle the // exception you should override OnRun() and put a try/catch around @@ -607,41 +613,17 @@ public: { wxApp::SetInitializerFunction(fn); } }; -// Here's a macro you can use if your compiler really, really wants main() to -// be in your main program (e.g. hello.cpp). Now IMPLEMENT_APP should add this -// code if required. +// the code below defines a IMPLEMENT_WXWIN_MAIN macro which you can use if +// your compiler really, really wants main() to be in your main program (e.g. +// hello.cpp). Now IMPLEMENT_APP should add this code if required. #define IMPLEMENT_WXWIN_MAIN_CONSOLE \ int main(int argc, char **argv) { return wxEntry(argc, argv); } -#if !wxUSE_GUI || !defined(__WXMSW__) - #define IMPLEMENT_WXWIN_MAIN \ - IMPLEMENT_WXWIN_MAIN_CONSOLE -#elif defined(__WXMSW__) - // we need HINSTANCE declaration to define WinMain() - #include "wx/msw/wrapwin.h" - - #ifdef SW_SHOWNORMAL - #define wxSW_SHOWNORMAL SW_SHOWNORMAL - #else - #define wxSW_SHOWNORMAL 0 - #endif - - #define IMPLEMENT_WXWIN_MAIN \ - extern int wxEntry(HINSTANCE hInstance, \ - HINSTANCE hPrevInstance = NULL, \ - char *pCmdLine = NULL, \ - int nCmdShow = wxSW_SHOWNORMAL); \ - extern "C" int WINAPI WinMain(HINSTANCE hInstance, \ - HINSTANCE hPrevInstance, \ - char *lpCmdLine, \ - int nCmdShow) \ - { \ - return wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow); \ - } -#else - #define IMPLEMENT_WXWIN_MAIN -#endif +// port-specific header could have defined it already in some special wau +#ifndef IMPLEMENT_WXWIN_MAIN + #define IMPLEMENT_WXWIN_MAIN IMPLEMENT_WXWIN_MAIN_CONSOLE +#endif // defined(IMPLEMENT_WXWIN_MAIN) #ifdef __WXUNIVERSAL__ #include "wx/univ/theme.h"