// Name: platinfo.h
// Purpose: interface of wxPlatformInfo
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
whose version can be detected at run-time.
The values of the constants are chosen so that they can be combined as flags;
- this allows to check for operating system families like e.g. wxOS_MAC and wxOS_UNIX.
+ this allows to check for operating system families like e.g. @c wxOS_MAC and @c wxOS_UNIX.
+
+ Note that you can obtain more detailed informations about the current OS
+ version in use by checking the major and minor version numbers returned
+ by ::wxGetOsVersion() or by wxPlatformInfo::GetOSMajorVersion(),
+ wxPlatformInfo::GetOSMinorVersion().
*/
enum wxOperatingSystemId
{
wxOS_MAC_OS = 1 << 0, //!< Apple Mac OS 8/9/X with Mac paths
wxOS_MAC_OSX_DARWIN = 1 << 1, //!< Apple Mac OS X with Unix paths
+
+ //! A combination of all @c wxOS_MAC_* values previously listed.
wxOS_MAC = wxOS_MAC_OS|wxOS_MAC_OSX_DARWIN,
wxOS_WINDOWS_9X = 1 << 2, //!< Windows 9x family (95/98/ME)
- wxOS_WINDOWS_NT = 1 << 3, //!< Windows NT family (NT/2000/XP)
+ wxOS_WINDOWS_NT = 1 << 3, //!< Windows NT family (NT/2000/XP/Vista/7)
wxOS_WINDOWS_MICRO = 1 << 4, //!< MicroWindows
wxOS_WINDOWS_CE = 1 << 5, //!< Windows CE (Window Mobile)
+
+ //! A combination of all @c wxOS_WINDOWS_* values previously listed.
wxOS_WINDOWS = wxOS_WINDOWS_9X |
wxOS_WINDOWS_NT |
wxOS_WINDOWS_MICRO |
wxOS_UNIX_SOLARIS = 1 << 10, //!< SunOS
wxOS_UNIX_AIX = 1 << 11, //!< AIX
wxOS_UNIX_HPUX = 1 << 12, //!< HP/UX
+
+ //! A combination of all @c wxOS_UNIX_* values previously listed.
wxOS_UNIX = wxOS_UNIX_LINUX |
wxOS_UNIX_FREEBSD |
wxOS_UNIX_OPENBSD |
wxPORT_MSW = 1 << 1, //!< wxMSW, native toolkit is Windows API
wxPORT_MOTIF = 1 << 2, //!< wxMotif, using [Open]Motif or Lesstif
wxPORT_GTK = 1 << 3, //!< wxGTK, using GTK+ 1.x, 2.x, GPE or Maemo
- wxPORT_MGL = 1 << 4, //!< wxMGL, using wxUniversal
+ wxPORT_DFB = 1 << 4, //!< wxDFB, using wxUniversal
wxPORT_X11 = 1 << 5, //!< wxX11, using wxUniversal
wxPORT_OS2 = 1 << 6, //!< 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_DFB = 1 << 11 //!< wxDFB, using wxUniversal
+ wxPORT_WINCE = 1 << 9 //!< wxWinCE, toolkit is WinCE SDK API
};
/**
The architecture of the operating system
- (regardless of the build environment of wxWidgets library - see ::wxIsPlatform64bit()
+ (regardless of the build environment of wxWidgets library - see ::wxIsPlatform64Bit()
documentation for more info).
*/
enum wxArchitecture
wxENDIAN_MAX
};
+/**
+ A structure containing informations about a Linux distribution as returned
+ by the @c lsb_release utility.
+
+ See wxGetLinuxDistributionInfo() or wxPlatformInfo::GetLinuxDistributionInfo()
+ for more info.
+*/
+struct wxLinuxDistributionInfo
+{
+ wxString Id; //!< The id of the distribution; e.g. "Ubuntu"
+ wxString Release; //!< The version of the distribution; e.g. "9.04"
+ wxString CodeName; //!< The code name of the distribution; e.g. "jaunty"
+ wxString Description; //!< The description of the distribution; e.g. "Ubuntu 9.04"
+
+ bool operator==(const wxLinuxDistributionInfo& ldi) const;
+ bool operator!=(const wxLinuxDistributionInfo& ldi) const;
+};
+
/**
@class wxPlatformInfo
This class does not only have @e getters for the informations above, it also has
@e setters. This allows you to e.g. save the current platform informations in a
data file (maybe in string form) so that when you later load it, you can easily
- retrieve (see the static getters for string->enum conversion functions) the
- signature of the system which generated it.
+ retrieve (see the static getters for string->enum conversion functions) and store
+ inside a wxPlatformInfo instance (using its setters) the signature of the system
+ which generated it.
+
+ In general however you only need to use the static Get() function and then
+ access the various informations for the current platform:
+ @code
+ wxLogMessage("This application is running under %s.",
+ wxPlatformInfo::Get().GetOperatingSystemIdName());
+ @endcode
@library{wxbase}
@category{cfg}
@see ::wxGetOsVersion(), wxIsPlatformLittleEndian(), wxIsPlatform64Bit(),
wxAppTraits, @ref group_funcmacro_networkuseros
*/
-class wxPlatformInfo : public wxObject
+class wxPlatformInfo
{
public:
/**
Initializes the object using given values.
*/
- wxPlatformInfo(wxPortId pid = wxPORT_UNKNOWN,
+ wxPlatformInfo(wxPortId pid,
int tkMajor = -1,
int tkMinor = -1,
wxOperatingSystemId id = wxOS_UNKNOWN,
static wxString GetPortIdShortName(wxPortId port,
bool usingUniversal);
+ /**
+ Returns the operating system directory.
+
+ See wxGetOSDirectory() for more info.
+ */
+ static wxString GetOperatingSystemDirectory();
+
//@}
/**
Returns the operating system ID of this wxPlatformInfo instance.
+
+ See wxGetOsVersion() for more info.
*/
wxOperatingSystemId GetOperatingSystemId() const;
+
+ /**
+ Returns the description of the operating system of this wxPlatformInfo instance.
+
+ See wxGetOSDescription() for more info.
+ */
+ wxString GetOperatingSystemDescription() const;
/**
Returns the wxWidgets port ID associated with this wxPlatformInfo instance.
*/
wxPortId GetPortId() const;
+
+ /**
+ Returns the Linux distribution info associated with this wxPlatformInfo instance.
+
+ See wxGetLinuxDistributionInfo() for more info.
+ */
+ wxLinuxDistributionInfo GetLinuxDistributionInfo() const;
+
+ /**
+ Returns the desktop environment associated with this wxPlatformInfo instance.
+
+ See wxAppTraits::GetDesktopEnvironment() for more info.
+ */
+ wxString GetDesktopEnvironment() const;
/**
Returns the run-time major version of the toolkit associated with this
Sets the version of the toolkit associated with this wxPlatformInfo instance.
*/
void SetToolkitVersion(int major, int minor);
+
+ /**
+ Sets the operating system description associated with this wxPlatformInfo instance.
+ */
+ void SetOperatingSystemDescription(const wxString& desc);
+
+ /**
+ Sets the desktop environment associated with this wxPlatformInfo instance.
+ */
+ void SetDesktopEnvironment(const wxString& de);
- //@}
+ /**
+ Sets the linux distribution info associated with this wxPlatformInfo instance.
+ */
+ void SetLinuxDistributionInfo(const wxLinuxDistributionInfo& di);
+ //@}
};