// OS
#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
defined(__LINUX__) || defined(__sgi ) || \
- defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX)
+ defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
+ defined(__EMX__)
#ifndef __UNIX__
#define __UNIX__
#endif
#endif // Sun
- #ifdef __hpux
+ #if defined(__hpux) && !defined(__HPUX__)
#define __HPUX__
#endif // HP-UX
# pragma warning(disable:4100) // unreferenced formal parameter
# pragma warning(disable:4511) // copy ctor couldn't be generated
# pragma warning(disable:4512) // operator=() couldn't be generated
+#ifndef WIN32
+# pragma warning(disable:4134) // conversion between pointers to members of same class
+# pragma warning(disable:4135) // conversion between different integral types
+# pragma warning(disable:4769) // assignment of near pointer to long integer
+#endif
#endif // __VISUALC__
// suppress some Salford C++ warnings
//////////////////////////////////////////////////////////////////////////////////
// Currently Only MS-Windows/NT, XView and Motif are supported
//
-#if defined(__HPUX__) && !defined(__WXMOTIF__)
-# define __WXMOTIF__
+#if defined(__HPUX__) && !defined(__WXGTK__)
+ #ifndef __WXMOTIF__
+ #define __WXMOTIF__
+ #endif // __WXMOTIF__
#endif
+
#if defined(__WXMOTIF__)
-# define __X__
+ #define __X__
#endif
#ifdef __WXMSW__
#define __WIN32__
#endif
+#ifdef __WXWINE__
+ #ifndef __WIN32__
+ #define __WIN32__
+ #endif
+ #ifndef __WIN95__
+ #define __WIN95__
+ #endif
+ #ifndef STRICT
+ #define STRICT
+ #endif
+#endif
+
#ifndef __WIN32__
#define __WIN16__
#endif
// in VC++ 4.2 the bool keyword is reserved (hence can't be typedefed)
// but not implemented, so we must #define it
#define bool unsigned int
+ #elif defined(__VISUALC__) && (__VISUALC__ == 1010)
+ // For VisualC++ 4.1, we need to define
+ // bool as something between 4.0 & 5.0...
+ typedef unsigned int wxbool;
+ #define bool wxbool
+ #define HAVE_BOOL
#elif defined(__VISUALC__) && (__VISUALC__ > 1020)
// VC++ supports bool since 4.2
#define HAVE_BOOL
typedef unsigned int bool;
#endif // bool
-typedef unsigned char wxByte;
typedef short int WXTYPE;
// special care should be taken with this type under Windows where the real
// Callback function type definition
typedef void (*wxFunction) (wxObject&, wxEvent&);
+// ----------------------------------------------------------------------------
+// machine specific settings
+// ----------------------------------------------------------------------------
+
+// fixed length types
+
+typedef char signed wxInt8;
+typedef char unsigned wxUint8;
+
+#ifdef __WIN16__
+typedef int signed wxInt16;
+typedef int unsigned wxUint16;
+typedef long signed wxInt32;
+typedef long unsigned wxUint32;
+#endif
+
+#ifdef __WIN32__
+typedef short signed wxInt16;
+typedef short unsigned wxUint16;
+typedef int signed wxInt32;
+typedef int unsigned wxUint32;
+#endif
+
+#ifdef __WXMAC__
+typedef short signed wxInt16;
+typedef short unsigned wxUint16;
+typedef int signed wxInt32;
+typedef int unsigned wxUint32;
+#endif
+
+#ifdef __WXOS2__
+typedef short signed wxInt16;
+typedef short unsigned wxUint16;
+typedef int signed wxInt32;
+typedef int unsigned wxUint32;
+#endif
+
+#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
+ #if defined(SIZEOF_INT)
+ #if (SIZEOF_SHORT == 2)
+ typedef short signed wxInt16;
+ typedef short unsigned wxUint16;
+ #else
+ #error "FIXME"
+ #endif
+ #if (SIZEOF_INT == 4)
+ typedef int signed wxInt32;
+ typedef int unsigned wxUint32;
+ #else
+ #error "FIXME"
+ #endif
+ #else
+ typedef short signed wxInt16;
+ typedef short unsigned wxUint16;
+ typedef int signed wxInt32;
+ typedef int unsigned wxUint32;
+ #endif
+#endif
+
+typedef wxUint8 wxByte;
+typedef wxUint16 wxWord;
+
+// 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
+// ----------------------------------------------------------------------------
+
/*
- * Window style flags.
* Values are chosen so they can be |'ed in a bit list.
* Some styles are used across more than one group,
* so the values mustn't clash with others in the group.
#define wxSUNKEN_BORDER 0x08000000
#define wxRAISED_BORDER 0x04000000
#define wxBORDER 0x02000000
-#define wxSIMPLE_BORDER 0x02000000
+#define wxSIMPLE_BORDER wxBORDER
#define wxSTATIC_BORDER 0x01000000
#define wxTRANSPARENT_WINDOW 0x00100000
#define wxNO_BORDER 0x00200000
// outside of dialogs.
#define wxTAB_TRAVERSAL 0x00080000
+// Add this style if the control wants to get all keyboard messages (under
+// Windows, it won't normally get the dialog navigation key events)
+#define wxWANTS_CHARS 0x00040000
+
// Orientations
-#define wxHORIZONTAL 0x01
-#define wxVERTICAL 0x02
-#define wxBOTH (wxVERTICAL|wxHORIZONTAL)
+enum wxOrientation
+{
+ wxHORIZONTAL = 0x01,
+ wxVERTICAL = 0x02,
+ wxBOTH = (wxVERTICAL | wxHORIZONTAL)
+};
+
#define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */
/*
#define wxMINIMIZE wxICONIZE
#define wxMAXIMIZE 0x2000
#define wxTHICK_FRAME 0x1000
-#define wxSYSTEM_MENU 0x0800
+#define wxSYSTEM_MENU 0x0800
#define wxMINIMIZE_BOX 0x0400
#define wxMAXIMIZE_BOX 0x0200
#define wxTINY_CAPTION_HORIZ 0x0100
#else
// Under Unix, the dialogs don't have a system menu. Specifying
// wxSYSTEM_MENU here, will make a close button appear.
-# define wxDEFAULT_DIALOG_STYLE (wxCAPTION)
+# define wxDEFAULT_DIALOG_STYLE (wxCAPTION)
#endif
#define wxTR_EDIT_LABELS 0x0008
#define wxTR_LINES_AT_ROOT 0x0010
+#define wxTR_SINGLE 0x0000
+#define wxTR_MULTIPLE 0x0020
+#define wxTR_EXTENDED 0x0040
+#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080
+
/*
* wxListCtrl flags
*/
#define wxSP_NOBORDER 0x0000
#define wxSP_3D 0x0004
#define wxSP_BORDER 0x0008
+#define wxSP_PERMIT_UNSPLIT 0x0010
+#define wxSP_LIVE_UPDATE 0x0020
/*
* wxFrame extra flags
#define wxLI_HORIZONTAL wxHORIZONTAL
#define wxLI_VERTICAL wxVERTICAL
-
+/*
+ * wxProgressDialog flags
+ */
+#define wxPD_CAN_ABORT 0x0001
+#define wxPD_APP_MODAL 0x0002
+#define wxPD_AUTO_HIDE 0x0004
/*
* GDI descriptions
#define wxCANCEL 0x0004
#define wxYES 0x0008
#define wxNO 0x0010
-
-#define wxICON_EXCLAMATION 0x0020
-#define wxICON_HAND 0x0040
-#define wxICON_QUESTION 0x0080
-#define wxICON_INFORMATION 0x0100
+#define wxNO_DEFAULT 0x0020
+#define wxYES_DEFAULT 0x0000 // has no effect
+#define wxICON_EXCLAMATION 0x0040
+#define wxICON_HAND 0x0080
+#define wxICON_QUESTION 0x0100
+#define wxICON_INFORMATION 0x0200
#define wxICON_STOP wxICON_HAND
#define wxICON_ASTERISK wxICON_INFORMATION
// Don't do parent client adjustments (for implementation only)
#define wxSIZE_NO_ADJUSTMENTS 0x0008
-#ifndef __WXGTK__
-
-enum wxDataFormat
+enum wxDataFormatId
{
wxDF_INVALID = 0,
wxDF_TEXT = 1, /* CF_TEXT */
wxDF_ENHMETAFILE = 14,
wxDF_FILENAME = 15, /* CF_HDROP */
wxDF_LOCALE = 16,
- wxDF_PRIVATE = 20
+ wxDF_PRIVATE = 20,
+ wxDF_MAX
};
-#endif
-
/* Virtual keycodes */
enum wxKeyCode
WXK_MBUTTON,
WXK_CLEAR,
WXK_SHIFT,
+ WXK_ALT,
WXK_CONTROL,
WXK_MENU,
WXK_PAUSE,
WXK_SCROLL,
WXK_PAGEUP,
WXK_PAGEDOWN,
-
+
WXK_NUMPAD_SPACE,
WXK_NUMPAD_TAB,
WXK_NUMPAD_ENTER,
WXK_NUMPAD_DOWN,
WXK_NUMPAD_PRIOR,
WXK_NUMPAD_PAGEUP,
+ WXK_NUMPAD_NEXT,
WXK_NUMPAD_PAGEDOWN,
WXK_NUMPAD_END,
WXK_NUMPAD_BEGIN,
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
-#ifdef __GNUWIN32__
+#if defined(__GNUWIN32__) || defined(__WXWINE__)
typedef int (*WXFARPROC)();
#elif defined(__WIN32__)
typedef int (__stdcall *WXFARPROC)();