// Author: Vadim Zeitlin
// Modified by:
// Created: 19.06.2003 (extracted from common/appcmn.cpp)
-// RCS-ID: $Id$
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
return MainLoop();
}
+void wxAppConsoleBase::OnLaunched()
+{
+}
+
int wxAppConsoleBase::OnExit()
{
#if wxUSE_CONFIG
return app ? app->GetTraits() : NULL;
}
+/* static */
+wxAppTraits& wxAppConsoleBase::GetValidTraits()
+{
+ static wxConsoleAppTraits s_traitsConsole;
+ wxAppTraits* const traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
+
+ return traits ? *traits : s_traitsConsole;
+}
+
// ----------------------------------------------------------------------------
// wxEventLoop redirection
// ----------------------------------------------------------------------------
{
wxEventLoopBaseTiedPtr mainLoop(&m_mainLoop, CreateMainLoop());
+#if defined(__WXOSX__) && wxOSX_USE_COCOA_OR_IPHONE
+ // OnLaunched called from native app controller
+#else
+ if (wxTheApp)
+ wxTheApp->OnLaunched();
+#endif
+
return m_mainLoop ? m_mainLoop->Run() : -1;
}
#if wxDEBUG_LEVEL
// break into the debugger
+#ifndef wxTrap
+
void wxTrap()
{
#if defined(__WINDOWS__) && !defined(__WXMICROWIN__)
#endif // Win/Unix
}
+#endif // wxTrap already defined as a macro
+
// default assert handler
static void
wxDefaultAssertHandler(const wxString& file,
#if wxDEBUG_LEVEL
+bool wxTrapInAssert = false;
+
static
bool DoShowAssertDialog(const wxString& msg)
{
MB_YESNOCANCEL | MB_ICONSTOP ) )
{
case IDYES:
- wxTrap();
+ // If we called wxTrap() directly from here, the programmer would
+ // see this function and a few more calls between his own code and
+ // it in the stack trace which would be perfectly useless and often
+ // confusing. So instead just set the flag here and let the macros
+ // defined in wx/debug.h call wxTrap() themselves, this ensures
+ // that the debugger will show the line in the user code containing
+ // the failing assert.
+ wxTrapInAssert = true;
break;
case IDCANCEL: