X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/956dbab1eb04b32a006303df25fd05116eb5ef11..8aaef28406647d6aa706c34f57dd151f00b18e5b:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index a81c4dd205..b307cdd8e3 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -8,7 +8,6 @@ ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ - #pragma implementation "appbase.h" #pragma implementation "app.h" #endif @@ -48,10 +47,6 @@ wxApp *wxTheApp = (wxApp *) NULL; wxAppInitializerFunction wxAppBase::m_appInitFn = (wxAppInitializerFunction) NULL; -#if wxUSE_THREADS -extern wxList *wxPendingEvents; -extern wxCriticalSection *wxPendingEventsLocker; -#endif extern wxResourceCache *wxTheResourceCache; extern bool g_isIdle; @@ -127,7 +122,7 @@ unsigned char g_palette[64*3] = // local functions //----------------------------------------------------------------------------- -extern void wxFlushResources(void); +extern void wxFlushResources(); //----------------------------------------------------------------------------- // global functions @@ -144,7 +139,7 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) ); bool wxYield() { bool has_idle = (wxTheApp->m_idleTag != 0); - + if (has_idle) { /* We need to temporarily remove idle callbacks or the loop will @@ -160,20 +155,20 @@ bool wxYield() might have been changed (it also will update other things set from OnUpdateUI() which is a nice (and desired) side effect) */ while (wxTheApp->ProcessIdle()) { } - + if (has_idle) { /* re-add idle handler */ wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); } - + return TRUE; } gint wxapp_idle_callback( gpointer WXUNUSED(data) ) { if (!wxTheApp) return TRUE; - + #if (GTK_MINOR_VERSION > 0) /* when getting called from GDK's idle handler we are no longer within GDK's grab on the GUI @@ -206,7 +201,7 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) ) void wxapp_install_idle_handler() { - wxASSERT_MSG( wxTheApp->m_idleTag == 0, _T("attempt to install idle handler twice") ); + wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") ); /* this routine gets called by all event handlers indicating that the idle is over. */ @@ -224,14 +219,14 @@ static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ); void wxapp_install_thread_wakeup() { if (wxTheApp->m_wakeUpTimerTag) return; - + wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 100, wxapp_wakeup_timerout_callback, (gpointer) NULL ); } void wxapp_uninstall_thread_wakeup() { if (!wxTheApp->m_wakeUpTimerTag) return; - + gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag ); wxTheApp->m_wakeUpTimerTag = 0; } @@ -265,7 +260,8 @@ static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ) return TRUE; } -#endif + +#endif // wxUSE_THREADS //----------------------------------------------------------------------------- // wxApp @@ -397,7 +393,7 @@ bool wxApp::OnInitGui() index |= (g >> (5 - vis->green_prec)) << vis->green_shift; index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift; #else - wxFAIL_MSG( _T("Unsupported graphics hardware") ); + wxFAIL_MSG( wxT("Unsupported graphics hardware") ); #endif } m_colorCube[ (r*1024) + (g*32) + b ] = index; @@ -414,14 +410,6 @@ bool wxApp::ProcessIdle() event.SetEventObject( this ); ProcessEvent( event ); - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - win->OnInternalIdle(); - node = node->GetNext(); - } - return event.MoreRequested(); } @@ -435,11 +423,9 @@ void wxApp::OnIdle( wxIdleEvent &event ) s_inOnIdle = TRUE; -#if wxUSE_THREADS /* Resend in the main thread events which have been prepared in other threads */ ProcessPendingEvents(); -#endif /* 'Garbage' collection of windows deleted with Close(). */ DeletePendingObjects(); @@ -485,6 +471,8 @@ bool wxApp::SendIdleEvents( wxWindow* win ) win->ProcessEvent(event); + win->OnInternalIdle(); + if (event.MoreRequested()) needMore = TRUE; @@ -526,25 +514,6 @@ void wxApp::Dispatch() gtk_main_iteration(); } -#if wxUSE_THREADS -void wxApp::ProcessPendingEvents() -{ - wxNode *node = wxPendingEvents->First(); - wxCriticalSectionLocker locker(*wxPendingEventsLocker); - - while (node) - { - wxEvtHandler *handler = (wxEvtHandler *)node->Data(); - - handler->ProcessPendingEvents(); - - delete node; - - node = wxPendingEvents->First(); - } -} -#endif // wxUSE_THREADS - void wxApp::DeletePendingObjects() { wxNode *node = wxPendingDelete.First(); @@ -593,8 +562,6 @@ bool wxApp::Initialize() wxInitializeResourceSystem(); #endif - wxImage::InitStandardHandlers(); - wxModule::RegisterModules(); if (!wxModule::InitializeModules()) return FALSE; @@ -628,8 +595,6 @@ void wxApp::CleanUp() wxDeleteStockLists(); - wxImage::CleanUpHandlers(); - delete wxTheApp; wxTheApp = (wxApp*) NULL; @@ -650,7 +615,7 @@ void wxApp::CleanUp() #if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT if (wxDebugContext::CountObjectsLeft() > 0) { - wxLogDebug(_T("There were memory leaks.\n")); + wxLogDebug(wxT("There were memory leaks.\n")); wxDebugContext::Dump(); wxDebugContext::PrintStatistics(); } @@ -663,9 +628,8 @@ void wxApp::CleanUp() wxLog *oldLog = wxLog::SetActiveTarget( (wxLog*) NULL ); if (oldLog) delete oldLog; -} - #endif // wxUSE_LOG +} //----------------------------------------------------------------------------- // wxEntry @@ -675,7 +639,11 @@ int wxEntry( int argc, char *argv[] ) { gtk_set_locale(); +#if wxUSE_WCHAR_T if (!wxOKlibc()) wxConvCurrent = &wxConvLocal; +#else + if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL; +#endif gtk_init( &argc, &argv ); @@ -687,7 +655,7 @@ int wxEntry( int argc, char *argv[] ) if (!wxTheApp) { wxCHECK_MSG( wxApp::GetInitializerFunction(), -1, - _T("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") ); + wxT("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") ); wxAppInitializerFunction app_ini = wxApp::GetInitializerFunction(); @@ -696,7 +664,7 @@ int wxEntry( int argc, char *argv[] ) wxTheApp = (wxApp*) test_app; } - wxCHECK_MSG( wxTheApp, -1, _T("wxWindows error: no application object") ); + wxCHECK_MSG( wxTheApp, -1, wxT("wxWindows error: no application object") ); wxTheApp->argc = argc; #if wxUSE_UNICODE @@ -800,7 +768,7 @@ wxApp::GetStdIcon(int which) const return wxIcon(warning_xpm); default: - wxFAIL_MSG(_T("requested non existent standard icon")); + wxFAIL_MSG(wxT("requested non existent standard icon")); // still fall through case wxICON_HAND: