wxAppBase::wxAppBase()
{
- // this function is defined by IMPLEMENT_APP() macro in the user code
- extern const wxBuildOptions& wxGetBuildOptions();
-
- if ( !CheckBuildOptions(wxGetBuildOptions()) )
- {
- wxLogFatalError(_T("Mismatch between the program and library build ")
- _T("versions detected."));
- }
-
wxTheApp = (wxApp *)this;
#if WXWIN_COMPATIBILITY_2_2
#endif // wxUSE_GUI
+int wxAppBase::FilterEvent(wxEvent& WXUNUSED(event))
+{
+ // process the events normally by default
+ return -1;
+}
+
// ----------------------------------------------------------------------------
// cmd line parsing
// ----------------------------------------------------------------------------
wxCMD_LINE_SWITCH,
_T(""),
OPTION_VERBOSE,
- gettext_noop("generate verbose log messages")
+ gettext_noop("generate verbose log messages"),
+ wxCMD_LINE_VAL_NONE,
+ 0x0
},
#endif // wxUSE_LOG
_T(""),
OPTION_THEME,
gettext_noop("specify the theme to use"),
- wxCMD_LINE_VAL_STRING
+ wxCMD_LINE_VAL_STRING,
+ 0x0
},
#endif // __WXUNIVERSAL__
_T(""),
OPTION_MODE,
gettext_noop("specify display mode to use (e.g. 640x480-16)"),
- wxCMD_LINE_VAL_STRING
+ wxCMD_LINE_VAL_STRING,
+ 0x0
},
#endif // __WXMGL__
// terminator
- { wxCMD_LINE_NONE }
+ {
+ wxCMD_LINE_NONE,
+ _T(""),
+ _T(""),
+ _T(""),
+ wxCMD_LINE_VAL_NONE,
+ 0x0
+ }
};
parser.SetDesc(cmdLineDesc);
int verMaj = wxMAJOR_VERSION,
verMin = wxMINOR_VERSION;
- return wxCMP(isDebug) && wxCMP(verMaj) && wxCMP(verMin);
+ if ( !(wxCMP(isDebug) && wxCMP(verMaj) && wxCMP(verMin)) )
+ {
+ wxLogFatalError(_T("Mismatch between the program and library build ")
+ _T("versions detected."));
+ // normally wxLogFatalError doesn't return
+ return FALSE;
+ }
#undef wxCMP
+
+ return TRUE;
}
#ifdef __WXDEBUG__
// show the assert modal dialog
static
-void ShowAssertDialog(const wxChar *szFile, int nLine, const wxChar *szMsg)
+void ShowAssertDialog(const wxChar *szFile,
+ int nLine,
+ const wxChar *szCond,
+ const wxChar *szMsg)
{
// this variable can be set to true to suppress "assert failure" messages
static bool s_bNoAsserts = FALSE;
wxChar szBuf[4096];
- // make life easier for people using VC++ IDE: clicking on the message
- // will take us immediately to the place of the failed assert
+ // make life easier for people using VC++ IDE by using this format: like
+ // this, clicking on the message will take us immediately to the place of
+ // the failed assert
wxSnprintf(szBuf, WXSIZEOF(szBuf),
-#ifdef __VISUALC__
- wxT("%s(%d): assert failed"),
-#else // !VC++
- // make the error message more clear for all the others
- wxT("Assert failed in file %s at line %d"),
-#endif // VC/!VC
- szFile, nLine);
+ wxT("%s(%d): assert \"%s\" failed"),
+ szFile, nLine, szCond);
if ( szMsg != NULL )
{
}
// this function is called when an assert fails
-void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg)
+void wxOnAssert(const wxChar *szFile,
+ int nLine,
+ const wxChar *szCond,
+ const wxChar *szMsg)
{
// FIXME MT-unsafe
static bool s_bInAssert = FALSE;
{
// by default, show the assert dialog box - we can't customize this
// behaviour
- ShowAssertDialog(szFile, nLine, szMsg);
+ ShowAssertDialog(szFile, nLine, szCond, szMsg);
}
else
{
// let the app process it as it wants
- wxTheApp->OnAssert(szFile, nLine, szMsg);
+ wxTheApp->OnAssert(szFile, nLine, szCond, szMsg);
}
s_bInAssert = FALSE;
}
-void wxAppBase::OnAssert(const wxChar *file, int line, const wxChar *msg)
+void wxAppBase::OnAssert(const wxChar *file,
+ int line,
+ const wxChar *cond,
+ const wxChar *msg)
{
- ShowAssertDialog(file, line, msg);
+ ShowAssertDialog(file, line, cond, msg);
}
#endif //WXDEBUG