]> git.saurik.com Git - wxWidgets.git/commitdiff
wxGTK now uses gtk_init_check so wxPython can raise an exception if
authorRobin Dunn <robin@alldunn.com>
Fri, 21 May 2004 00:23:50 +0000 (00:23 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 21 May 2004 00:23:50 +0000 (00:23 +0000)
there is no DISPLAY available or other initializaion problem.

wx.GetKeyState now has an implementation for wxGTK and is able to
detect the up/down or toggle state of modifier and toggle keys.

The LC_NUMERIC locale is now reset back to "C" (compatibility) when
running on wxGTK to work around the fact that GTK requires the locale
to be set to the system settings but Python depends on LC_NUMERIC
remaining compatible with "C".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/docs/CHANGES.txt
wxPython/src/_functions.i
wxPython/src/_intl_ex.py
wxPython/src/gtk/_gdi.py
wxPython/src/gtk/_misc_wrap.cpp
wxPython/src/helpers.cpp

index 5d82aa0f0344a44e3a379ffd5fd8bc831caabbc5..350aa5dbe559a0fa2fd131001633fc0540533981 100644 (file)
@@ -50,9 +50,19 @@ a very small amount of overhead and removes several unneccessary
 problems.
 
 Replaced wx/lib/pubsub.py with a version that uses weak references to
-track the subscribers.  Thanks go to Oliver Schoenborn and Robb
-Shecter.
+track the subscribers, plus other fixes/additions.  Thanks go to
+Oliver Schoenborn and Robb Shecter.
 
+wxGTK now uses gtk_init_check so wxPython can raise an exception if
+there is no DISPLAY available or other initializaion problem.
+
+wx.GetKeyState now has an implementation for wxGTK and is able to
+detect the up/down or toggle state of modifier and toggle keys.
+
+The LC_NUMERIC locale is now reset back to "C" (compatibility) when
+running on wxGTK to work around the fact that GTK requires the locale
+to be set to the system settings but Python depends on LC_NUMERIC
+remaining compatible with "C".
 
 
 
index aa33a105b9fe51395ec9e05306aa946231777417..88a1d05b6bd87546069b0e1b78ed3815e137344a 100644 (file)
@@ -209,17 +209,11 @@ wxWindow* wxGetTopLevelParent(wxWindow *win);
 
 
 
-#if defined(__WXMSW__) || defined(__WXMAC__)
+
 // Get the state of a key (true if pressed, false if not)
 // This is generally most useful getting the state of
-// Caps Lock, Num Lock and Scroll Lock...
+// the modifier or toggle keys.
 bool wxGetKeyState(wxKeyCode key);
-#else
-%inline %{
-    bool wxGetKeyState(wxKeyCode key)
-        {  wxPyRaiseNotImplemented(); return False; }
-%}
-#endif
 
 
 //---------------------------------------------------------------------------
index bfab10096fa1868de47b8652d054fd200fe0f5db..b58b4e936b273eb0c6c0c624981342fc206100d5 100644 (file)
@@ -1,14 +1,5 @@
 #----------------------------------------------------------------------------
-# wxGTK sets the locale when initialized.  Doing this at the Python
-# level should set it up to match what GTK is doing at the C level.
-if wx.Platform == "__WXGTK__":
-    try:
-        import locale
-        locale.setlocale(locale.LC_ALL, "")
-    except:
-        pass
-
-# On MSW add the directory where the wxWindows catalogs were installed
+# On MSW add the directory where the wxWidgets catalogs were installed
 # to the default catalog path.
 if wx.Platform == "__WXMSW__":
     import os
index 0a28e7f869aa4e1346285e0fa5bcb1421f3d5565..3389d24ae4abbed39ed142b1002f0d6d6ae907c2 100644 (file)
@@ -2306,16 +2306,16 @@ def EncodingConverter_CanConvert(*args, **kwargs):
     return _gdi_.EncodingConverter_CanConvert(*args, **kwargs)
 
 #----------------------------------------------------------------------------
-# wxGTK sets the locale when initialized.  Doing this at the Python
-# level should set it up to match what GTK is doing at the C level.
-if wx.Platform == "__WXGTK__":
-    try:
-        import locale
-        locale.setlocale(locale.LC_ALL, "")
-    except:
-        pass
-
-# On MSW add the directory where the wxWindows catalogs were installed
+## # wxGTK sets the locale when initialized.  Doing this at the Python
+## # level should set it up to match what GTK is doing at the C level.
+## if wx.Platform == "__WXGTK__":
+##     try:
+##         import locale
+##         locale.setlocale(locale.LC_ALL, "")
+##     except:
+##         pass
+
+# On MSW add the directory where the wxWidgets catalogs were installed
 # to the default catalog path.
 if wx.Platform == "__WXMSW__":
     import os
index 29ec1693e5a086be75e918819dbc7742f9930eaa..b855dc5cdfc221223f1051ad2ae637615251ab1e 100644 (file)
@@ -527,10 +527,6 @@ SWIG_FromUnsignedLong(unsigned long value)
 }
 
 
-    bool wxGetKeyState(wxKeyCode key)
-        {  wxPyRaiseNotImplemented(); return False; }
-
-
     void wxWakeUpMainThread() {}
 
 
index 13f96f4dbd4caa55330d0800e623d6c2c1e4c153..c08d2872655c17602e6f358d5298ec244d167eae 100644 (file)
@@ -29,6 +29,7 @@
 #include <gdk/gdkprivate.h>
 #include <wx/gtk/win_gtk.h>
 #define GetXWindow(wxwin)   GDK_WINDOW_XWINDOW((wxwin)->m_widget->window)
+#include <locale.h>
 #endif
 
 #ifdef __WXX11__
@@ -398,15 +399,28 @@ void wxPyApp::_BootstrapApp()
     }
     wxPyEndBlockThreads(blocked);
 
+    // Initialize wxWidgets
     result = wxEntryStart(argc, argv);
     delete [] argv;
 
     blocked = wxPyBeginBlockThreads();
     if (! result)  {
-        PyErr_SetString(PyExc_SystemError, "wxEntryStart failed!");
+        PyErr_SetString(PyExc_SystemError,
+                        "wxEntryStart failed, unable to initialize wxWidgets!"
+#ifdef __WXGTK__
+                        "  (Is DISPLAY set properly?)"
+#endif
+            );
         goto error;
     }
 
+    // On wxGTK the locale will be changed to match the system settings, but
+    // Python needs to have LC_NUMERIC set to "C" in order for the floating
+    // point conversions and such to work right.
+#ifdef __WXGTK__
+    setlocale(LC_NUMERIC, "C");
+#endif
+    
     // The stock objects were all NULL when they were loaded into
     // SWIG generated proxies, so re-init those now...
     wxPy_ReinitStockObjects(3);
@@ -437,7 +451,6 @@ void wxPyApp::_BootstrapApp()
         result = True;
     }
 
-
     if (! result) {
         PyErr_SetString(PyExc_SystemExit, "OnInit returned False, exiting...");
     }