X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba161d7e9579de457aedcf24c75fd24a2c024534..a9cb577a6f19ea0d3bf0d59c988df9e002b29110:/src/common/appcmn.cpp diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp index 6a20f95878..665e19c19a 100644 --- a/src/common/appcmn.cpp +++ b/src/common/appcmn.cpp @@ -74,15 +74,6 @@ 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 @@ -191,6 +182,12 @@ void wxAppBase::SetActive(bool active, wxWindow * WXUNUSED(lastFocus)) #endif // wxUSE_GUI +int wxAppBase::FilterEvent(wxEvent& WXUNUSED(event)) +{ + // process the events normally by default + return -1; +} + // ---------------------------------------------------------------------------- // cmd line parsing // ---------------------------------------------------------------------------- @@ -375,9 +372,17 @@ bool wxAppBase::CheckBuildOptions(const wxBuildOptions& opts) 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__ @@ -419,23 +424,22 @@ void wxTrap() // 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 ) { @@ -496,7 +500,10 @@ void ShowAssertDialog(const wxChar *szFile, int nLine, const wxChar *szMsg) } // 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; @@ -517,20 +524,23 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) { // 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