]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Changed GetSize to DoGetSize so virtual GetSize works right.
[wxWidgets.git] / include / wx / defs.h
index 93daa1ce388c892e349d08a924cfa4c200388fe9..0f823ffd1143d432a397f6b82a4b8ded11cc5eea 100644 (file)
 // Currently Only MS-Windows/NT, XView and Motif are supported
 //
 #if defined(__HPUX__) && !defined(__WXGTK__)
-    #ifndef __WXMOTIF__  
+    #ifndef __WXMOTIF__
         #define __WXMOTIF__
     #endif // __WXMOTIF__
 #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
@@ -341,8 +346,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) ( \
+    (((wxInt16) (val) & (wxInt16) 0x00ffU) << 8) | \
+    (((wxInt16) (val) & (wxInt16) 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) ( \
+    (((wxInt32) (val) & (wxInt32) 0x000000ffU) << 24) | \
+    (((wxInt32) (val) & (wxInt32) 0x0000ff00U) <<  8) | \
+    (((wxInt32) (val) & (wxInt32) 0x00ff0000U) >>  8) | \
+    (((wxInt32) (val) & (wxInt32) 0xff000000U) >> 24)))
+
+// machine specific byte swapping
+
+#ifdef WORDS_BIGENDIAN
+  #define wxUINT16_SWAP_FROM_LE(val)  wxUINT16_SWAP_ALWAYS(val)
+  #define wxINT16_SWAP_FROM_LE(val)   wxINT16_SWAP_ALWAYS(val)
+  #define wxUINT16_SWAP_FROM_BE(val)  (val)
+  #define wxINT16_SWAP_FROM_BE(val)   (val)
+  #define wxUINT32_SWAP_FROM_LE(val)  wxUINT32_SWAP_ALWAYS(val)
+  #define wxINT32_SWAP_FROM_LE(val)   wxINT32_SWAP_ALWAYS(val)
+  #define wxUINT32_SWAP_FROM_BE(val)  (val)
+  #define wxINT32_SWAP_FROM_BE(val)   (val)
+#else
+  #define wxUINT16_SWAP_FROM_BE(val)  wxUINT16_SWAP_ALWAYS(val)
+  #define wxINT16_SWAP_FROM_BE(val)   wxINT16_SWAP_ALWAYS(val)
+  #define wxUINT16_SWAP_FROM_LE(val)  (val)
+  #define wxINT16_SWAP_FROM_LE(val)   (val)
+  #define wxUINT32_SWAP_FROM_BE(val)  wxUINT32_SWAP_ALWAYS(val)
+  #define wxINT32_SWAP_FROM_BE(val)   wxINT32_SWAP_ALWAYS(val)
+  #define wxUINT32_SWAP_FROM_LE(val)  (val)
+  #define wxINT32_SWAP_FROM_LE(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.
@@ -367,7 +497,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
@@ -388,10 +518,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 */
 
 /*
@@ -402,7 +540,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
@@ -426,7 +564,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
 
 
@@ -561,6 +699,11 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
  */
@@ -605,6 +748,8 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
@@ -639,7 +784,12 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #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
@@ -771,9 +921,7 @@ typedef enum
 // 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 */
@@ -792,11 +940,10 @@ enum wxDataFormat
   wxDF_ENHMETAFILE =      14,
   wxDF_FILENAME =         15, /* CF_HDROP */
   wxDF_LOCALE =           16,
-  wxDF_PRIVATE =          20
+  wxDF_PRIVATE =          20,
+  wxDF_MAX
 };
 
-#endif
-
 /* Virtual keycodes */
 
 enum wxKeyCode
@@ -815,6 +962,7 @@ enum wxKeyCode
   WXK_MBUTTON,
   WXK_CLEAR,
   WXK_SHIFT,
+  WXK_ALT,
   WXK_CONTROL,
   WXK_MENU,
   WXK_PAUSE,
@@ -877,7 +1025,7 @@ enum wxKeyCode
   WXK_SCROLL,
   WXK_PAGEUP,
   WXK_PAGEDOWN,
+
   WXK_NUMPAD_SPACE,
   WXK_NUMPAD_TAB,
   WXK_NUMPAD_ENTER,
@@ -892,7 +1040,7 @@ enum wxKeyCode
   WXK_NUMPAD_DOWN,
   WXK_NUMPAD_PRIOR,
   WXK_NUMPAD_PAGEUP,
-  WXK_NUMPAD_NEXT
+  WXK_NUMPAD_NEXT,
   WXK_NUMPAD_PAGEDOWN,
   WXK_NUMPAD_END,
   WXK_NUMPAD_BEGIN,