]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/platinfo.cpp
fixing modal dialog quit after nested message box problem
[wxWidgets.git] / src / common / platinfo.cpp
index 1d8d99e22fb5900aa309f78661f28f2b5028364d..a687a47862f4f96f45282ed860bf952d8ad5edc6 100644 (file)
@@ -62,8 +62,14 @@ static const wxChar* const wxOperatingSystemIdNames[] =
     _T("AIX"),
     _T("HPUX"),
 
+    _T("Other Unix"),
+    _T("Other Unix"),
+
     _T("DOS"),
-    _T("OS/2")
+    _T("OS/2"),
+
+    _T("PalmOS"),
+    _T("PalmOS(Over Linux)"),
 };
 
 static const wxChar* const wxPortIdNames[] =
@@ -99,8 +105,8 @@ static const wxChar* const wxEndiannessNames[] =
 // local functions
 // ----------------------------------------------------------------------------
 
-// returns log in base 2 of the value, this maps the enum values to the
-// corresponding indices
+// returns the logarithm in base 2 of 'value'; this maps the enum values to the
+// corresponding indexes of the string arrays above
 static unsigned wxGetIndexFromEnumValue(int value)
 {
     wxCHECK_MSG( value, (unsigned)-1, _T("invalid enum value") );
@@ -153,6 +159,9 @@ bool wxPlatformInfo::operator==(const wxPlatformInfo &t) const
            m_osVersionMajor == t.m_osVersionMajor &&
            m_osVersionMinor == t.m_osVersionMinor &&
            m_os == t.m_os &&
+           m_osDesc == t.m_osDesc &&
+           m_ldi == t.m_ldi &&
+           m_desktopEnv == t.m_desktopEnv &&
            m_port == t.m_port &&
            m_usingUniversal == t.m_usingUniversal &&
            m_arch == t.m_arch &&
@@ -176,11 +185,18 @@ void wxPlatformInfo::InitForCurrentPlatform()
     {
         m_port = traits->GetToolkitVersion(&m_tkVersionMajor, &m_tkVersionMinor);
         m_usingUniversal = traits->IsUsingUniversalWidgets();
+        m_desktopEnv = traits->GetDesktopEnvironment();
     }
 
     m_os = wxGetOsVersion(&m_osVersionMajor, &m_osVersionMinor);
+    m_osDesc = wxGetOsDescription();
     m_endian = wxIsPlatformLittleEndian() ? wxENDIAN_LITTLE : wxENDIAN_BIG;
     m_arch = wxIsPlatform64Bit() ? wxARCH_64 : wxARCH_32;
+    
+#ifdef __LINUX__
+    m_ldi = wxGetLinuxDistributionInfo();
+#endif
+    // else: leave m_ldi empty
 }
 
 /* static */
@@ -196,6 +212,12 @@ const wxPlatformInfo& wxPlatformInfo::Get()
     return gs_platInfo;
 }
 
+/* static */
+wxString wxPlatformInfo::GetOperatingSystemDirectory()
+{
+    return wxGetOSDirectory();
+}
+
 
 
 // ----------------------------------------------------------------------------
@@ -321,11 +343,11 @@ wxArchitecture wxPlatformInfo::GetArch(const wxString &arch)
 
 wxEndianness wxPlatformInfo::GetEndianness(const wxString& end)
 {
-    wxString endl(end.Lower());
-    if ( end.StartsWith(wxT("little")) )
+    const wxString endl(end.Lower());
+    if ( endl.StartsWith(wxT("little")) )
         return wxENDIAN_LITTLE;
 
-    if ( end.StartsWith(wxT("big")) )
+    if ( endl.StartsWith(wxT("big")) )
         return wxENDIAN_BIG;
 
     return wxENDIAN_INVALID;