]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/app.cpp
corrected off by 1 error in cMB2WC() call (thanks valgrind)
[wxWidgets.git] / src / gtk / app.cpp
index ff408b679d5fb23fe15d2972b56d17e590213fd5..33cf2dc6a0e76688f7ab048bade8bd84cb995280 100644 (file)
@@ -266,10 +266,6 @@ GtkWidget* wxGetRootWindow()
 
 IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler)
 
-BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
-    EVT_IDLE(wxAppBase::OnIdle)
-END_EVENT_TABLE()
-
 wxApp::wxApp()
 {
 #ifdef __WXDEBUG__
@@ -346,9 +342,10 @@ GdkVisual *wxApp::GetGdkVisual()
     return visual;
 }
 
-bool wxApp::Initialize(int& argc, wxChar **argv)
+// use unusual names for the parameters to avoid conflict with wxApp::arg[cv]
+bool wxApp::Initialize(int& argc_, wxChar **argv_)
 {
-    if ( !wxAppBase::Initialize(argc, argv) )
+    if ( !wxAppBase::Initialize(argc_, argv_) )
         return false;
 
 #if wxUSE_THREADS
@@ -407,15 +404,15 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #if wxUSE_UNICODE
     // gtk_init() wants UTF-8, not wchar_t, so convert
     int i;
-    char **argvGTK = new char *[argc + 1];
-    for ( i = 0; i < argc; i++ )
+    char **argvGTK = new char *[argc_ + 1];
+    for ( i = 0; i < argc_; i++ )
     {
-        argvGTK[i] = wxStrdupA(wxConvUTF8.cWX2MB(argv[i]));
+        argvGTK[i] = wxStrdupA(wxConvUTF8.cWX2MB(argv_[i]));
     }
 
-    argvGTK[argc] = NULL;
+    argvGTK[argc_] = NULL;
 
-    int argcGTK = argc;
+    int argcGTK = argc_;
 
 #ifdef __WXGPE__
     init_result = true;  // is there a _check() version of this?
@@ -423,19 +420,20 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 #else
     init_result = gtk_init_check( &argcGTK, &argvGTK );
 #endif
+    wxUpdateLocaleIsUtf8();
 
-    if ( argcGTK != argc )
+    if ( argcGTK != argc_ )
     {
         // we have to drop the parameters which were consumed by GTK+
         for ( i = 0; i < argcGTK; i++ )
         {
-            while ( strcmp(wxConvUTF8.cWX2MB(argv[i]), argvGTK[i]) != 0 )
+            while ( strcmp(wxConvUTF8.cWX2MB(argv_[i]), argvGTK[i]) != 0 )
             {
-                memmove(argv + i, argv + i + 1, (argc - i)*sizeof(*argv));
+                memmove(argv_ + i, argv_ + i + 1, (argc_ - i)*sizeof(*argv_));
             }
         }
 
-        argc = argcGTK;
+        argc_ = argcGTK;
     }
     //else: gtk_init() didn't modify our parameters
 
@@ -447,14 +445,14 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 
     delete [] argvGTK;
 #else // !wxUSE_UNICODE
-    // gtk_init() shouldn't actually change argv itself (just its contents) so
+    // gtk_init() shouldn't actually change argv_ itself (just its contents) so
     // it's ok to pass pointer to it
-    init_result = gtk_init_check( &argc, &argv );
+    init_result = gtk_init_check( &argc_, &argv_ );
 #endif // wxUSE_UNICODE/!wxUSE_UNICODE
 
     // update internal arg[cv] as GTK+ may have removed processed options:
-    this->argc = argc;
-    this->argv = argv;
+    this->argc = argc_;
+    this->argv = argv_;
 
     if ( m_traits )
     {
@@ -465,10 +463,10 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
         wxArrayString opt, desc;
         m_traits->GetStandardCmdLineOptions(opt, desc);
 
-        for ( int i = 0; i < argc; i++ )
+        for ( int i = 0; i < argc_; i++ )
         {
             // leave just the names of the options with values
-            const wxString str(wxString(argv[i]).BeforeFirst('='));
+            const wxString str = wxString(argv_[i]).BeforeFirst('=');
 
             for ( size_t j = 0; j < opt.size(); j++ )
             {
@@ -481,7 +479,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
                     // options) it, so abort, just as we do if incorrect
                     // program option is given
                     wxLogError(_("Invalid GTK+ command line option, use \"%s --help\""),
-                               argv[0]);
+                               argv_[0]);
                     return false;
                 }
             }