Split up wxEntry so wxPython can use the bits it needs instead of

copying code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2000-03-11 07:25:01 +00:00
parent 7ff49f0c73
commit 954de0f158
2 changed files with 108 additions and 50 deletions

View File

@@ -565,7 +565,8 @@ void wxApp::CleanUp()
// wxEntry
//-----------------------------------------------------------------------------
int wxEntry( int argc, char *argv[] )
int wxEntryStart( int argc, char *argv[] )
{
#if wxUSE_THREADS
/* GTK 1.2 up to version 1.2.3 has broken threads */
@@ -601,6 +602,55 @@ int wxEntry( int argc, char *argv[] )
return -1;
}
return 0;
}
int wxEntryInitGui()
{
int retValue = 0;
if ( !wxTheApp->OnInitGui() )
retValue = -1;
wxRootWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_realize( wxRootWindow );
return retValue;
}
void wxEntryCleanup()
{
#if wxUSE_LOG
// flush the logged messages if any
wxLog *log = wxLog::GetActiveTarget();
if (log != NULL && log->HasPendingMessages())
log->Flush();
// continuing to use user defined log target is unsafe from now on because
// some resources may be already unavailable, so replace it by something
// more safe
wxLog *oldlog = wxLog::SetActiveTarget(new wxLogStderr);
if ( oldlog )
delete oldlog;
#endif // wxUSE_LOG
wxApp::CleanUp();
gdk_threads_leave();
}
int wxEntry( int argc, char *argv[] )
{
int err;
err = wxEntryStart(argc, argv);
if (err)
return err;
if (!wxTheApp)
{
wxCHECK_MSG( wxApp::GetInitializerFunction(), -1,
@@ -633,13 +683,8 @@ int wxEntry( int argc, char *argv[] )
wxStripExtension( name );
wxTheApp->SetAppName( name );
int retValue = 0;
if ( !wxTheApp->OnInitGui() )
retValue = -1;
wxRootWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_realize( wxRootWindow );
int retValue;
retValue = wxEntryInitGui();
// Here frames insert themselves automatically into wxTopLevelWindows by
// getting created in OnInit().
@@ -683,23 +728,7 @@ int wxEntry( int argc, char *argv[] )
}
}
#if wxUSE_LOG
// flush the logged messages if any
wxLog *log = wxLog::GetActiveTarget();
if (log != NULL && log->HasPendingMessages())
log->Flush();
// continuing to use user defined log target is unsafe from now on because
// some resources may be already unavailable, so replace it by something
// more safe
wxLog *oldlog = wxLog::SetActiveTarget(new wxLogStderr);
if ( oldlog )
delete oldlog;
#endif // wxUSE_LOG
wxApp::CleanUp();
gdk_threads_leave();
wxEntryCleanup();
return retValue;
}