]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
fixed compile error
[wxWidgets.git] / include / wx / defs.h
index 565f80c520d3816fda4872fbd952bafb2e8b7fbd..f99ef2326b78933e03d2b17a79d22aefc6365fa9 100644 (file)
 #define _WX_DEFS_H_
 
 #ifdef __GNUG__
-#pragma interface "defs.h"
+    #pragma interface "defs.h"
 #endif
 
-#include <stddef.h>
-
-#include "wx/setup.h"
-
-#ifdef PACKAGE
-  #undef PACKAGE
-#endif
-#ifdef VERSION
-  #undef VERSION
-#endif
-
-#include "wx/version.h"
-
 // ----------------------------------------------------------------------------
 // compiler and OS identification
 // ----------------------------------------------------------------------------
@@ -39,9 +26,7 @@
     defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
     defined(__EMX__)
 
-    #ifndef __UNIX__
-        #define __UNIX__
-    #endif // Unix
+    #define __UNIX_LIKE__
 
     // Helps SGI compilation, apparently
     #ifdef __SGI__
 
 #elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
         // MacOS
+#elif defined(__OS2__)
+    #if defined(__IBMCPP__)
+        #define __VISAGEAVER__ __IBMCPP__
+    #endif
+    #ifndef __WXOS2__
+        #define __WXOS2__
+    #endif
+    #ifndef __WXPM__
+        #define __WXPM__
+    #endif
+
+    // Place other OS/2 compiler environment defines here
+    #define LINKAGEMODE _Optlink
 #else   // Windows
     #ifndef __WINDOWS__
         #define __WINDOWS__
     #endif  // compiler
 #endif  // OS
 
+// LINKAGEMODE mode is empty for everyting except OS/2
+#ifndef LINKAGEMODE
+    #define LINKAGEMODE
+#endif // LINKAGEMODE
+
 // suppress some Visual C++ warnings
 #ifdef __VISUALC__
 #   pragma warning(disable:4244)    // conversion from double to float
 #   pragma suppress 571             // Virtual function hiding
 #endif // __SALFORDC__
 
+#ifdef __VISUALC__
+#ifndef WIN32
+// VC1.5 does not have LPTSTR type
+#define LPTSTR LPSTR
+#define LPCTSTR LPCSTR
+#endif
+#endif
+
 // Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
 // so define it ourselves
 #ifdef __DECCXX
 #if defined(__HPUX__) && defined(__GNUG__)
     #define va_list __gnuc_va_list
 #endif // HP-UX
+    
+// Mingw32 gcc-2.95 uses new windows headers which are more ms-like
+// 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_MINOR__>=95)
+#   define wxUSE_NORLANDER_HEADERS 1
+#endif
+
 
 //////////////////////////////////////////////////////////////////////////////////
 // Currently Only MS-Windows/NT, XView and Motif are supported
 // Make sure the environment is set correctly
 #if defined(__WXMSW__) && defined(__X__)
     #error "Target can't be both X and Windows"
-#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
+#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXPM__) && \
       !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
-    #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]"
+    #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
 #endif
 
+// ----------------------------------------------------------------------------
+// wxWindows options
+// ----------------------------------------------------------------------------
+
+#include <stddef.h>
+
+#include "wx/setup.h"
+
+// just in case they were defined in setup.h
+#undef PACKAGE
+#undef VERSION
+
+// if we're on a Unixsystem but didn't use configure (so that setup.h didn't
+// define __UNIX__), do define __UNIX__ now
+#if !defined(__UNIX__) && defined(__UNIX_LIKE__)
+    #define __UNIX__
+#endif // Unix
+
+#include "wx/version.h"
+
 // ============================================================================
 // non portable C++ features
 // ============================================================================
 // check for native bool type and TRUE/FALSE constants
 // ----------------------------------------------------------------------------
 
-#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__)
+#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || defined(__WXSTUBS__)
     // Bool is now obsolete, use bool instead
     // typedef int Bool;
 
     #elif defined(__GNUWIN32__)
         // Cygwin supports bool
         #define HAVE_BOOL
+    #elif defined(__VISAGECPP__)
+        typedef unsigned long bool;
+        #define HAVE_BOOL
     #endif // compilers
 #endif // HAVE_BOOL
 
@@ -255,7 +297,7 @@ typedef int wxWindowID;
  * Making or using wxWindows as a Windows DLL
  */
 
-#ifdef __WXMSW__
+#if defined(__WXMSW__)
 
 // _declspec works in BC++ 5 and later, as well as VC++
 #if defined(__VISUALC__) || defined(__BORLANDC__)
@@ -274,6 +316,22 @@ typedef int wxWindowID;
 #    define WXDLLEXPORT_CTORFN
 #  endif
 
+#elif defined(__WXPM__)
+
+#  ifdef WXMAKINGDLL
+#    define WXDLLEXPORT _Export
+#    define WXDLLEXPORT_DATA(type) _Export type
+#    define WXDLLEXPORT_CTORFN
+#  elif defined(WXUSINGDLL)
+#    define WXDLLEXPORT _Export
+#    define WXDLLEXPORT_DATA(type) _Export type
+#    define WXDLLEXPORT_CTORFN
+#  else
+#    define WXDLLEXPORT
+#    define WXDLLEXPORT_DATA(type) type
+#    define WXDLLEXPORT_CTORFN
+#  endif
+
 #else
 #  define WXDLLEXPORT
 #  define WXDLLEXPORT_DATA(type) type
@@ -400,7 +458,7 @@ enum
   wxWIN95,                  // Windows 95
   wxWIN386,                 // Watcom 32-bit supervisor modus
   wxMGL_UNIX,               // MGL with direct hardware access
-  wxMGL_X,                  // MGL on X 
+  wxMGL_X,                  // MGL on X
   wxMGL_WIN32,              // MGL on Win32
   wxMGL_OS2                 // MGL on OS/2
 };
@@ -411,54 +469,54 @@ enum
 
 // fixed length types
 
-typedef  char    signed  wxInt8;
-typedef  char  unsigned  wxUint8;
+#define wxInt8    char    signed
+#define wxUint8   char  unsigned
 
 #ifdef __WIN16__
-typedef  int     signed  wxInt16;
-typedef  int   unsigned  wxUint16;
-typedef  long    signed  wxInt32;
-typedef  long  unsigned  wxUint32;
+#define wxInt16    int    signed
+#define wxUint16   int  unsigned
+#define wxInt32   long    signed
+#define wxUint32  long  unsigned
 #endif
 
 #ifdef __WIN32__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#define wxInt16  short    signed
+#define wxUint16 short  unsigned
+#define wxInt32    int    signed
+#define wxUint32   int  unsigned
 #endif
 
 #ifdef __WXMAC__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#define wxInt16  short    signed
+#define wxUint16 short  unsigned
+#define wxInt32    int    signed
+#define wxUint32   int  unsigned
 #endif
 
 #ifdef __WXOS2__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#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... */
-    typedef  short   signed  wxInt16;
-    typedef  short unsigned  wxUint16;
-    typedef  int     signed  wxInt32;
-    typedef  int   unsigned  wxUint32;
+    #define wxInt16  short    signed
+    #define wxUint16 short  unsigned
+    #define wxInt32    int    signed
+    #define wxUint32   int  unsigned
   #else
-    typedef  short   signed  wxInt16;
-    typedef  short unsigned  wxUint16;
-    typedef  int     signed  wxInt32;
-    typedef  int   unsigned  wxUint32;
+    #define wxInt16  short    signed
+    #define wxUint16 short  unsigned
+    #define wxInt32    int    signed
+    #define wxUint32   int  unsigned
   #endif
 #endif
 
-typedef  wxUint8         wxByte;
-typedef  wxUint16        wxWord;
+#define  wxByte   wxUint8
+#define  wxWord   wxUint16
 
 // byte sex
 
@@ -478,12 +536,12 @@ typedef  wxUint16        wxWord;
    ((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) | \
@@ -575,9 +633,12 @@ typedef  wxUint16        wxWord;
 #define wxWANTS_CHARS           0x00040000
 
 // Make window retained (mostly Motif, I think)
-#define wxRETAINED              0x0002000
+#define wxRETAINED              0x00020000
 #define wxBACKINGSTORE          wxRETAINED
 
+// don't invalidate the whole window (resulting in a PAINT event) when the
+// window is resized (currently, makes sense for wxMSW only)
+#define wxNO_FULL_REPAINT_ON_RESIZE 0x00010000
 /*
  * wxFrame/wxDialog style flags
  */
@@ -644,8 +705,6 @@ typedef  wxUint16        wxWord;
  */
 // use native docking
 #define wxMB_DOCKABLE       0x0001
-// make all menus tearoff menus, even if not set on per-menu basis
-#define wxMB_TEAROFF        0x0002
 
 /*
  * wxMenu style flags
@@ -687,6 +746,9 @@ typedef  wxUint16        wxWord;
 #define wxTE_READONLY       0x0010
 #define wxTE_MULTILINE      0x0020
 #define wxTE_PROCESS_TAB    0x0040
+// this style means to use RICHEDIT control and does something only under wxMSW
+// and Win32 and is silently ignored under all other platforms
+#define wxTE_RICH           0x0080
 
 /*
  * wxComboBox style flags
@@ -697,18 +759,18 @@ typedef  wxUint16        wxWord;
 #define wxCB_DROPDOWN       0x0020
 
 /*
- * wxRadioBox/wxRadioButton style flags
+ * wxRadioBox style flags
  */
 // New, more intuitive names to specify majorDim argument
-// Same as wxRA_HORIZONTAL
-#define wxRA_SPECIFY_COLS   0x0001
-// Same as wxRA_VERTICAL
-#define wxRA_SPECIFY_ROWS   0x0002
-
+#define wxRA_SPECIFY_COLS   wxHORIZONTAL
+#define wxRA_SPECIFY_ROWS   wxVERTICAL
 // Old names for compatibility
 #define wxRA_HORIZONTAL     wxHORIZONTAL
 #define wxRA_VERTICAL       wxVERTICAL
+
+/*
+ * wxRadioButton style flag
+ */
 #define wxRB_GROUP          0x0004
 
 /*
@@ -759,7 +821,7 @@ typedef  wxUint16        wxWord;
 #define wxTR_SINGLE          0x0000
 #define wxTR_MULTIPLE        0x0020
 #define wxTR_EXTENDED        0x0040
-#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080
+#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080
 
 /*
  * wxListCtrl flags
@@ -847,10 +909,16 @@ typedef  wxUint16        wxWord;
 #define wxPD_REMAINING_TIME     0x0020
 
 /*
- * extended dialog specifiers. these values are stored in a different 
+ * wxHtmlWindow flags
+ */
+#define wxHW_SCROLLBAR_NEVER    0x0002
+#define wxHW_SCROLLBAR_AUTO     0x0004
+
+/*
+ * extended dialog specifiers. these values are stored in a different
  * flag and thus do not overlap with other style flags. note that these
  * values do not correspond to the return values of the dialogs (for
- * those values, look at the wxID_XXX defines). 
+ * those values, look at the wxID_XXX defines).
  */
 #define wxOK                    0x00000001
 #define wxYES_NO                0x00000002
@@ -961,9 +1029,11 @@ enum wxDirection
 
 // wxCENTRE                   = 0x0400 (defined above)
 
-// centering into frame rather than screen 
-#define wxCENTER_FRAME          0x0004  
-
+// centering into frame rather than screen (obsolete)
+#define wxCENTER_FRAME          0x0000
+// centre on screen rather than parent
+#define wxCENTRE_ON_SCREEN      0x0004
+#define wxCENTER_ON_SCREEN      wxCENTRE_ON_SCREEN
 
 // ----------------------------------------------------------------------------
 // Possible SetSize flags
@@ -1342,8 +1412,8 @@ typedef enum {
 // platform specific (implementation) parts of the headers
 // ---------------------------------------------------------------------------
 
-#ifdef __WXMSW__
-// Stand-ins for Windows types, to avoid #including all of windows.h
+#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;
 typedef unsigned long   WXHANDLE;
 typedef unsigned long   WXHICON;
@@ -1376,6 +1446,27 @@ typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
 
+#if defined(__WXPM__)
+typedef unsigned long   WXMPARAM;
+typedef unsigned long   WXMSGID;
+typedef void*           WXRESULT;
+typedef int             (*WXFARPROC)();
+// some windows handles not defined by PM
+typedef unsigned long   HANDLE;
+typedef unsigned long   HICON;
+typedef unsigned long   HFONT;
+typedef unsigned long   HMENU;
+typedef unsigned long   HPEN;
+typedef unsigned long   HBRUSH;
+typedef unsigned long   HPALETTE;
+typedef unsigned long   HCURSOR;
+typedef unsigned long   HINSTANCE;
+typedef unsigned long   HIMAGELIST;
+typedef unsigned long   HGLOBAL;
+typedef unsigned long   DWORD;
+typedef unsigned short  WORD;
+#endif
+
 #if defined(__GNUWIN32__) || defined(__WXWINE__)
     typedef int (*WXFARPROC)();
 #elif defined(__WIN32__)
@@ -1415,6 +1506,7 @@ typedef int            gint;
 typedef unsigned       guint;
 typedef unsigned long  gulong;
 typedef void*          gpointer;
+typedef struct _GSList GSList;
 
 /* Stand-ins for GDK types */
 typedef gulong                  GdkAtom;