// 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
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
{ 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"