void OnEndSession(wxCloseEvent& event);
void OnQueryEndSession(wxCloseEvent& event);
+#if wxUSE_EXCEPTIONS
+ virtual bool OnExceptionInMainLoop();
+#endif // wxUSE_EXCEPTIONS
+
protected:
int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
- /* Windows-specific wxApp definitions */
-
public:
-
// Implementation
static bool RegisterWindowClasses();
static bool UnregisterWindowClasses();
- // idle processing
- // ---------------
-
#if wxUSE_RICHEDIT
// initialize the richedit DLL of (at least) given version, return TRUE if
// ok (Win95 has version 1, Win98/NT4 has 1 and 2, W2K has 3)
// wasn't found at all
static int GetComCtl32Version();
-public:
// the SW_XXX value to be used for the frames opened by the application
// (currently seems unused which is a bug -- TODO)
static int m_nCmdShow;
#include "wx/msw/wrapcctl.h"
+// For MB_TASKMODAL
+#ifdef __WXWINCE__
+#include "wx/msw/wince/missing.h"
+#endif
+
#if (!defined(__MINGW32__) || wxCHECK_W32API_VERSION( 2, 0 )) && \
!defined(__CYGWIN__) && !defined(__DIGITALMARS__) && !defined(__WXWINCE__) && \
(!defined(_MSC_VER) || (_MSC_VER > 1100))
delete [] argv;
}
+// ----------------------------------------------------------------------------
+// wxApp idle handling
+// ----------------------------------------------------------------------------
+
void wxApp::OnIdle(wxIdleEvent& event)
{
wxAppBase::OnIdle(event);
}
}
+// ----------------------------------------------------------------------------
+// other wxApp event hanlders
+// ----------------------------------------------------------------------------
+
void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event))
{
if (GetTopWindow())
}
}
+// ----------------------------------------------------------------------------
+// miscellaneous
+// ----------------------------------------------------------------------------
+
/* static */
int wxApp::GetComCtl32Version()
{
return TRUE;
}
+#if wxUSE_EXCEPTIONS
+
+// ----------------------------------------------------------------------------
+// exception handling
+// ----------------------------------------------------------------------------
+
+bool wxApp::OnExceptionInMainLoop()
+{
+ // ask the user about what to do: use the Win32 API function here as it
+ // could be dangerous to use any wxWindows code in this state
+ switch (
+ ::MessageBox
+ (
+ NULL,
+ _T("An unhandled exception occurred. Press \"Abort\" to \
+terminate the program,\r\n\
+\"Retry\" to exit the program normally and \"Ignore\" to try to continue."),
+ _T("Unhandled exception"),
+ MB_ABORTRETRYIGNORE |
+ MB_ICONERROR|
+ MB_TASKMODAL
+ )
+ )
+ {
+ case IDABORT:
+ throw;
+
+ default:
+ wxFAIL_MSG( _T("unexpected MessageBox() return code") );
+ // fall through
+
+ case IDRETRY:
+ return false;
+
+ case IDIGNORE:
+ return true;
+ }
+}
+
+#endif // wxUSE_EXCEPTIONS