X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4d4ec2a50740e7cd0d9b57113d0a9925b4c9918c..5a3eee0dbafc6d2b6afa4bab9926c094abe5119b:/src/gtk/app.cpp diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index e811ba6d49..823da625a2 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -26,8 +26,8 @@ #include #endif -#include "wx/gtk/private.h" #include "wx/apptrait.h" +#include "wx/fontmap.h" #if wxUSE_LIBHILDON #include @@ -37,7 +37,8 @@ #include #endif // wxUSE_LIBHILDON2 -#include +#include +#include "wx/gtk/private.h" //----------------------------------------------------------------------------- // link GnomeVFS @@ -85,7 +86,7 @@ static void wx_add_idle_hooks() } } // "size_allocate" hook - // Needed to match the behavior of the old idle system, + // Needed to match the behaviour of the old idle system, // but probably not necessary. { static bool hook_installed; @@ -124,7 +125,7 @@ bool wxApp::DoIdle() #if wxDEBUG_LEVEL // don't generate the idle events while the assert modal dialog is shown, - // this matches the behavior of wxMSW + // this matches the behaviour of wxMSW if (m_isInAssert) return false; #endif @@ -228,6 +229,7 @@ bool wxApp::OnInitGui() if ( !wxAppBase::OnInitGui() ) return false; +#ifndef __WXGTK3__ // if this is a wxGLApp (derived from wxApp), and we've already // chosen a specific visual, then derive the GdkVisual from that if ( GetXVisualInfo() ) @@ -265,6 +267,7 @@ bool wxApp::OnInitGui() } } } +#endif #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 if ( !GetHildonProgram() ) @@ -277,21 +280,6 @@ bool wxApp::OnInitGui() return true; } -GdkVisual *wxApp::GetGdkVisual() -{ - GdkVisual *visual = NULL; - - XVisualInfo *xvi = (XVisualInfo *)GetXVisualInfo(); - if ( xvi ) - visual = gdkx_visual_get( xvi->visualid ); - else - visual = gdk_drawable_get_visual( wxGetRootWindow()->window ); - - wxASSERT( visual ); - - return visual; -} - // use unusual names for the parameters to avoid conflict with wxApp::arg[cv] bool wxApp::Initialize(int& argc_, wxChar **argv_) { @@ -309,6 +297,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) // gtk+ 2.0 supports Unicode through UTF-8 strings wxConvCurrent = &wxConvUTF8; +#ifdef __UNIX__ // decide which conversion to use for the file names // (1) this variable exists for the sole purpose of specifying the encoding @@ -324,8 +313,24 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) // (2) if a non default locale is set, assume that the user wants his // filenames in this locale too encName = wxLocale::GetSystemEncodingName().Upper(); + + // But don't consider ASCII in this case. + if ( !encName.empty() ) + { +#if wxUSE_FONTMAP + wxFontEncoding enc = wxFontMapperBase::GetEncodingFromName(encName); + if ( enc == wxFONTENCODING_DEFAULT ) +#else // !wxUSE_FONTMAP + if ( encName == wxT("US-ASCII") ) +#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP + { + // This means US-ASCII when returned from GetEncodingFromName(). + encName.clear(); + } + } + // (3) finally use UTF-8 by default - if (encName.empty() || encName == wxT("US-ASCII")) + if ( encName.empty() ) encName = wxT("UTF-8"); wxSetEnv(wxT("G_FILENAME_ENCODING"), encName); } @@ -341,6 +346,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) #endif // wxUSE_INTL static wxConvBrokenFileNames fileconv(encName); wxConvFileName = &fileconv; +#endif // __UNIX__ bool init_result; @@ -362,7 +368,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) init_result = true; // is there a _check() version of this? gpe_application_init( &argcGTK, &argvGTK ); #else - init_result = gtk_init_check( &argcGTK, &argvGTK ); + init_result = gtk_init_check( &argcGTK, &argvGTK ) != 0; #endif wxUpdateLocaleIsUtf8(); @@ -437,7 +443,7 @@ bool wxApp::Initialize(int& argc_, wxChar **argv_) return false; } - // we can not enter threads before gtk_init is done + // we cannot enter threads before gtk_init is done gdk_threads_enter(); #if wxUSE_INTL @@ -528,8 +534,8 @@ void wxGUIAppTraits::MutexGuiLeave() #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 // Maemo-specific method: get the main program object HildonProgram *wxApp::GetHildonProgram() -{ - return hildon_program_get_instance(); +{ + return hildon_program_get_instance(); } - + #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2