X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/863136dea65adc3103b7c94272d0ed6e12346de0..aa99e0cd2242db04fe1f9bb7d91aea545def2422:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index e58a9c8e97..17b4f900b7 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -35,6 +35,10 @@ #include "wx/module.h" #include "wx/image.h" +#ifdef __WXGPE__ +#include +#endif + #ifdef __WXUNIVERSAL__ #include "wx/univ/theme.h" #include "wx/univ/renderer.h" @@ -399,7 +403,6 @@ END_EVENT_TABLE() wxApp::wxApp() { - m_initialized = FALSE; #ifdef __WXDEBUG__ m_isInAssert = FALSE; #endif // __WXDEBUG__ @@ -538,49 +541,17 @@ GdkVisual *wxApp::GetGdkVisual() return visual; } -int wxApp::MainLoop() -{ - gtk_main(); - return 0; -} - -void wxApp::Exit() -{ - // VZ: no idea why is it different from ExitMainLoop() but this is what - // wxExit() used to do - gtk_main_quit(); -} - -void wxApp::ExitMainLoop() -{ - if (gtk_main_level() > 0) - gtk_main_quit(); -} - -bool wxApp::Initialized() -{ - return m_initialized; -} - -bool wxApp::Pending() -{ - return (gtk_events_pending() > 0); -} - -void wxApp::Dispatch() -{ - gtk_main_iteration(); -} - bool wxApp::Initialize(int& argc, wxChar **argv) { + bool init_result; + #if wxUSE_THREADS // GTK 1.2 up to version 1.2.3 has broken threads if ((gtk_major_version == 1) && (gtk_minor_version == 2) && (gtk_micro_version < 4)) { - printf( "wxWindows warning: GUI threading disabled due to outdated GTK version\n" ); + printf( "wxWidgets warning: GUI threading disabled due to outdated GTK version\n" ); } else { @@ -617,7 +588,13 @@ bool wxApp::Initialize(int& argc, wxChar **argv) argvGTK[argc] = NULL; int argcGTK = argc; - gtk_init( &argcGTK, &argvGTK ); + +#ifdef __WXGPE__ + init_result = true; // is there a _check() version of this? + gpe_application_init( &argcGTK, &argvGTK ); +#else + init_result = gtk_init_check( &argcGTK, &argvGTK ); +#endif if ( argcGTK != argc ) { @@ -644,9 +621,14 @@ bool wxApp::Initialize(int& argc, wxChar **argv) #else // !wxUSE_UNICODE // gtk_init() shouldn't actually change argv itself (just its contents) so // it's ok to pass pointer to it - gtk_init( &argc, &argv ); + init_result = gtk_init_check( &argc, &argv ); #endif // wxUSE_UNICODE/!wxUSE_UNICODE + if (!init_result) { + wxLogError(wxT("Unable to initialize gtk, is DISPLAY set properly?")); + return false; + } + // we can not enter threads before gtk_init is done gdk_threads_enter(); @@ -663,8 +645,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv) wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding()); #endif - wxGetRootWindow(); - return true; }