]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Added a bug report; C++Builder compile fixes
[wxWidgets.git] / include / wx / defs.h
index e9a831e9913e507e7baa2927fb6707430e5c65e1..8a546d325d97562053ffc98d2dc27180611bb709 100644 (file)
     #pragma interface "defs.h"
 #endif
 
+
+// needed to handle strings with xgettext:
+#ifndef gettext_noop
+#  define gettext_noop(x) x
+#endif
+
 // ----------------------------------------------------------------------------
 // compiler and OS identification
 // ----------------------------------------------------------------------------
 // we are setting this define because of the complex check
 // using NORLANDER as Cygwin may follow. (header author is Anders Norlander)
 #if defined(__MINGW32__) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+#ifndef wxUSE_NORLANDER_HEADERS
 #   define wxUSE_NORLANDER_HEADERS 1
 #endif
+#endif
 
 
 //////////////////////////////////////////////////////////////////////////////////
         // Cygwin supports bool
         #define HAVE_BOOL
     #elif defined(__VISAGECPP__)
-        typedef unsigned long bool;
+        #if __IBMCPP__ < 400
+            typedef unsigned long bool;
+        #endif
         #define HAVE_BOOL
     #endif // compilers
 #endif // HAVE_BOOL
@@ -309,7 +319,7 @@ typedef int wxWindowID;
 // wxCALLBACK should be used for the functions which are called back by
 // Windows (such as compare function for wxListCtrl)
 #if defined(__WXMSW__)
-    #if defined(__MINGW32__)
+    #if defined(__MINGW32__) || defined(__GNUWIN32__)
         #define wxCALLBACK __attribute__((stdcall))
     #else
         // both VC++ and Borland understand this
@@ -506,9 +516,25 @@ enum
 };
 
 // ----------------------------------------------------------------------------
-// machine specific settings
+// standard wxWindows types
 // ----------------------------------------------------------------------------
 
+// the type for screen and DC coordinates
+
+#if wxUSE_COMPATIBLE_COORD_TYPES
+    // to ensure compatibility with 2.0, we must use long
+    #define wxCoord long
+#else  // !wxUSE_COMPATIBLE_COORD_TYPES
+    #ifdef __WIN16__
+        // under Win16, int is too small, so use long to allow for bigger
+        // virtual canvases
+        typedef long wxCoord;
+    #else // !Win16
+        // other platforms we support have at least 32bit int - quite enough
+        typedef int wxCoord;
+    #endif // Win16/!Win16
+#endif // wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES
+
 // fixed length types
 
 #define wxInt8    char    signed
@@ -560,6 +586,10 @@ enum
 #define  wxByte   wxUint8
 #define  wxWord   wxUint16
 
+// ----------------------------------------------------------------------------
+// byte ordering related definition and macros
+// ----------------------------------------------------------------------------
+
 // byte sex
 
 #define  wxBIG_ENDIAN     4321
@@ -665,12 +695,17 @@ enum wxDirection
 enum wxAlignment
 {
     wxALIGN_NOT               = 0x0000,
-    wxALIGN_CENTER            = 0x0100,
-    wxALIGN_CENTRE            = wxALIGN_CENTER,
+    wxALIGN_CENTER_HORIZONTAL = 0x0100,
+    wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL,
     wxALIGN_LEFT              = wxALIGN_NOT,
     wxALIGN_TOP               = wxALIGN_NOT,
     wxALIGN_RIGHT             = 0x0200,
-    wxALIGN_BOTTOM            = 0x0400
+    wxALIGN_BOTTOM            = 0x0400,
+    wxALIGN_CENTER_VERTICAL   = 0x0800,
+    wxALIGN_CENTRE_VERTICAL   = wxALIGN_CENTER_VERTICAL,
+
+    wxALIGN_CENTER            = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL),
+    wxALIGN_CENTRE            = wxALIGN_CENTER
 };
 
 enum wxStretch
@@ -678,7 +713,8 @@ enum wxStretch
     wxSTRETCH_NOT             = 0x0000,
     wxSHRINK                  = 0x1000,
     wxGROW                    = 0x2000,
-    wxEXPAND                  = wxGROW
+    wxEXPAND                  = wxGROW,
+    wxSHAPED                  = 0x4000
 };
 
 // ----------------------------------------------------------------------------
@@ -775,7 +811,7 @@ enum wxStretch
 #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|wxTHICK_FRAME)
 #endif
 
 /*
@@ -953,19 +989,19 @@ enum wxStretch
 /*
  * wxSpinButton flags
  */
-#define wxSP_VERTICAL       0x0004
-#define wxSP_HORIZONTAL     0x0008
-#define wxSP_ARROW_KEYS     0x0010
-#define wxSP_WRAP           0x0020
+#define wxSP_HORIZONTAL       wxHORIZONTAL // 4
+#define wxSP_VERTICAL         wxVERTICAL   // 8
+#define wxSP_ARROW_KEYS       0x0010
+#define wxSP_WRAP             0x0020
 
 /*
  * wxSplitterWindow flags
  */
-#define wxSP_NOBORDER       0x0000
-#define wxSP_3D             0x0004
-#define wxSP_BORDER         0x0008
-#define wxSP_PERMIT_UNSPLIT 0x0010
-#define wxSP_LIVE_UPDATE    0x0020
+#define wxSP_NOBORDER         0x0000
+#define wxSP_3D               0x0010
+#define wxSP_BORDER           0x0020
+#define wxSP_PERMIT_UNSPLIT   0x0040
+#define wxSP_LIVE_UPDATE      0x0080
 
 /*
  * wxFrame extra flags
@@ -977,14 +1013,14 @@ enum wxStretch
  * wxTabCtrl flags
  */
 #define wxTC_MULTILINE        0x0000
-#define wxTC_RIGHTJUSTIFY     0x0004
-#define wxTC_FIXEDWIDTH       0x0008
-#define wxTC_OWNERDRAW        0x0010
+#define wxTC_RIGHTJUSTIFY     0x0010
+#define wxTC_FIXEDWIDTH       0x0020
+#define wxTC_OWNERDRAW        0x0040
 
 /*
  * wxNotebook flags
  */
-#define wxNB_FIXEDWIDTH       0x0008
+#define wxNB_FIXEDWIDTH       0x0010
 #define wxNB_LEFT             0x0020
 #define wxNB_RIGHT            0x0040
 #define wxNB_BOTTOM           0x0080
@@ -992,7 +1028,12 @@ enum wxStretch
 /*
  * wxStatusBar95 flags
  */
-#define wxST_SIZEGRIP         0x0002
+#define wxST_SIZEGRIP         0x0010
+
+/*
+ * wxStaticText flags
+ */
+#define wxST_NO_AUTORESIZE    0x0001
 
 /*
  * wxStaticLine flags
@@ -1223,28 +1264,29 @@ typedef enum
 #define    wxTOOL_LEFT       3
 #define    wxTOOL_RIGHT       4
 
-
+// the values of the format constants should be the same as correspondign
+// CF_XXX constants in Windows API
 enum wxDataFormatId
 {
-  wxDF_INVALID =          0,
-  wxDF_TEXT =             1,  /* CF_TEXT */
-  wxDF_BITMAP =           2,  /* CF_BITMAP */
-  wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
-  wxDF_SYLK =             4,
-  wxDF_DIF =              5,
-  wxDF_TIFF =             6,
-  wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
-  wxDF_DIB =              8,  /* CF_DIB */
-  wxDF_PALETTE =          9,
-  wxDF_PENDATA =          10,
-  wxDF_RIFF =             11,
-  wxDF_WAVE =             12,
-  wxDF_UNICODETEXT =      13,
-  wxDF_ENHMETAFILE =      14,
-  wxDF_FILENAME =         15, /* CF_HDROP */
-  wxDF_LOCALE =           16,
-  wxDF_PRIVATE =          20,
-  wxDF_MAX
+    wxDF_INVALID =          0,
+    wxDF_TEXT =             1,  /* CF_TEXT */
+    wxDF_BITMAP =           2,  /* CF_BITMAP */
+    wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
+    wxDF_SYLK =             4,
+    wxDF_DIF =              5,
+    wxDF_TIFF =             6,
+    wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
+    wxDF_DIB =              8,  /* CF_DIB */
+    wxDF_PALETTE =          9,
+    wxDF_PENDATA =          10,
+    wxDF_RIFF =             11,
+    wxDF_WAVE =             12,
+    wxDF_UNICODETEXT =      13,
+    wxDF_ENHMETAFILE =      14,
+    wxDF_FILENAME =         15, /* CF_HDROP */
+    wxDF_LOCALE =           16,
+    wxDF_PRIVATE =          20,
+    wxDF_MAX
 };
 
 /* Virtual keycodes */
@@ -1482,12 +1524,60 @@ typedef enum {
     wxPRINT_MODE_PRINTER = 3    // Send to printer
 } wxPrintMode;
 
+// ---------------------------------------------------------------------------
+// Macro to specify "All Files" on different platforms
+// ---------------------------------------------------------------------------
+#if defined(__WXMSW__)
+#   define wxALL_FILES_PATTERN   "*.*"
+#   define wxALL_FILES           gettext_noop("All files (*.*)|*.*")
+#else
+#   define wxALL_FILES_PATTERN   "*"
+#   define wxALL_FILES           gettext_noop("All files (*)|*")
+#endif
 // ---------------------------------------------------------------------------
 // macros that enable wxWindows apps to be compiled in absence of the
 // sytem headers, although some platform specific types are used in the
 // platform specific (implementation) parts of the headers
 // ---------------------------------------------------------------------------
 
+#ifdef __WXMAC__
+
+typedef WindowPtr      WXHWND;
+typedef Handle                         WXHANDLE;
+typedef CIconHandle            WXHICON;
+//typedef unsigned long   WXHFONT;
+typedef MenuHandle     WXHMENU;
+//typedef unsigned long   WXHPEN;
+//typedef unsigned long   WXHBRUSH;
+//typedef unsigned long   WXHPALETTE;
+typedef CursHandle     WXHCURSOR;
+typedef RgnHandle      WXHRGN;
+//typedef unsigned long   WXHACCEL;
+//typedef unsigned long   WXHINSTANCE;
+typedef GWorldPtr   WXHBITMAP;
+//typedef unsigned long   WXHIMAGELIST;
+//typedef unsigned long   WXHGLOBAL;
+typedef GrafPtr                WXHDC;
+typedef unsigned int    WXUINT;
+typedef unsigned long   WXDWORD;
+typedef unsigned short  WXWORD;
+//typedef unsigned int    WXWPARAM;
+//typedef long            WXLPARAM;
+typedef RGBColor               WXCOLORREF;
+//typedef void *          WXRGNDATA;
+//typedef void *          WXMSG;
+//typedef unsigned long   WXHCONV;
+//typedef unsigned long   WXHKEY;
+//typedef void *          WXDRAWITEMSTRUCT;
+//typedef void *          WXMEASUREITEMSTRUCT;
+//typedef void *          WXLPCREATESTRUCT;
+typedef int (*WXFARPROC)();
+
+typedef WindowPtr           WXWindow;
+typedef ControlHandle       WXWidget;
+
+#endif
+
 #if defined(__WXMSW__) || defined(__WXPM__)
 // Stand-ins for Windows types or OS/2, to avoid #including all of windows.h or os2.h
 typedef unsigned long   WXHWND;
@@ -1517,7 +1607,9 @@ typedef long            WXLPARAM;
 #  define WXLPARAM      MPARAM
 #  define RECT          RECTL
 #  define LOGFONT       FATTRS
-#endif
+#  define LOWORD        SHORT1FROMMP
+#  define HIWORD        SHORT2FROMMP
+#endif // __WXMSW__
 typedef unsigned long   WXCOLORREF;
 typedef void *          WXRGNDATA;
 typedef void *          WXMSG;
@@ -1535,6 +1627,7 @@ typedef unsigned long   WXMSGID;
 typedef void*           WXRESULT;
 typedef int             (*WXFARPROC)();
 // some windows handles not defined by PM
+typedef unsigned long   COLORREF;
 typedef unsigned long   HANDLE;
 typedef unsigned long   HICON;
 typedef unsigned long   HFONT;
@@ -1559,6 +1652,16 @@ typedef unsigned short  WORD;
 #endif
 
 typedef WXHWND WXWidget;
+
+#if defined(__BORLANDC__) && !defined(__WIN32__)
+#ifndef LPTSTR
+#define LPTSTR LPSTR
+#endif
+#ifndef LPCTSTR
+#define LPCTSTR LPSTR
+#endif
+#endif
+
 #endif // MSW
 
 #ifdef __WXMOTIF__