]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Unicode changes.
[wxWidgets.git] / include / wx / defs.h
index 9f4da9c1a38565930422e125dbb5f86ba83a02d6..1e17c22014d0830be32aa31e3feea69c57f56282 100644 (file)
@@ -28,7 +28,8 @@
 // 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__
 #   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
 #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
     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
@@ -347,8 +364,133 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 // 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.
@@ -373,7 +515,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
@@ -394,10 +536,18 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 // 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 */
 
 /*
@@ -617,6 +767,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #define wxSP_3D             0x0004
 #define wxSP_BORDER         0x0008
 #define wxSP_PERMIT_UNSPLIT 0x0010
+#define wxSP_LIVE_UPDATE    0x0020
 
 /*
  * wxFrame extra flags
@@ -759,11 +910,12 @@ typedef enum
 #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
@@ -1153,7 +1305,7 @@ typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
 
-#ifdef __GNUWIN32__
+#if defined(__GNUWIN32__) || defined(__WXWINE__)
     typedef int (*WXFARPROC)();
 #elif defined(__WIN32__)
     typedef int (__stdcall *WXFARPROC)();