]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/platinfo.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxPlatformInfo
4 // Author: wxWidgets team
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
11 The following are the operating systems which are recognized by wxWidgets and
12 whose version can be detected at run-time.
14 The values of the constants are chosen so that they can be combined as flags;
15 this allows to check for operating system families like e.g. @c wxOS_MAC and @c wxOS_UNIX.
17 Note that you can obtain more detailed informations about the current OS
18 version in use by checking the major and minor version numbers returned
19 by ::wxGetOsVersion() or by wxPlatformInfo::GetOSMajorVersion(),
20 wxPlatformInfo::GetOSMinorVersion().
22 enum wxOperatingSystemId
24 wxOS_UNKNOWN
= 0, //!< returned on error
26 wxOS_MAC_OS
= 1 << 0, //!< Apple Mac OS 8/9/X with Mac paths
27 wxOS_MAC_OSX_DARWIN
= 1 << 1, //!< Apple Mac OS X with Unix paths
29 //! A combination of all @c wxOS_MAC_* values previously listed.
30 wxOS_MAC
= wxOS_MAC_OS
|wxOS_MAC_OSX_DARWIN
,
32 wxOS_WINDOWS_9X
= 1 << 2, //!< Windows 9x family (95/98/ME)
33 wxOS_WINDOWS_NT
= 1 << 3, //!< Windows NT family (NT/2000/XP/Vista/7)
34 wxOS_WINDOWS_MICRO
= 1 << 4, //!< MicroWindows
35 wxOS_WINDOWS_CE
= 1 << 5, //!< Windows CE (Window Mobile)
37 //! A combination of all @c wxOS_WINDOWS_* values previously listed.
38 wxOS_WINDOWS
= wxOS_WINDOWS_9X
|
43 wxOS_UNIX_LINUX
= 1 << 6, //!< Linux
44 wxOS_UNIX_FREEBSD
= 1 << 7, //!< FreeBSD
45 wxOS_UNIX_OPENBSD
= 1 << 8, //!< OpenBSD
46 wxOS_UNIX_NETBSD
= 1 << 9, //!< NetBSD
47 wxOS_UNIX_SOLARIS
= 1 << 10, //!< SunOS
48 wxOS_UNIX_AIX
= 1 << 11, //!< AIX
49 wxOS_UNIX_HPUX
= 1 << 12, //!< HP/UX
51 //! A combination of all @c wxOS_UNIX_* values previously listed.
52 wxOS_UNIX
= wxOS_UNIX_LINUX
|
60 wxOS_DOS
= 1 << 15, //!< Microsoft DOS
61 wxOS_OS2
= 1 << 16 //!< OS/2
65 The list of wxWidgets ports.
67 Some of them can be used with more than a single (native) toolkit;
68 e.g. wxWinCE port sources can be used with smartphones, pocket PCs
69 and handheld devices SDKs.
73 wxPORT_UNKNOWN
= 0, //!< returned on error
75 wxPORT_BASE
= 1 << 0, //!< wxBase, no native toolkit used
77 wxPORT_MSW
= 1 << 1, //!< wxMSW, native toolkit is Windows API
78 wxPORT_MOTIF
= 1 << 2, //!< wxMotif, using [Open]Motif or Lesstif
79 wxPORT_GTK
= 1 << 3, //!< wxGTK, using GTK+ 1.x, 2.x, GPE or Maemo
80 wxPORT_MGL
= 1 << 4, //!< wxMGL, using wxUniversal
81 wxPORT_X11
= 1 << 5, //!< wxX11, using wxUniversal
82 wxPORT_OS2
= 1 << 6, //!< wxOS2, using OS/2 Presentation Manager
83 wxPORT_MAC
= 1 << 7, //!< wxMac, using Carbon or Classic Mac API
84 wxPORT_COCOA
= 1 << 8, //!< wxCocoa, using Cocoa NextStep/Mac API
85 wxPORT_WINCE
= 1 << 9, //!< wxWinCE, toolkit is WinCE SDK API
86 wxPORT_PALMOS
= 1 << 10, //!< wxPalmOS, toolkit is PalmOS API
87 wxPORT_DFB
= 1 << 11 //!< wxDFB, using wxUniversal
92 The architecture of the operating system
93 (regardless of the build environment of wxWidgets library - see ::wxIsPlatform64Bit()
94 documentation for more info).
98 wxARCH_INVALID
= -1, //!< returned on error
100 wxARCH_32
, //!< 32 bit
101 wxARCH_64
, //!< 64 bit
108 The endian-ness of the machine.
112 wxENDIAN_INVALID
= -1, //!< returned on error
114 wxENDIAN_BIG
, //!< 4321
115 wxENDIAN_LITTLE
, //!< 1234
116 wxENDIAN_PDP
, //!< 3412
122 A structure containing informations about a Linux distribution as returned
123 by the @c lsb_release utility.
125 See wxGetLinuxDistributionInfo() or wxPlatformInfo::GetLinuxDistributionInfo()
128 struct wxLinuxDistributionInfo
130 wxString Id
; //!< The id of the distribution; e.g. "Ubuntu"
131 wxString Release
; //!< The version of the distribution; e.g. "9.04"
132 wxString CodeName
; //!< The code name of the distribution; e.g. "jaunty"
133 wxString Description
; //!< The description of the distribution; e.g. "Ubuntu 9.04"
135 bool operator==(const wxLinuxDistributionInfo
& ldi
) const;
136 bool operator!=(const wxLinuxDistributionInfo
& ldi
) const;
141 @class wxPlatformInfo
143 This class holds informations about the operating system, the toolkit and the
144 basic architecture of the machine where the application is currently running.
146 This class does not only have @e getters for the informations above, it also has
147 @e setters. This allows you to e.g. save the current platform informations in a
148 data file (maybe in string form) so that when you later load it, you can easily
149 retrieve (see the static getters for string->enum conversion functions) and store
150 inside a wxPlatformInfo instance (using its setters) the signature of the system
153 In general however you only need to use the static Get() function and then
154 access the various informations for the current platform:
156 wxLogMessage("This application is running under %s.",
157 wxPlatformInfo::Get().GetOperatingSystemIdName());
163 @see ::wxGetOsVersion(), wxIsPlatformLittleEndian(), wxIsPlatform64Bit(),
164 wxAppTraits, @ref group_funcmacro_networkuseros
166 class wxPlatformInfo
: public wxObject
171 Initializes the instance with the values corresponding to the currently
174 This is a fast operation because it only requires to copy the values
175 internally cached for the currently running platform.
182 Initializes the object using given values.
184 wxPlatformInfo(wxPortId pid
= wxPORT_UNKNOWN
,
187 wxOperatingSystemId id
= wxOS_UNKNOWN
,
190 wxArchitecture arch
= wxARCH_INVALID
,
191 wxEndianness endian
= wxENDIAN_INVALID
);
195 Returns @true if the OS version is at least @c major.minor.
197 @see GetOSMajorVersion(), GetOSMinorVersion(),
198 CheckToolkitVersion()
200 bool CheckOSVersion(int major
, int minor
) const;
203 Returns @true if the toolkit version is at least @c major.minor.
205 @see GetToolkitMajorVersion(),
206 GetToolkitMinorVersion(), CheckOSVersion()
208 bool CheckToolkitVersion(int major
, int minor
) const;
212 Returns @true if this instance is fully initialized with valid values.
217 Returns @true if this wxPlatformInfo describes wxUniversal build.
219 bool IsUsingUniversalWidgets() const;
222 Inequality operator. Tests all class' internal variables.
224 bool operator!=(const wxPlatformInfo
& t
) const;
227 Equality operator. Tests all class' internal variables.
229 bool operator==(const wxPlatformInfo
& t
) const;
232 Returns the global wxPlatformInfo object, initialized with the values
233 for the currently running platform.
235 static const wxPlatformInfo
& Get();
238 @name Static enum getters
240 These getters allow for easy string-to-enumeration-value conversion.
245 Converts the given string to a wxArchitecture enum value or to
246 @c wxARCH_INVALID if the given string is not a valid architecture string
247 (i.e. does not contain nor @c 32 nor @c 64 strings).
249 static wxArchitecture
GetArch(const wxString
& arch
);
252 Converts the given string to a wxEndianness enum value or to
253 @c wxENDIAN_INVALID if the given string is not a valid endianness
254 string (i.e. does not contain nor little nor big strings).
256 static wxEndianness
GetEndianness(const wxString
& end
);
259 Converts the given string to a wxOperatingSystemId enum value or to @c
260 wxOS_UNKNOWN if the given string is not a valid operating system name.
262 static wxOperatingSystemId
GetOperatingSystemId(const wxString
& name
);
265 Converts the given string to a wxWidgets port ID value or to @c wxPORT_UNKNOWN
266 if the given string does not match any of the wxWidgets canonical name ports
267 ("wxGTK", "wxMSW", etc) nor any of the short wxWidgets name ports ("gtk", "msw", etc).
269 static wxPortId
GetPortId(const wxString
& portname
);
275 @name Static string-form getters
277 These getters allow for easy enumeration-value-to-string conversion.
282 Returns the name for the given wxArchitecture enumeration value.
284 static wxString
GetArchName(wxArchitecture arch
);
287 Returns name for the given wxEndianness enumeration value.
289 static wxString
GetEndiannessName(wxEndianness end
);
292 Returns the operating system family name for the given wxOperatingSystemId
293 enumeration value: @c Unix for @c wxOS_UNIX, @c Macintosh for @c wxOS_MAC,
294 @c Windows for @c wxOS_WINDOWS, @c DOS for @c wxOS_DOS, @c OS/2 for @c wxOS_OS2.
296 static wxString
GetOperatingSystemFamilyName(wxOperatingSystemId os
);
299 Returns the name for the given operating system ID value.
301 This can be a long name (e.g. <tt>Microsoft Windows NT</tt>);
302 use GetOperatingSystemFamilyName() to retrieve a short, generic name.
304 static wxString
GetOperatingSystemIdName(wxOperatingSystemId os
);
307 Returns the name of the given wxWidgets port ID value.
308 The @a usingUniversal argument specifies whether the port is in its native
309 or wxUniversal variant.
311 The returned string always starts with the "wx" prefix and is a mixed-case string.
313 static wxString
GetPortIdName(wxPortId port
, bool usingUniversal
);
316 Returns the short name of the given wxWidgets port ID value.
317 The @a usingUniversal argument specifies whether the port is in its native
318 or wxUniversal variant.
320 The returned string does not start with the "wx" prefix and is always lower case.
322 static wxString
GetPortIdShortName(wxPortId port
,
323 bool usingUniversal
);
326 Returns the operating system directory.
328 See wxGetOSDirectory() for more info.
330 static wxString
GetOperatingSystemDirectory();
341 Returns the architecture ID of this wxPlatformInfo instance.
343 wxArchitecture
GetArchitecture() const;
346 Returns the endianness ID of this wxPlatformInfo instance.
348 wxEndianness
GetEndianness() const;
351 Returns the run-time major version of the OS associated with this
352 wxPlatformInfo instance.
354 @see ::wxGetOsVersion(), CheckOSVersion()
356 int GetOSMajorVersion() const;
359 Returns the run-time minor version of the OS associated with this
360 wxPlatformInfo instance.
362 @see ::wxGetOsVersion(), CheckOSVersion()
364 int GetOSMinorVersion() const;
367 Returns the operating system ID of this wxPlatformInfo instance.
369 See wxGetOsVersion() for more info.
371 wxOperatingSystemId
GetOperatingSystemId() const;
374 Returns the description of the operating system of this wxPlatformInfo instance.
376 See wxGetOSDescription() for more info.
378 wxString
GetOperatingSystemDescription() const;
381 Returns the wxWidgets port ID associated with this wxPlatformInfo instance.
383 wxPortId
GetPortId() const;
386 Returns the Linux distribution info associated with this wxPlatformInfo instance.
388 See wxGetLinuxDistributionInfo() for more info.
390 wxLinuxDistributionInfo
GetLinuxDistributionInfo() const;
393 Returns the desktop environment associated with this wxPlatformInfo instance.
395 See wxAppTraits::GetDesktopEnvironment() for more info.
397 wxString
GetDesktopEnvironment() const;
400 Returns the run-time major version of the toolkit associated with this
401 wxPlatformInfo instance.
403 Note that if GetPortId() returns @c wxPORT_BASE, then this value is zero
404 (unless externally modified with SetToolkitVersion()); that is, no native
406 See wxAppTraits::GetToolkitVersion() for more info.
408 @see CheckToolkitVersion()
410 int GetToolkitMajorVersion() const;
413 Returns the run-time minor version of the toolkit associated with this
414 wxPlatformInfo instance.
416 Note that if GetPortId() returns @c wxPORT_BASE, then this value is zero
417 (unless externally modified with SetToolkitVersion()); that is, no native
419 See wxAppTraits::GetToolkitVersion() for more info.
421 @see CheckToolkitVersion()
423 int GetToolkitMinorVersion() const;
429 @name String-form getters
434 Returns the name for the architecture of this wxPlatformInfo instance.
436 wxString
GetArchName() const;
439 Returns the name for the endianness of this wxPlatformInfo instance.
441 wxString
GetEndiannessName() const;
444 Returns the operating system family name of the OS associated with this
445 wxPlatformInfo instance.
447 wxString
GetOperatingSystemFamilyName() const;
450 Returns the operating system name of the OS associated with this wxPlatformInfo
453 wxString
GetOperatingSystemIdName() const;
456 Returns the name of the wxWidgets port ID associated with this wxPlatformInfo
459 wxString
GetPortIdName() const;
462 Returns the short name of the wxWidgets port ID associated with this
463 wxPlatformInfo instance.
465 wxString
GetPortIdShortName() const;
477 Sets the architecture enum value associated with this wxPlatformInfo instance.
479 void SetArchitecture(wxArchitecture n
);
482 Sets the endianness enum value associated with this wxPlatformInfo instance.
484 void SetEndianness(wxEndianness n
);
487 Sets the version of the operating system associated with this wxPlatformInfo
490 void SetOSVersion(int major
, int minor
);
493 Sets the operating system associated with this wxPlatformInfo instance.
495 void SetOperatingSystemId(wxOperatingSystemId n
);
498 Sets the wxWidgets port ID associated with this wxPlatformInfo instance.
500 void SetPortId(wxPortId n
);
503 Sets the version of the toolkit associated with this wxPlatformInfo instance.
505 void SetToolkitVersion(int major
, int minor
);
508 Sets the operating system description associated with this wxPlatformInfo instance.
510 void SetOperatingSystemDescription(const wxString
& desc
);
513 Sets the desktop environment associated with this wxPlatformInfo instance.
515 void SetDesktopEnvironment(const wxString
& de
);
518 Sets the linux distribution info associated with this wxPlatformInfo instance.
520 void SetLinuxDistributionInfo(const wxLinuxDistributionInfo
& di
);