]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Fixes to wxMotif scrolling and colours (wxTreeCtrl/wxListCtrl now seem to work
[wxWidgets.git] / include / wx / defs.h
index c7b168044330cf1514919c4d317b61b1ca62d210..e68ab2cc01ddf0011013e04a10d68c03befe70b6 100644 (file)
@@ -21,6 +21,7 @@
 #include "glib.h"
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
+#include "wx/gtk/win_gtk.h"
 
 #endif
 
 #endif
 #endif
 
-// Eliminate double/float warnings
-#ifdef _MSC_VER
-# pragma warning(disable:4244)
+#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)    // cobversion from double to float
+#   pragma warning(disable:4100)    // unreferenced formal parameter
+#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__
@@ -69,6 +79,8 @@
 #define __WIN95__
 #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(_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__)
+    // If we use int, we get identically overloaded functions in config.cpp
+    typedef unsigned char bool;
 #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__))
+    #define byte unsigned char
 #endif
 
 typedef short int WXTYPE;
@@ -149,7 +170,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
@@ -280,6 +301,21 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 
 #endif  // VC++
 
+#if _MSC_VER > 1010
+#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
 typedef void (*wxFunction) (wxObject&, wxEvent&);
 
@@ -431,6 +467,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
@@ -521,13 +566,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
  */
@@ -689,7 +741,8 @@ enum wxDataFormat
   wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
   wxDF_DIB =              8,  /* CF_DIB */
   wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
-  wxDF_FILENAME =         15  /* CF_HDROP */
+  wxDF_FILENAME =         15, /* CF_HDROP */
+  wxDF_PRIVATE =          20
 };
 
 // Virtual keycodes
@@ -829,6 +882,7 @@ enum {
 #define wxID_CLEAR              5033
 #define wxID_FIND               5034
 #define wxID_DUPLICATE          5035
+#define wxID_SELECTALL          5036
 
 #define wxID_FILE1              5050
 #define wxID_FILE2              5051
@@ -847,6 +901,11 @@ enum {
 #define wxID_NO                 5104
 #define wxID_STATIC             5105
 
+#define wxID_HIGHEST            5999
+
+// 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
@@ -877,13 +936,16 @@ 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