]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
Removed redundant m_left etc. variables
[wxWidgets.git] / include / wx / defs.h
index 5a81d4ac0cc45eae5a4df29f050a65e6d444b745..4629929b53ae6f1d273b859c0d3f439aa4c5362b 100644 (file)
@@ -22,8 +22,8 @@
 
 // OS: first test for generic Unix defines, then for particular flavours and
 //     finally for Unix-like systems
-#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
-    defined(__LINUX__) || defined(__sgi) || \
+#if defined(__UNIX__) || defined(__unix) || defined(__unix__) || \
+    defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) || \
     defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
     defined(__EMX__) || defined(__VMS) || defined(__BEOS__)
 
         #endif
     #endif // Sun
 
+    #ifdef __EMX__
+        #define OS2EMX_PLAIN_CHAR
+    #endif
+
 #elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
         // MacOS
 #elif defined(__OS2__)
 #endif // VC++ 1.5
 
 // Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
-// so define it ourselves
+// so define it ourselves (newer versions do it for all files, though, and
+// don't allow it to be redefined)
 #ifdef __DECCXX
-#ifndef __VMS
-define __cplusplus
-#endif
+    #if !defined(__VMS) && !defined(__cplusplus)
+        #define __cplusplus
+    #endif
 #endif // __DECCXX
 
 // Resolves linking problems under HP-UX
     #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__==2) && (__GNUC_MINOR__>=95)))
+// Cygwin / Mingw32 with gcc >= 2.95 use new windows headers which
+// are more ms-like (header author is Anders Norlander, hence the name)
+#if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
     #ifndef wxUSE_NORLANDER_HEADERS
         #define wxUSE_NORLANDER_HEADERS 1
     #endif
     #endif
 #endif
 
-// "old" GNUWIN32 is the one without Norlander's headers: it lacks the standard
-// Win32 headers and we define the used stuff ourselves for it in
-// wx/msw/gnuwin32/extra.h
+// "old" GNUWIN32 is the one without Norlander's headers: it lacks the
+// standard Win32 headers and we define the used stuff ourselves for it
+// in wx/msw/gnuwin32/extra.h
 #if defined(__GNUC__) && !wxUSE_NORLANDER_HEADERS
     #define __GNUWIN32_OLD__
 #endif
@@ -379,25 +383,8 @@ typedef int wxWindowID;
 
 #if defined(__WXMSW__)
 
-// _declspec works in BC++ 5 and later, as well as VC++
-#if defined(__VISUALC__) || defined(__BORLANDC__)
-
-#  ifdef WXMAKINGDLL
-#    define WXDLLEXPORT _declspec( dllexport )
-#    define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type
-#    define WXDLLEXPORT_CTORFN
-#  elif defined(WXUSINGDLL)
-#    define WXDLLEXPORT _declspec( dllimport )
-#    define WXDLLEXPORT_DATA(type) _declspec( dllimport ) type
-#    define WXDLLEXPORT_CTORFN
-#  else
-#    define WXDLLEXPORT
-#    define WXDLLEXPORT_DATA(type) type
-#    define WXDLLEXPORT_CTORFN
-#  endif
-
-#elif defined(__GNUC__)
-
+// __declspec works in BC++ 5 and later, as well as VC++ and gcc
+#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__)
 #  ifdef WXMAKINGDLL
 #    define WXDLLEXPORT __declspec( dllexport )
 #    define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
@@ -411,34 +398,46 @@ typedef int wxWindowID;
 #    define WXDLLEXPORT_DATA(type) type
 #    define WXDLLEXPORT_CTORFN
 #  endif
+#else
+#    define WXDLLEXPORT
+#    define WXDLLEXPORT_DATA(type) type
+#    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
+#  if (!(defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )))
+
+#    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
 #    define WXDLLEXPORT_CTORFN
+
 #  endif
 
-#else
+#else  // !(MSW or OS2)
+
 #  define WXDLLEXPORT
 #  define WXDLLEXPORT_DATA(type) type
 #  define WXDLLEXPORT_CTORFN
+
 #endif
 
-#else // !Windows
-#  define WXDLLEXPORT
-#  define WXDLLEXPORT_DATA(type) type
-#  define WXDLLEXPORT_CTORFN
-#endif // Win/!Win
 
 // For ostream, istream ofstream
 #if defined(__BORLANDC__) && defined( _RTLDLL )
@@ -455,8 +454,12 @@ class WXDLLEXPORT wxEvent;
 #define wxNOT_FOUND       (-1)
 
 // ----------------------------------------------------------------------------
-/** @name Very common macros */
+// Very common macros
 // ----------------------------------------------------------------------------
+
+// everybody gets the assert and other debug macros
+#include "wx/debug.h"
+
 //@{
 /// delete pointer if it is not NULL and NULL it afterwards
 // (checking that it's !NULL before passing it to delete is just a
@@ -488,10 +491,6 @@ class WXDLLEXPORT wxEvent;
 /// 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 specific settings
 // ----------------------------------------------------------------------------
@@ -518,9 +517,13 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 // 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
+#  ifndef __MWERKS__
+// #undef __WXDEBUG__
+#    ifdef wxUSE_DEBUG_NEW_ALWAYS
+#    undef wxUSE_DEBUG_NEW_ALWAYS
+#    define wxUSE_DEBUG_NEW_ALWAYS 0
+#    endif
+#  endif
 #endif
 
 // Callback function type definition
@@ -558,7 +561,8 @@ enum
     wxMGL_X,                  // MGL on X
     wxMGL_WIN32,              // MGL on Win32
     wxMGL_OS2,                // MGL on OS/2
-    wxWINDOWS_OS2             // Native OS/2 PM
+    wxWINDOWS_OS2,            // Native OS/2 PM
+    wxUNIX                    // wxBase under Unix
 };
 
 // ----------------------------------------------------------------------------
@@ -891,16 +895,21 @@ enum wxStretch
 #define wxICONIZE               0x4000
 #define wxMINIMIZE              wxICONIZE
 #define wxMAXIMIZE              0x2000
-#define wxTHICK_FRAME           0x1000
+// free value: 0x1000
 #define wxSYSTEM_MENU           0x0800
 #define wxMINIMIZE_BOX          0x0400
 #define wxMAXIMIZE_BOX          0x0200
 #define wxTINY_CAPTION_HORIZ    0x0100
 #define wxTINY_CAPTION_VERT     0x0080
-#define wxRESIZE_BOX            wxMAXIMIZE_BOX
 #define wxRESIZE_BORDER         0x0040
+
+// deprecated versions defined for compatibility reasons
+#define wxRESIZE_BOX            wxMAXIMIZE_BOX
+#define wxTHICK_FRAME           wxRESIZE_BORDER
+
 #define wxDIALOG_MODAL          0x0020
 #define wxDIALOG_MODELESS       0x0000
+
 // Add for normal Windows frame behaviour
 #define wxFRAME_FLOAT_ON_PARENT 0x0020
 
@@ -916,14 +925,16 @@ enum wxStretch
 #endif
 
 #define wxDEFAULT_FRAME_STYLE \
-  (wxSYSTEM_MENU | wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN)
+  (wxSYSTEM_MENU | wxRESIZE_BORDER | \
+   wxMINIMIZE_BOX | wxMAXIMIZE_BOX | \
+   wxCAPTION | wxCLIP_CHILDREN)
 
 #ifdef __WXMSW__
-#   define wxDEFAULT_DIALOG_STYLE  (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME)
+#   define wxDEFAULT_DIALOG_STYLE  (wxSYSTEM_MENU | wxCAPTION)
 #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|wxTHICK_FRAME)
+//  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
 #endif
 
 /*
@@ -1060,6 +1071,10 @@ enum wxStretch
  */
 #define wxBU_AUTODRAW        0x0004
 #define wxBU_NOAUTODRAW      0x0000
+#define wxBU_LEFT            0x0040
+#define wxBU_TOP             0x0080
+#define wxBU_RIGHT           0x0100
+#define wxBU_BOTTOM          0x0200
 
 /*
  * wxTreeCtrl flags
@@ -1072,6 +1087,7 @@ enum wxStretch
 #define wxTR_MULTIPLE        0x0020
 #define wxTR_EXTENDED        0x0040
 #define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080
+#define wxTR_NO_LINES        0x0100
 
 /*
  * wxListCtrl flags
@@ -1102,21 +1118,28 @@ enum wxStretch
 // #define wxLC_SHOW_SEL_ALWAYS
 
 /*
- * wxSpinButton flags
+ * wxSpinButton flags.
+ * Note that a wxSpinCtrl is sometimes defined as
+ * a wxTextCtrl, and so the flags must be different
+ * from wxTextCtrl's.
  */
 #define wxSP_HORIZONTAL       wxHORIZONTAL // 4
 #define wxSP_VERTICAL         wxVERTICAL   // 8
-#define wxSP_ARROW_KEYS       0x0010
-#define wxSP_WRAP             0x0020
+#define wxSP_ARROW_KEYS       0x1000
+#define wxSP_WRAP             0x2000
 
 /*
  * wxSplitterWindow flags
  */
 #define wxSP_NOBORDER         0x0000
-#define wxSP_3D               0x0010
+#define wxSP_NOSASH           0x0010
 #define wxSP_BORDER           0x0020
 #define wxSP_PERMIT_UNSPLIT   0x0040
 #define wxSP_LIVE_UPDATE      0x0080
+#define wxSP_3DSASH           0x0100
+#define wxSP_3DBORDER         0x0200
+#define wxSP_FULLSASH         0x0400
+#define wxSP_3D               (wxSP_3DBORDER | wxSP_3DSASH)
 
 /*
  * wxFrame extra flags
@@ -1165,6 +1188,8 @@ enum wxStretch
 #define wxPD_ELAPSED_TIME       0x0008
 #define wxPD_ESTIMATED_TIME     0x0010
 // wxGA_SMOOTH = 0x0020 may also be used with wxProgressDialog
+// NO!!! This is wxDIALOG_MODAL and will cause the progress dialog to
+// be modal. No progress will then be made at all.
 #define wxPD_REMAINING_TIME     0x0040
 
 /*
@@ -1222,11 +1247,6 @@ enum wxStretch
 // id for a separator line in the menu (invalid for normal item)
 #define wxID_SEPARATOR (-1)
 
-// this one is for compatibility only, don't use in new code
-#ifndef ID_SEPARATOR
-    #define ID_SEPARATOR    wxID_SEPARATOR
-#endif
-
 // Standard menu IDs
 #define wxID_LOWEST             4999
 
@@ -1676,27 +1696,27 @@ typedef enum {
 #ifdef __WXMAC__
 
 typedef WindowPtr       WXHWND;
-typedef Handle               WXHANDLE;
-typedef CIconHandle        WXHICON;
+typedef Handle          WXHANDLE;
+typedef CIconHandle     WXHICON;
 //typedef unsigned long   WXHFONT;
-typedef MenuHandle       WXHMENU;
+typedef MenuHandle      WXHMENU;
 //typedef unsigned long   WXHPEN;
 //typedef unsigned long   WXHBRUSH;
 //typedef unsigned long   WXHPALETTE;
-typedef CursHandle       WXHCURSOR;
+typedef CursHandle      WXHCURSOR;
 typedef RgnHandle       WXHRGN;
 //typedef unsigned long   WXHACCEL;
 //typedef unsigned long   WXHINSTANCE;
-typedef GWorldPtr   WXHBITMAP;
+typedef GWorldPtr       WXHBITMAP;
 //typedef unsigned long   WXHIMAGELIST;
 //typedef unsigned long   WXHGLOBAL;
-typedef GrafPtr           WXHDC;
+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 RGBColor        WXCOLORREF;
 //typedef void *          WXRGNDATA;
 //typedef void *          WXMSG;
 //typedef unsigned long   WXHCONV;
@@ -1706,12 +1726,26 @@ typedef RGBColor           WXCOLORREF;
 //typedef void *          WXLPCREATESTRUCT;
 typedef int (*WXFARPROC)();
 
-typedef WindowPtr           WXWindow;
-typedef ControlHandle       WXWidget;
+typedef WindowPtr       WXWindow;
+typedef ControlHandle   WXWidget;
 
 #endif
 
 #if defined(__WXMSW__) || defined(__WXPM__)
+
+// the keywords needed for WinMain() declaration
+#ifdef __WIN16__
+#  ifdef __VISUALC__
+#    define WXFAR __far
+#  else
+#    define WXFAR _far
+#  endif
+#else  // Win32
+#  ifndef WXFAR
+#    define WXFAR
+#  endif
+#endif // Win16/32
+
 // 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;
@@ -1724,7 +1758,7 @@ typedef unsigned long   WXHPALETTE;
 typedef unsigned long   WXHCURSOR;
 typedef unsigned long   WXHRGN;
 typedef unsigned long   WXHACCEL;
-typedef unsigned long   WXHINSTANCE;
+typedef void WXFAR  *   WXHINSTANCE;
 typedef unsigned long   WXHBITMAP;
 typedef unsigned long   WXHIMAGELIST;
 typedef unsigned long   WXHGLOBAL;
@@ -1812,29 +1846,15 @@ typedef struct tagLOGPALETTE
 typedef WXHWND WXWidget;
 
 #if defined(__BORLANDC__) && !defined(__WIN32__)
-#ifndef LPTSTR
-#define LPTSTR LPSTR
-#endif
-#ifndef LPCTSTR
-#define LPCTSTR LPSTR
-#endif
+#  ifndef LPTSTR
+#    define LPTSTR LPSTR
+#  endif
+#  ifndef LPCTSTR
+#    define LPCTSTR LPSTR
+#  endif
 #endif
 
-// the keywords needed for WinMain() declaration
-
-#ifdef __WIN16__
-        #ifdef __VISUALC__
-            #define WXFAR __far
-        #else // !VC++
-            #define WXFAR _far
-        #endif
-#else // Win32
-    #ifndef WXFAR
-        #define WXFAR
-    #endif
-#endif // Win16/32
-
-#endif // MSW
+#endif // MSW or OS2
 
 #ifdef __WXMOTIF__
 /* Stand-ins for X/Xt/Motif types */
@@ -1860,6 +1880,8 @@ typedef unsigned long   Atom;  /* this might fail on a few architectures */
 
 #ifdef __WXGTK__
 /* Stand-ins for GLIB types */
+typedef char           gchar;
+typedef signed char    gint8;
 typedef int            gint;
 typedef unsigned       guint;
 typedef unsigned long  gulong;
@@ -1872,7 +1894,7 @@ typedef struct _GdkColor        GdkColor;
 typedef struct _GdkColormap     GdkColormap;
 typedef struct _GdkFont         GdkFont;
 typedef struct _GdkGC           GdkGC;
-#ifdef __WXGTK13__
+#ifdef __WXGTK20__
     typedef struct _GdkDrawable     GdkWindow;
     typedef struct _GdkDrawable     GdkBitmap;
     typedef struct _GdkDrawable     GdkPixmap;
@@ -1903,6 +1925,18 @@ typedef struct _GtkItemFactory    GtkItemFactory;
 typedef struct _GtkSelectionData  GtkSelectionData;
 
 typedef GtkWidget *WXWidget;
+
+#ifndef __WXGTK20__
+#define GTK_OBJECT_GET_CLASS(object) (GTK_OBJECT(object)->klass)
+#define GTK_CLASS_TYPE(klass) ((klass)->type)
+#endif
+
+#ifdef __WXGTK20__
+/* Stand-ins for Pango types */
+typedef struct _PangoContext         PangoContext;
+typedef struct _PangoLayout          PangoLayout;
+typedef struct _PangoFontDescription PangoFontDescription;
+#endif
 #endif // GTK
 
 // This is required because of clashing macros in windows.h, which may be