]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/platinfo.h
disable report view mode under Mac as it hangs the native wxListCtrl implementation...
[wxWidgets.git] / include / wx / platinfo.h
index 913a08d182701bcf0067b7dcaa264522f5a5acd3..e639d599e7244ee64c6448b33c9142e34f3c5f7a 100644 (file)
@@ -58,7 +58,11 @@ enum wxOperatingSystemId
     // 1<<13 and 1<<14 available for other Unix flavours
 
     wxOS_DOS            = 1 << 15,      // Microsoft DOS
-    wxOS_OS2            = 1 << 16       // OS/2
+    wxOS_OS2            = 1 << 16,       // OS/2
+
+    wxOS_PALM_OS        = 1 << 17,       // Pure Palm OS
+    wxOS_PALM_LINUX     = 1 << 18,       // Palm over linux
+    wxOS_PALM = wxOS_PALM_OS | wxOS_PALM_LINUX
 };
 
 // list of wxWidgets ports - some of them can be used with more than
@@ -74,11 +78,13 @@ enum wxPortId
     wxPORT_GTK      = 1 << 3,       // wxGTK, using GTK+ 1.x, 2.x, GPE or Maemo
     wxPORT_MGL      = 1 << 4,       // wxMGL, using wxUniversal
     wxPORT_X11      = 1 << 5,       // wxX11, using wxUniversal
-    wxPORT_OS2      = 1 << 6,       // wxOS2, using OS/2 Presentation Manager
+    wxPORT_PM       = 1 << 6,       // wxOS2, using OS/2 Presentation Manager
+    wxPORT_OS2      = wxPORT_PM,    // wxOS2, using OS/2 Presentation Manager
     wxPORT_MAC      = 1 << 7,       // wxMac, using Carbon or Classic Mac API
     wxPORT_COCOA    = 1 << 8,       // wxCocoa, using Cocoa NextStep/Mac API
     wxPORT_WINCE    = 1 << 9,       // wxWinCE, toolkit is WinCE SDK API
-    wxPORT_PALMOS   = 1 << 10       // wxPalmOS, toolkit is PalmOS API
+    wxPORT_PALMOS   = 1 << 10,      // wxPalmOS, toolkit is PalmOS API
+    wxPORT_DFB      = 1 << 11       // wxDFB, using wxUniversal
 };
 
 // architecture of the operating system
@@ -118,7 +124,8 @@ public:
                    wxOperatingSystemId id = wxOS_UNKNOWN,
                    int osMajor = -1, int osMinor = -1,
                    wxArchitecture arch = wxARCH_INVALID,
-                   wxEndianness endian = wxENDIAN_INVALID);
+                   wxEndianness endian = wxENDIAN_INVALID,
+                   bool usingUniversal = false);
 
     // default copy ctor, assignment operator and dtor are ok
 
@@ -127,6 +134,11 @@ public:
     bool operator!=(const wxPlatformInfo &t) const
         { return !(*this == t); }
 
+    // Gets a wxPlatformInfo already initialized with the values for
+    // the currently running platform.
+    static const wxPlatformInfo& Get();
+
+
 
     // string -> enum conversions
     // ---------------------------------
@@ -142,8 +154,8 @@ public:
 
     static wxString GetOperatingSystemFamilyName(wxOperatingSystemId os);
     static wxString GetOperatingSystemIdName(wxOperatingSystemId os);
-    static wxString GetPortIdName(wxPortId port);
-    static wxString GetPortIdShortName(wxPortId port);
+    static wxString GetPortIdName(wxPortId port, bool usingUniversal);
+    static wxString GetPortIdShortName(wxPortId port, bool usingUniversal);
 
     static wxString GetArchName(wxArchitecture arch);
     static wxString GetEndiannessName(wxEndianness end);
@@ -156,11 +168,31 @@ public:
     int GetOSMinorVersion() const
         { return m_osVersionMinor; }
 
+    // return true if the OS version >= major.minor
+    bool CheckOSVersion(int major, int minor) const
+    {
+        return DoCheckVersion(GetOSMajorVersion(),
+                              GetOSMinorVersion(),
+                              major,
+                              minor);
+    }
+
     int GetToolkitMajorVersion() const
         { return m_tkVersionMajor; }
     int GetToolkitMinorVersion() const
         { return m_tkVersionMinor; }
 
+    bool CheckToolkitVersion(int major, int minor) const
+    {
+        return DoCheckVersion(GetToolkitMajorVersion(),
+                              GetToolkitMinorVersion(),
+                              major,
+                              minor);
+    }
+
+    bool IsUsingUniversalWidgets() const
+        { return m_usingUniversal; }
+
     wxOperatingSystemId GetOperatingSystemId() const
         { return m_os; }
     wxPortId GetPortId() const
@@ -179,9 +211,9 @@ public:
     wxString GetOperatingSystemIdName() const
         { return GetOperatingSystemIdName(m_os); }
     wxString GetPortIdName() const
-        { return GetPortIdName(m_port); }
+        { return GetPortIdName(m_port, m_usingUniversal); }
     wxString GetPortIdShortName() const
-        { return GetPortIdShortName(m_port); }
+        { return GetPortIdShortName(m_port, m_usingUniversal); }
     wxString GetArchName() const
         { return GetArchName(m_arch); }
     wxString GetEndiannessName() const
@@ -196,13 +228,13 @@ public:
         { m_tkVersionMajor=major; m_tkVersionMinor=minor; }
 
     void SetOperatingSystemId(wxOperatingSystemId n)
-        { m_os=n; }
+        { m_os = n; }
     void SetPortId(wxPortId n)
-        { m_port=n; }
+        { m_port = n; }
     void SetArchitecture(wxArchitecture n)
-        { m_arch=n; }
+        { m_arch = n; }
     void SetEndianness(wxEndianness n)
-        { m_endian=n; }
+        { m_endian = n; }
 
     // miscellaneous
     // -----------------
@@ -216,23 +248,23 @@ public:
                m_arch != wxARCH_INVALID && m_endian != wxENDIAN_INVALID;
     }
 
-    static bool IsUsingUniversalWidgets()
+
+protected:
+    static bool DoCheckVersion(int majorCur, int minorCur, int major, int minor)
     {
-    #ifdef __WXUNIVERSAL__
-        return true;
-    #else
-        return false;
-    #endif
+        return majorCur > major || (majorCur == major && minorCur >= minor);
     }
 
+    void InitForCurrentPlatform();
+
 
-protected:
     // OS stuff
     // -----------------
 
     // Version of the OS; valid if m_os != wxOS_UNKNOWN
     // (-1 means not initialized yet).
-    int m_osVersionMajor, m_osVersionMinor;
+    int m_osVersionMajor,
+        m_osVersionMinor;
 
     // Operating system ID.
     wxOperatingSystemId m_os;
@@ -248,6 +280,9 @@ protected:
     // name of the wxWidgets port
     wxPortId m_port;
 
+    // is using wxUniversal widgets?
+    bool m_usingUniversal;
+
 
     // others
     // -----------------