+// ----------------------------------------------------------------------------
+// OS mnemonics -- Identify the running OS (useful for Windows)
+// ----------------------------------------------------------------------------
+
+// Not all platforms are currently available or supported
+enum
+{
+ wxUNKNOWN_PLATFORM,
+ wxCURSES, // Text-only CURSES
+ wxXVIEW_X, // Sun's XView OpenLOOK toolkit
+ wxMOTIF_X, // OSF Motif 1.x.x
+ wxCOSE_X, // OSF Common Desktop Environment
+ wxNEXTSTEP, // NeXTStep
+ wxMACINTOSH, // Apple System 7
+ wxGTK, // GTK on X
+ wxGTK_WIN32, // GTK on Win32
+ wxGTK_OS2, // GTK on OS/2
+ wxGTK_BEOS, // GTK on BeOS
+ wxQT, // Qt
+ wxGEOS, // GEOS
+ wxOS2_PM, // OS/2 Workplace
+ wxWINDOWS, // Windows or WfW
+ wxPENWINDOWS, // Windows for Pen Computing
+ wxWINDOWS_NT, // Windows NT
+ wxWIN32S, // Windows 32S API
+ wxWIN95, // Windows 95
+ wxWIN386, // Watcom 32-bit supervisor modus
+ wxMGL_UNIX, // MGL with direct hardware access
+ wxMGL_X, // MGL on X
+ wxMGL_WIN32, // MGL on Win32
+ wxMGL_OS2 // MGL on OS/2
+};
+
+// ----------------------------------------------------------------------------
+// machine specific settings
+// ----------------------------------------------------------------------------
+
+// fixed length types
+
+#define wxInt8 char signed
+#define wxUint8 char unsigned
+
+#ifdef __WIN16__
+#define wxInt16 int signed
+#define wxUint16 int unsigned
+#define wxInt32 long signed
+#define wxUint32 long unsigned
+#endif
+
+#ifdef __WIN32__
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
+#endif
+
+#ifdef __WXMAC__
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
+#endif
+
+#ifdef __WXOS2__
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
+#endif
+
+#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
+ #if defined(SIZEOF_INT)
+ /* well, this shouldn't happen... */
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
+ #else
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
+ #endif
+#endif
+
+#define wxByte wxUint8
+#define wxWord wxUint16
+
+// byte sex
+
+#define wxBIG_ENDIAN 4321
+#define wxLITTLE_ENDIAN 1234
+#define wxPDP_ENDIAN 3412
+
+#ifdef WORDS_BIGENDIAN
+#define wxBYTE_ORDER wxBIG_ENDIAN
+#else
+#define wxBYTE_ORDER wxLITTLE_ENDIAN
+#endif
+
+// byte swapping
+
+#define wxUINT16_SWAP_ALWAYS(val) \
+ ((wxUint16) ( \
+ (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \
+ (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8)))
+
+#define wxINT16_SWAP_ALWAYS(val) \
+ ((wxInt16) ( \
+ (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \
+ (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8)))
+
+#define wxUINT32_SWAP_ALWAYS(val) \
+ ((wxUint32) ( \
+ (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \
+ (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \
+ (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \
+ (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24)))
+
+#define wxINT32_SWAP_ALWAYS(val) \
+ ((wxInt32) ( \
+ (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \
+ (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \
+ (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \
+ (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24)))
+
+// machine specific byte swapping
+
+#ifdef WORDS_BIGENDIAN
+ #define wxUINT16_SWAP_ON_BE(val) wxUINT16_SWAP_ALWAYS(val)
+ #define wxINT16_SWAP_ON_BE(val) wxINT16_SWAP_ALWAYS(val)
+ #define wxUINT16_SWAP_ON_LE(val) (val)
+ #define wxINT16_SWAP_ON_LE(val) (val)
+ #define wxUINT32_SWAP_ON_BE(val) wxUINT32_SWAP_ALWAYS(val)
+ #define wxINT32_SWAP_ON_BE(val) wxINT32_SWAP_ALWAYS(val)
+ #define wxUINT32_SWAP_ON_LE(val) (val)
+ #define wxINT32_SWAP_ON_LE(val) (val)
+#else
+ #define wxUINT16_SWAP_ON_LE(val) wxUINT16_SWAP_ALWAYS(val)
+ #define wxINT16_SWAP_ON_LE(val) wxINT16_SWAP_ALWAYS(val)
+ #define wxUINT16_SWAP_ON_BE(val) (val)
+ #define wxINT16_SWAP_ON_BE(val) (val)
+ #define wxUINT32_SWAP_ON_LE(val) wxUINT32_SWAP_ALWAYS(val)
+ #define wxINT32_SWAP_ON_LE(val) wxINT32_SWAP_ALWAYS(val)
+ #define wxUINT32_SWAP_ON_BE(val) (val)
+ #define wxINT32_SWAP_ON_BE(val) (val)
+#endif
+
+// ----------------------------------------------------------------------------
+// Window style flags
+// ----------------------------------------------------------------------------
+