bool wxEntryStart(int& argc, wxChar **argv) { // do minimal, always necessary, initialization // -------------------------------------------- // initialize wxRTTI if ( !DoCommonPreInit() ) { return false; } // first of all, we need an application object // ------------------------------------------- // the user might have already created it himself somehow wxAppPtr app(wxTheApp); if ( !app.get() ) { // if not, he might have used IMPLEMENT_APP() to give us a function to // create it wxAppInitializerFunction fnCreate = wxApp::GetInitializerFunction(); if ( fnCreate ) { // he did, try to create the custom wxApp object app.Set((*fnCreate)()); } } if ( !app.get() ) { // either IMPLEMENT_APP() was not used at all or it failed -- in any // case we still need something app.Set(new wxDummyConsoleApp); } // wxApp initialization: this can be customized // -------------------------------------------- if ( !app->Initialize(argc, argv) ) { return false; } wxCallAppCleanup callAppCleanup(app.get()); // for compatibility call the old initialization function too if ( !app->OnInitGui() ) return false; // common initialization after wxTheApp creation // --------------------------------------------- if ( !DoCommonPostInit() ) return false; // prevent the smart pointer from destroying its contents app.release(); // and the cleanup object from doing cleanup callAppCleanup.Dismiss(); return true; }
bool wxEntryStart(int& argc, wxChar **argv) { // do minimal, always necessary, initialization // -------------------------------------------- // initialize wxRTTI if ( !DoCommonPreInit() ) { return false; } // first of all, we need an application object // ------------------------------------------- // the user might have already created it himself somehow wxAppPtr app(wxTheApp); if ( !app.get() ) { // if not, he might have used IMPLEMENT_APP() to give us a function to // create it wxAppInitializerFunction fnCreate = wxApp::GetInitializerFunction(); if ( fnCreate ) { // he did, try to create the custom wxApp object app.Set((*fnCreate)()); } } if ( !app.get() ) { // either IMPLEMENT_APP() was not used at all or it failed -- in any // case we still need something app.Set(new wxDummyConsoleApp); } // wxApp initialization: this can be customized // -------------------------------------------- if ( !app->Initialize(argc, argv) ) { return false; } wxCallAppCleanup callAppCleanup(app.get()); // for compatibility call the old initialization function too if ( !app->OnInitGui() ) return false; // common initialization after wxTheApp creation // --------------------------------------------- if ( !DoCommonPostInit() ) return false; // prevent the smart pointer from destroying its contents app.release(); // and the cleanup object from doing cleanup callAppCleanup.Dismiss(); #if wxUSE_LOG // now that we have a valid wxApp (wxLogGui would have crashed if we used // it before now), we can delete the temporary sink we had created for the // initialization messages -- the next time logging function is called, the // sink will be recreated but this time wxAppTraits will be used delete wxLog::SetActiveTarget(NULL); #endif // wxUSE_LOG return true; }