]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wx.PlatformInfo which is a tuple containing strings that
authorRobin Dunn <robin@alldunn.com>
Wed, 10 Mar 2004 18:53:01 +0000 (18:53 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 10 Mar 2004 18:53:01 +0000 (18:53 +0000)
describe the platform and build options of wxPython.

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

wxPython/docs/CHANGES.txt
wxPython/docs/MigrationGuide.txt
wxPython/src/helpers.cpp

index c503135bcf9c2c38d0c873c3679415951c5a647e..a82ddba9ba63650ab8891dd00a21d21b07ac91b9 100644 (file)
@@ -83,6 +83,10 @@ Added wx.Display and wx.VideoMode.
 AppleEvents can be handled by overriding wx.App methods MacOpenFile,
 MacPrintFile, MacNewFile, and MacReopenApp.
 
+Added wx.PlatformInfo which is a tuple containing strings that
+describe the platform and build options of wxPython.  See the
+MigrationGuide for more details.
+
 
 
 
index c469b3808f89c9984e2ebafec0a4fe01ce4429f1..9a510f0e1dc888f4cfed392511421dbb72c645e9 100644 (file)
@@ -415,6 +415,31 @@ Insert, Prepend, and etc.) methods any longer.  Just use Add and the
 wrappers will figure out what to do.
 
 
+PlatformInfo
+------------
+
+Added wx.PlatformInfo which is a tuple containing strings that
+describe the platform and build options of wxPython.  This lets you
+know more about the build than just the __WXPORT__ value that
+wx.Platform contains, such as if it is a GTK2 build.  For example,
+instead of::
+
+     if wx.Platform == "__WXGTK__":
+         ...
+
+you should do this::
+
+    if "__WXGTK__" in wx.PlatformInfo:
+         ...
+
+and you can specifically check for a wxGTK2 build by looking for
+"gtk2" in wx.PlatformInfo.  Unicode builds are also detectable this
+way.  If there are any other platform/toolkit/build flags that make
+sense to add to this tuple please let me know.
+
+BTW, wx.Platform will probably be deprecated in the future.
+
+
 
 Other Stuff
 -----------
index 5416f937a5b673e5a776069b6896ea5b41cc676b..79c46641b62260cc49f56cd4fae0df2f64b6f40b 100644 (file)
@@ -561,18 +561,23 @@ PyObject* __wxPySetDictionary(PyObject* /* self */, PyObject* args)
 
 #ifdef __WXMOTIF__
 #define wxPlatform "__WXMOTIF__"
+#define wxPlatName "wxMotif"
 #endif
 #ifdef __WXX11__
 #define wxPlatform "__WXX11__"
+#define wxPlatName "wxX11"
 #endif
 #ifdef __WXGTK__
 #define wxPlatform "__WXGTK__"
+#define wxPlatName "wxGTK"
 #endif
-#if defined(__WIN32__) || defined(__WXMSW__)
+#ifdef __WXMSW__
 #define wxPlatform "__WXMSW__"
+#define wxPlatName "wxMSW"
 #endif
 #ifdef __WXMAC__
 #define wxPlatform "__WXMAC__"
+#define wxPlatName "wxMac"
 #endif
 
 #ifdef __WXDEBUG__
@@ -581,10 +586,41 @@ PyObject* __wxPySetDictionary(PyObject* /* self */, PyObject* args)
     int wxdebug = 0;
 #endif
 
+    // These should be deprecated in favor of the PlatformInfo tuple built below...
     PyDict_SetItemString(wxPython_dict, "Platform", PyString_FromString(wxPlatform));
     PyDict_SetItemString(wxPython_dict, "USE_UNICODE", PyInt_FromLong(wxUSE_UNICODE));
     PyDict_SetItemString(wxPython_dict, "__WXDEBUG__", PyInt_FromLong(wxdebug));
 
+    
+    PyObject* PlatInfo = PyList_New(0);
+    PyObject* obj;
+
+#define _AddInfoString(st) \
+    obj = PyString_FromString(st); \
+    PyList_Append(PlatInfo, obj); \
+    Py_DECREF(obj)
+
+    _AddInfoString(wxPlatform);
+    _AddInfoString(wxPlatName);
+#if wxUSE_UNICODE
+    _AddInfoString("unicode");
+#else
+    _AddInfoString("ascii");
+#endif
+#ifdef __WXGTK__
+#ifdef __WXGTK20__
+    _AddInfoString("gtk2");
+#else
+    _AddInfoString("gtk1");
+#endif
+#endif
+
+#undef _AddInfoString
+
+    PyObject* PlatInfoTuple = PyList_AsTuple(PlatInfo);
+    Py_DECREF(PlatInfo);
+    PyDict_SetItemString(wxPython_dict, "PlatformInfo", PlatInfoTuple);
+    
     RETURN_NONE();
 }