wxAppConsoleBase::~wxAppConsoleBase()
{
+ // we're being destroyed and using this object from now on may not work or
+ // even crash so don't leave dangling pointers to it
+ ms_appInstance = NULL;
+
delete m_traits;
}
// initialization/cleanup
// ----------------------------------------------------------------------------
-bool wxAppConsoleBase::Initialize(int& WXUNUSED(argc), wxChar **argv)
+bool wxAppConsoleBase::Initialize(int& WXUNUSED(argc), wxChar **WXUNUSED(argv))
{
#if wxUSE_INTL
GetTraits()->SetLocale();
#endif // wxUSE_INTL
+ return true;
+}
+
+wxString wxAppConsoleBase::GetAppName() const
+{
+ wxString name = m_appName;
#ifndef __WXPALMOS__
- if ( m_appName.empty() && argv && argv[0] )
+ if ( name.empty() )
{
- // the application name is, by default, the name of its executable file
- wxFileName::SplitPath(argv[0], NULL, &m_appName, NULL);
+ if ( argv )
+ {
+ // the application name is, by default, the name of its executable file
+ wxFileName::SplitPath(argv[0], NULL, &name, NULL);
+ }
}
#endif // !__WXPALMOS__
+ return name;
+}
- return true;
+wxString wxAppConsoleBase::GetAppDisplayName() const
+{
+ // use the explicitly provided display name, if any
+ if ( !m_appDisplayName.empty() )
+ return m_appDisplayName;
+
+ // if the application name was explicitly set, use it as is as capitalizing
+ // it won't always produce good results
+ if ( !m_appName.empty() )
+ return m_appName;
+
+ // if neither is set, use the capitalized version of the program file as
+ // it's the most reasonable default
+ return GetAppName().Capitalize();
}
wxEventLoopBase *wxAppConsoleBase::CreateMainLoop()
event.SetEventObject(this);
ProcessEvent(event);
+#if wxUSE_LOG
+ // flush the logged messages if any (do this after processing the events
+ // which could have logged new messages)
+ wxLog::FlushActive();
+#endif
+
return event.MoreRequested();
}
bool wxAppConsoleBase::IsScheduledForDestruction(wxObject *object) const
{
- return wxPendingDelete.Member(object) != NULL;
+ return wxPendingDelete.Member(object);
}
void wxAppConsoleBase::ScheduleForDestruction(wxObject *object)
wxAssertHandler_t wxTheAssertHandler = wxDefaultAssertHandler;
+void wxSetDefaultAssertHandler()
+{
+ wxTheAssertHandler = wxDefaultAssertHandler;
+}
+
void wxOnAssert(const wxString& file,
int line,
const wxString& func,