X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/910426ee7bbd9f5959b4d5d075b35f0e8e3b52a9..a80e5f9e5b9d3d79865a0140caa714fafcd3808c:/src/common/appbase.cpp diff --git a/src/common/appbase.cpp b/src/common/appbase.cpp index 40e4147114..5971f3962b 100644 --- a/src/common/appbase.cpp +++ b/src/common/appbase.cpp @@ -33,12 +33,11 @@ #endif // wxUSE_LOG #endif //WX_PRECOMP +#include "wx/utils.h" #include "wx/apptrait.h" #include "wx/cmdline.h" #include "wx/confbase.h" -#if wxUSE_FONTMAP - #include "wx/fontmap.h" -#endif // wxUSE_FONTMAP +#include "wx/filename.h" #include "wx/msgout.h" #include "wx/tokenzr.h" @@ -50,9 +49,20 @@ #include "wx/msw/private.h" // includes windows.h for MessageBox() #endif +#if wxUSE_FONTMAP + #include "wx/fontmap.h" +#endif // wxUSE_FONTMAP + #if defined(__WXMAC__) - #include "wx/mac/private.h" // includes mac headers -#endif + // VZ: MacTypes.h is enough under Mac OS X (where I could test it) but + // I don't know which headers are needed under earlier systems so + // include everything when in doubt + #ifdef __DARWIN__ + #include "MacTypes.h" + #else + #include "wx/mac/private.h" // includes mac headers + #endif +#endif // __WXMAC__ // ---------------------------------------------------------------------------- // private functions prototypes @@ -79,7 +89,7 @@ // global vars // ---------------------------------------------------------------------------- -wxApp *wxTheApp = NULL; +wxAppConsole *wxAppConsole::ms_appInstance = NULL; wxAppInitializerFunction wxAppConsole::ms_appInitFn = NULL; @@ -95,7 +105,7 @@ wxAppConsole::wxAppConsole() { m_traits = NULL; - wxTheApp = (wxApp *)this; + ms_appInstance = this; #ifdef __WXDEBUG__ SetTraceMasks(); @@ -107,6 +117,29 @@ wxAppConsole::~wxAppConsole() delete m_traits; } +// ---------------------------------------------------------------------------- +// initilization/cleanup +// ---------------------------------------------------------------------------- + +bool wxAppConsole::Initialize(int& argc, wxChar **argv) +{ + // remember the command line arguments + this->argc = argc; + this->argv = argv; + + if ( m_appName.empty() && argv ) + { + // the application name is, by default, the name of its executable file + wxFileName::SplitPath(argv[0], NULL, &m_appName, NULL); + } + + return true; +} + +void wxAppConsole::CleanUp() +{ +} + // ---------------------------------------------------------------------------- // OnXXX() callbacks // ---------------------------------------------------------------------------- @@ -171,7 +204,7 @@ void wxAppConsole::Exit() wxAppTraits *wxAppConsole::CreateTraits() { - return wxAppTraits::CreateConsole(); + return new wxConsoleAppTraits; } wxAppTraits *wxAppConsole::GetTraits() @@ -224,11 +257,11 @@ void wxAppConsole::ProcessPendingEvents() } // iterate until the list becomes empty - wxNode *node = wxPendingEvents->GetFirst(); + wxList::compatibility_iterator node = wxPendingEvents->GetFirst(); while (node) { wxEvtHandler *handler = (wxEvtHandler *)node->GetData(); - delete node; + wxPendingEvents->Erase(node); // In ProcessPendingEvents(), new handlers might be add // and we can safely leave the critical section here. @@ -473,6 +506,12 @@ wxFontMapper *wxConsoleAppTraitsBase::CreateFontMapper() #endif // wxUSE_FONTMAP +wxRendererNative *wxConsoleAppTraitsBase::CreateRenderer() +{ + // console applications don't use renderers + return NULL; +} + #ifdef __WXDEBUG__ bool wxConsoleAppTraitsBase::ShowAssertDialog(const wxString& msg) { @@ -509,11 +548,6 @@ bool wxAppTraitsBase::ShowAssertDialog(const wxString& msg) #endif // __WXDEBUG__ -wxAppTraits *wxAppTraitsBase::CreateConsole() -{ - return new wxConsoleAppTraits; -} - // ============================================================================ // global functions implementation // ============================================================================ @@ -721,7 +755,7 @@ void ShowAssertDialog(const wxChar *szFile, if ( !s_bNoAsserts ) { // send it to the normal log destination - wxLogDebug(_T("%s"), msg); + wxLogDebug(_T("%s"), msg.c_str()); if ( traits ) {