X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ac9e3f1f1c4ba844c5598aa577e51d128dd5921b..89b799cccff2a3cfa5d51dac5c6e9153d2fe2e82:/include/wx/platinfo.h diff --git a/include/wx/platinfo.h b/include/wx/platinfo.h index 2a4e8621cf..cca996b27f 100644 --- a/include/wx/platinfo.h +++ b/include/wx/platinfo.h @@ -15,7 +15,7 @@ #include "wx/string.h" // ---------------------------------------------------------------------------- -// wxPlatformInfo +// wxPlatformInfo enums & structs // ---------------------------------------------------------------------------- // VERY IMPORTANT: when changing these enum values, also change the relative @@ -114,6 +114,31 @@ enum wxEndianness wxENDIAN_MAX }; +// informations about a linux distro returned by the lsb_release utility +struct wxLinuxDistributionInfo +{ + wxString Id; + wxString Release; + wxString CodeName; + wxString Description; + + bool operator==(const wxLinuxDistributionInfo& ldi) const + { + return Id == ldi.Id && + Release == ldi.Release && + CodeName == ldi.CodeName && + Description == ldi.Description; + } + + bool operator!=(const wxLinuxDistributionInfo& ldi) const + { return !(*this == ldi); } +}; + + +// ---------------------------------------------------------------------------- +// wxPlatformInfo +// ---------------------------------------------------------------------------- + // Information about the toolkit that the app is running under and some basic // platform and architecture info class WXDLLIMPEXP_BASE wxPlatformInfo @@ -161,6 +186,7 @@ public: static wxString GetArchName(wxArchitecture arch); static wxString GetEndiannessName(wxEndianness end); + // getters // ----------------- @@ -196,6 +222,8 @@ public: wxOperatingSystemId GetOperatingSystemId() const { return m_os; } + wxLinuxDistributionInfo GetLinuxDistributionInfo() const + { return m_ldi; } wxPortId GetPortId() const { return m_port; } wxArchitecture GetArchitecture() const @@ -219,6 +247,16 @@ public: { return GetArchName(m_arch); } wxString GetEndiannessName() const { return GetEndiannessName(m_endian); } + wxString GetOperatingSystemDescription() const + { return m_osDesc; } + wxString GetDesktopEnvironment() const + { return m_desktopEnv; } + + static wxString GetOperatingSystemDirectory(); + // doesn't make sense to store inside wxPlatformInfo the OS directory, + // thus this function is static; note that this function simply calls + // wxGetOSDirectory() and is here just to make it easier for the user to + // find it that feature (global functions can be difficult to find in the docs) // setters // ----------------- @@ -230,6 +268,8 @@ public: void SetOperatingSystemId(wxOperatingSystemId n) { m_os = n; } + void SetOperatingSystemDescription(const wxString& desc) + { m_osDesc = desc; } void SetPortId(wxPortId n) { m_port = n; } void SetArchitecture(wxArchitecture n) @@ -237,6 +277,12 @@ public: void SetEndianness(wxEndianness n) { m_endian = n; } + void SetDesktopEnvironment(const wxString& de) + { m_desktopEnv = de; } + void SetLinuxDistributionInfo(const wxLinuxDistributionInfo& di) + { m_ldi = di; } + + // miscellaneous // ----------------- @@ -244,9 +290,13 @@ public: { return m_osVersionMajor != -1 && m_osVersionMinor != -1 && m_os != wxOS_UNKNOWN && + !m_osDesc.IsEmpty() && m_tkVersionMajor != -1 && m_tkVersionMinor != -1 && m_port != wxPORT_UNKNOWN && - m_arch != wxARCH_INVALID && m_endian != wxENDIAN_INVALID; + m_arch != wxARCH_INVALID && + m_endian != wxENDIAN_INVALID; + + // do not check linux-specific info; it's ok to have them empty } @@ -270,6 +320,16 @@ protected: // Operating system ID. wxOperatingSystemId m_os; + // Operating system description. + wxString m_osDesc; + + + // linux-specific + // ----------------- + + wxString m_desktopEnv; + wxLinuxDistributionInfo m_ldi; + // toolkit // ----------------- @@ -288,7 +348,7 @@ protected: // others // ----------------- - // architecture of the OS + // architecture of the OS/machine wxArchitecture m_arch; // endianness of the machine