]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Added Motif files.
[wxWidgets.git] / include / wx / defs.h
index 75e3546dc61f24317ec9411cd43f5f5e7244c01a..b57ca708429d07b7a6400f6e14fd02f9159d6726 100644 (file)
 #include "wx/version.h"
 
 // Helps SGI compilation, apparently
-#if defined(__SGI__) && defined(__GNUG__)
+#if defined(__SGI__) 
+#if defined(__GNUG__)
 #define __need_wchar_t
+#else
+/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to 
+ * mix gcc and cc/CC, the name mangling is different */
+#define __SGI_CC__
+#endif
 #endif
 
 // Eliminate double/float warnings
@@ -199,20 +205,41 @@ enum  ErrCode
 //  a question of style, because delete will do it itself anyhow, but it might
 //  be considered as an error by some overzealous debugging implementations of
 //  the library, so we do it ourselves)
-#define wxDELETE(p)      if ( (p) != NULL ) { delete (p); p = NULL; }
+#if defined(__SGI_CC__)
+// Okay this is bad styling, but the native SGI compiler is very picky, it 
+// wont let you compare/assign between a NULL (void *) and another pointer
+// type. To be really clean we'd need to pass in another argument, the type 
+// of p. 
+// Also note the use of 0L, this would allow future possible 64bit support 
+// (as yet untested) by ensuring that we zero all the bits in a pointer 
+// (which is always the same length as a long (at least with the LP64 standard) 
+// --- offer aug 98
+#define wxDELETE(p)      if ( (p) ) { delete (p); p = 0L; }
+#else
+#define wxDELETE(p)      if ( (p) != NULL ) { delete p; p = NULL; }
+#endif /* __SGI__CC__ */
 
 // delete an array and NULL it (see comments above)
-#define wxDELETEA(p)      if ( (p) != NULL ) { delete [] (p); p = NULL; }
+#if defined(__SGI_CC__)
+// see above comment.
+#define wxDELETEA(p)      if ( (p) ) { delete [] (p); p = 0L; }
+#else
+#define wxDELETEA(p)      if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; }
+#endif /* __SGI__CC__ */
 
 /// size of statically declared array
 #define WXSIZEOF(array)   (sizeof(array)/sizeof(array[0]))
 
+// Use of these suppresses some compiler warnings
+WXDLLEXPORT_DATA(extern const bool) wxTrue;
+WXDLLEXPORT_DATA(extern const bool) wxFalse;
+
 // ----------------------------------------------------------------------------
 // compiler and OS identification
 // ----------------------------------------------------------------------------
 
 // OS
-#if     defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__)
+#if     defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi )
   #ifndef __UNIX__
     #define __UNIX__
   #endif
@@ -663,7 +690,7 @@ enum wxDataFormat
 
 // Virtual keycodes
 
-enum _Virtual_keycodes {
+enum wxKeyCode {
  WXK_BACK    =   8,
  WXK_TAB     =   9,
  WXK_RETURN  = 13,
@@ -797,6 +824,7 @@ enum {
 #define wxID_PASTE              5032
 #define wxID_CLEAR              5033
 #define wxID_FIND               5034
+#define wxID_DUPLICATE          5035
 
 #define wxID_FILE1              5050
 #define wxID_FILE2              5051
@@ -844,6 +872,7 @@ typedef unsigned long   WXCOLORREF;
 typedef void *          WXRGNDATA;
 typedef void *          WXMSG;
 typedef unsigned long   WXHCONV;
+typedef unsigned long   WXHKEY;
 typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
@@ -855,5 +884,16 @@ typedef int (__stdcall *WXFARPROC)();
 
 #endif
 
+#ifdef __WXMOTIF__
+// Stand-ins for X/Xt/Motif types
+typedef void*           WXWindow;
+typedef void*           WXWidget;
+typedef void*           WXAppContext;
+typedef void*           WXColormap;
+typedef void            WXDisplay;
+typedef void            WXEvent;
+typedef void*           WXCursor;
+#endif
+
 #endif
     // _WX_DEFS_H_