]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Made wxGTK dcps.cpp generic.
[wxWidgets.git] / include / wx / defs.h
index bde33b9841290730b05325c8be9cdee2ba25929d..2c3b71ec0ce70f3d4ce2657d113ccbbf32e0ebbc 100644 (file)
 #pragma interface "defs.h"
 #endif
 
-#ifdef __WXGTK__
-
-#include "glib.h"
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
-
-#endif
-
 #include <stddef.h>
 
 #include "wx/setup.h"
 #endif
 #endif
 
-// Eliminate double/float warnings
+#if defined(sun) || defined(__SUN__)
+# if !defined(__GNUG__)
+#  ifndef __SUNCC__
+#   define __SUNCC__
+#  endif
+# endif
+#endif
+
+// suppress some Visual C++ warnings
 #ifdef _MSC_VER
-# pragma warning(disable:4244)
+#   pragma warning(disable:4244)    // cobversion from double to float
+#   pragma warning(disable:4100)    // unreferenced formal parameter
 #endif
 
+// suppress some Salford C++ warnings
+#ifdef __SALFORDC__
+#   pragma suppress 353             // Possible nested comments
+#   pragma suppress 593             // Define not used
+#   pragma suppress 61              // enum has no name (doesn't suppress!)
+#   pragma suppress 106             // unnamed, unused parameter
+#   pragma suppress 571             // Virtual function hiding
+#endif
 
 //////////////////////////////////////////////////////////////////////////////////
 // Currently Only MS-Windows/NT, XView and Motif are supported
@@ -56,6 +65,7 @@
 # define __X__
 #endif
 
+#ifdef __WXMSW__
 // wxWindows checks for WIN32, not __WIN32__
 #if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__))
 #define __WIN32__
 #define __WIN95__
 #endif
 
+#if defined(TWIN32) && !defined(__TWIN32__)
+#define __TWIN32__
+#endif
+
+#endif // wxMSW
+
 // Make sure the environment is set correctly
 #if defined(__WXMSW__) && defined(__X__)
 # error "Target can't be both X and Windows"
 // VC++ 4.0 is 1000.
 
 // Add more tests here for compilers that don't already define bool.
-#if ( defined(_MSC_VER) && (_MSC_VER <= 1000) ) || (defined(__BORLANDC__) && (__BORLANDC__ < 0x500))
-typedef unsigned int bool;
+#if defined( __MWERKS__ )
+    #if (__MWERKS__ < 0x1000) || !__option(bool)
+        typedef unsigned int bool;
+    #endif
+#elif defined(__SC__)
+    typedef unsigned int bool;
+#elif defined(__SALFORDC__)
+    typedef unsigned int bool;
+#elif defined(_MSC_VER) && (_MSC_VER <= 1000)
+    typedef unsigned int bool;
+#elif defined(_MSC_VER) && (_MSC_VER == 1020)
+    #define bool unsigned int
+#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
+    typedef unsigned int bool;
+#elif defined(__WATCOMC__)
+    typedef unsigned int bool;
+#elif defined(__SUNCC__)
+    #ifdef __SUNPRO_CC
+        // starting from version 5.0 Sun CC understands 'bool'
+        #if __SUNPRO_CC <= 0x0420
+            // If we use int, we get identically overloaded functions in config.cpp
+            typedef unsigned char bool;
+        #endif // Sun CC version
+    #else
+        #error "Unknown compiler: only Sun's CC and gcc are currently reckognized."
+    #endif // Sun CC
 #endif
 
-#if defined(_MSC_VER) && (_MSC_VER == 1020)
-#define bool unsigned int
-#endif
-
-#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__)
-#define byte unsigned char
+#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__) || (defined(__BORLANDC__) && defined(__WIN16__)) || defined(__SC__) || defined(__SALFORDC__)
+// Not a good idea, because later system files (e.g. windows.h)
+// may try to define it. Use wxByte instead.
+// #define byte unsigned char
 #endif
 
+typedef unsigned char wxByte;
 typedef short int WXTYPE;
 typedef int wxWindowID;
 
@@ -149,7 +188,7 @@ typedef int wxWindowID;
 #  ifdef WXMAKINGDLL
 #    define WXDLLEXPORT __declspec( dllexport )
 #    define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
-#    define WXDLLEXPORT_CTORFN __declspec( dllexport )
+#    define WXDLLEXPORT_CTORFN // __declspec( dllexport )
 #  elif defined(WXUSINGDLL)
 #    define WXDLLEXPORT __declspec( dllimport )
 #    define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type
@@ -181,12 +220,16 @@ class WXDLLEXPORT wxEvent;
 
  /** symbolic constant used by all Find()-like functions returning positive
       integer on success as failure indicator */
-#define NOT_FOUND       (-1)
+#define wxNOT_FOUND       (-1)
 
 // ----------------------------------------------------------------------------
 // Error codes
 // ----------------------------------------------------------------------------
 
+#ifdef ERR_PARAM
+#undef ERR_PARAM
+#endif
+
 /// Standard error codes
 enum  ErrCode
 {
@@ -285,6 +328,19 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 #undef except
 #undef finally
 #define except(x) catch(...)
+#elif defined(__MWERKS__)
+#undef try
+#undef except
+#undef finally
+#define except(x) catch(...)
+#endif
+
+// where should i put this? we need to make sure of this as it breaks
+// the <iostream> code.
+#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__)
+#ifndef __MWERKS__
+#undef __WXDEBUG__
+#endif
 #endif
 
 // Callback function type definition
@@ -423,9 +479,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #define wxTE_PASSWORD       wxPASSWORD
 #define wxTE_READONLY       0x0010
 #define wxTE_MULTILINE      0x0020
-
-// MSW-only
-#define wxTE_RICHTEXT       0x0020
+#define wxTE_PROCESS_TAB    0x0040
 
 /*
  * wxComboBox style flags
@@ -438,6 +492,15 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 /*
  * wxRadioBox/wxRadioButton 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
+
+// Old names for compatibility
 #define wxRA_HORIZONTAL     wxHORIZONTAL
 #define wxRA_VERTICAL       wxVERTICAL
 #define wxRB_GROUP          0x0004
@@ -528,13 +591,20 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #define wxSP_WRAP           0x0020
 
 /*
- * wxSplitterWnd flags
+ * wxSplitterWindow flags
  */
 
 #define wxSP_NOBORDER       0x0000
 #define wxSP_3D             0x0004
 #define wxSP_BORDER         0x0008
 
+/*
+ * wxFrame extra flags
+ */
+
+// No title on taskbar
+#define wxFRAME_TOOL_WINDOW 0x0004
+
 /*
  * wxTabCtrl flags
  */
@@ -614,7 +684,8 @@ enum {
 
 
 // Logical ops
-typedef enum {
+typedef enum 
+{
   wxCLEAR,      // 0
   wxXOR,        // src XOR dst
   wxINVERT,     // NOT dst
@@ -685,23 +756,36 @@ typedef enum {
 // Don't do parent client adjustments (for implementation only)
 #define wxSIZE_NO_ADJUSTMENTS   0x0008
 
-
-// Data format for drag & drop and clipboard operations
-// numbers as per winuser.h
+#ifndef __WXGTK__
 
 enum wxDataFormat
 {
+  wxDF_INVALID =          0,
   wxDF_TEXT =             1,  /* CF_TEXT */
   wxDF_BITMAP =           2,  /* CF_BITMAP */
   wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
-  wxDF_DIB =              8,  /* CF_DIB */
+  wxDF_SYLK =             4,
+  wxDF_DIF =              5,
+  wxDF_TIFF =             6,
   wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
-  wxDF_FILENAME =         15  /* CF_HDROP */
+  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
 };
 
-// Virtual keycodes
+#endif
+
+/* Virtual keycodes */
 
-enum wxKeyCode {
+enum wxKeyCode 
+{
  WXK_BACK    =   8,
  WXK_TAB     =   9,
  WXK_RETURN  = 13,
@@ -720,8 +804,8 @@ enum wxKeyCode {
  WXK_MENU,
  WXK_PAUSE,
  WXK_CAPITAL,
- WXK_PRIOR,  // Page up
- WXK_NEXT,   // Page down
+ WXK_PRIOR,  /* Page up */
+ WXK_NEXT,   /* Page down */
  WXK_END,
  WXK_HOME,
  WXK_LEFT,
@@ -780,37 +864,36 @@ enum wxKeyCode {
  WXK_PAGEDOWN
 };
 
-// Colours - see wx_gdi.cc for database
-
-// OS mnemonics -- Identify the running OS (useful for Windows)
-// [Not all platforms are currently available or supported]
-enum {
+/* OS mnemonics -- Identify the running OS (useful for Windows)
+ * [Not all platforms are currently available or supported] */
+enum 
+{
   wxUNKNOWN_PLATFORM,
-  wxCURSES,     // Text-only CURSES
-  wxXVIEW_X,   // Sun's XView OpenLOOK toolkit
-  wxMOTIF_X,   // OSF Motif 1.x.x
-  wxCOSE_X,        // OSF Common Desktop Environment
-  wxNEXTSTEP,  // NeXTStep
-  wxMACINTOSH, // Apple System 7
-  wxGTK,           // GTK
-  wxQT,                // Qt
-  wxGEOS,          // GEOS
-  wxOS2_PM,        // OS/2 Workplace
-  wxWINDOWS,   // Windows or WfW
-  wxPENWINDOWS,        // Windows for Pen Computing
-  wxWINDOWS_NT,        // Windows NT
-  wxWIN32S,        // Windows 32S API
-  wxWIN95,         // Windows 95
-  wxWIN386         // Watcom 32-bit supervisor modus
+  wxCURSES,     /* Text-only CURSES */
+  wxXVIEW_X,   /* Sun's XView OpenLOOK toolkit */
+  wxMOTIF_X,   /* OSF Motif 1.x.x */
+  wxCOSE_X,    /* OSF Common Desktop Environment */
+  wxNEXTSTEP,  /* NeXTStep */
+  wxMACINTOSH, /* Apple System 7 */
+  wxGTK,       /* GTK */
+  wxQT,                /* Qt */
+  wxGEOS,      /* GEOS */
+  wxOS2_PM,    /* OS/2 Workplace */
+  wxWINDOWS,   /* Windows or WfW */
+  wxPENWINDOWS,        /* Windows for Pen Computing */
+  wxWINDOWS_NT,        /* Windows NT */
+  wxWIN32S,    /* Windows 32S API */
+  wxWIN95,     /* Windows 95 */
+  wxWIN386     /* Watcom 32-bit supervisor modus */
 };
 
-// Printing
+/* Printing */
 #ifndef wxPORTRAIT
 #define wxPORTRAIT      1
 #define wxLANDSCAPE     2
 #endif
 
-// Standard menu identifiers
+/* Standard menu identifiers */
 #define wxID_OPEN               5000
 #define wxID_CLOSE              5001
 #define wxID_NEW                5002
@@ -857,13 +940,12 @@ enum {
 
 #define wxID_HIGHEST            5999
 
-// Shortcut for easier dialog-unit-to-pixel conversion
+/* Shortcut for easier dialog-unit-to-pixel conversion */
 #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
 
 #ifdef __WXMSW__
-// Stand-ins for Windows types, to avoid
-// #including all of windows.h
-
+/* Stand-ins for Windows types, to avoid
+ * #including all of windows.h */
 typedef unsigned long   WXHWND;
 typedef unsigned long   WXHANDLE;
 typedef unsigned long   WXHICON;
@@ -890,19 +972,22 @@ typedef void *          WXRGNDATA;
 typedef void *          WXMSG;
 typedef unsigned long   WXHCONV;
 typedef unsigned long   WXHKEY;
+typedef unsigned long   WXHTREEITEM;
 typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
 #ifdef __GNUWIN32__
 typedef int (*WXFARPROC)();
-#else
+#elif defined(__WIN32__)
 typedef int (__stdcall *WXFARPROC)();
+#else
+typedef int (*WXFARPROC)();
 #endif
 
 #endif
 
 #ifdef __WXMOTIF__
-// Stand-ins for X/Xt/Motif types
+/* Stand-ins for X/Xt/Motif types */
 typedef void*           WXWindow;
 typedef void*           WXWidget;
 typedef void*           WXAppContext;
@@ -920,5 +1005,69 @@ typedef void*           WXCursor;
 typedef void*           WXFontList;
 #endif
 
+#ifdef __WXGTK__
+/* Stand-ins for GLIB types */
+typedef int            gint;
+typedef unsigned       guint;
+typedef unsigned long  gulong;
+typedef void*          gpointer;
+
+/* Stand-ins for GDK types */
+typedef gulong                  GdkAtom;
+typedef struct _GdkColor        GdkColor;
+typedef struct _GdkColormap     GdkColormap;
+typedef struct _GdkFont         GdkFont;
+typedef struct _GdkGC           GdkGC;
+typedef struct _GdkWindow       GdkWindow;
+typedef struct _GdkWindow       GdkBitmap;
+typedef struct _GdkWindow       GdkPixmap;
+typedef struct _GdkCursor       GdkCursor;
+typedef struct _GdkRegion       GdkRegion;
+
+/* Stand-ins for GTK types */
+typedef struct _GtkWidget       GtkWidget;
+typedef struct _GtkStyle        GtkStyle;
+typedef struct _GtkAdjustment   GtkAdjustment;
+typedef struct _GtkList         GtkList;
+typedef struct _GtkToolbar      GtkToolbar;
+typedef struct _GtkNotebook     GtkNotebook;
+typedef struct _GtkNotebookPage GtkNotebookPage;
+
+#endif
+
+// This is required because of clashing macros in windows.h, which may be
+// included before or after wxWindows classes, and therefore must be
+// disabled here before any significant wxWindows headers are included.
+#ifdef __WXMSW__
+#ifdef GetClassInfo
+#undef GetClassInfo
+#endif
+
+#ifdef GetClassName
+#undef GetClassName
+#endif
+
+#ifdef DrawText
+#undef DrawText
+#endif
+
+#ifdef GetCharWidth
+#undef GetCharWidth
+#endif
+
+#ifdef StartDoc
+#undef StartDoc
+#endif
+
+#ifdef FindWindow
+#undef FindWindow
+#endif
+
+#ifdef FindResource
+#undef FindResource
+#endif
+#endif
+  // __WXMSW__
+
 #endif
     // _WX_DEFS_H_