X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c861501a451503b31c075ccb59d16b0ae01e99..f321ab7fb40525098cea6594ffbf2daf0186b1a3:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index fae61c24ed..6bf190c292 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -1,13 +1,13 @@ -/** -* Name: wx/defs.h -* Purpose: Declarations/definitions common to all wx source files -* Author: Julian Smart and others -* Modified by: Ryan Norton (Converted to C) -* Created: 01/02/97 -* RCS-ID: $Id$ -* Copyright: (c) Julian Smart -* Licence: wxWindows licence -*/ +/* + * Name: wx/defs.h + * Purpose: Declarations/definitions common to all wx source files + * Author: Julian Smart and others + * Modified by: Ryan Norton (Converted to C) + * Created: 01/02/97 + * RCS-ID: $Id$ + * Copyright: (c) Julian Smart + * Licence: wxWindows licence + */ /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ @@ -375,7 +375,7 @@ typedef int wxWindowID; /* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */ #define HAVE_STD_WSTRING #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \ - && wxCHECK_GCC_VERSION(3, 1) + && wxCHECK_GCC_VERSION(3, 3) /* GCC 3.1 has std::wstring; 3.0 never was in MinGW, 2.95 hasn't it */ #define HAVE_STD_WSTRING #endif @@ -546,28 +546,6 @@ typedef int wxWindowID; /* size of statically declared array */ #define WXSIZEOF(array) (sizeof(array)/sizeof(array[0])) -/* helper macros to concatenate two tokens together */ -#define wxCONCAT_HELPER(text, line) text ## line -#define wxCONCAT(text, line) wxCONCAT_HELPER(text, line) - -/* helper macros to be able to define unique/anonymous objects: this works by */ -/* appending the current line number to the given identifier to reduce the */ -/* probability of the conflict (it may still happen if this is used in the */ -/* headers, hence you should avoid doing it or provide unique prefixes then) */ -#if defined(__VISUALC__) && (__VISUALC__ >= 1300) - /* - __LINE__ handling is completely broken in VC++ when using "Edit and - Continue" (/ZI option) and results in preprocessor errors if we use it - inside the macros. Luckily VC7 has another standard macro which can be - used like this and is even better than __LINE__ because it is globally - unique. - */ -# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__) -#else /* normal compilers */ -# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__) -#endif -#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text) - /* symbolic constant used by all Find()-like functions returning positive */ /* integer on success as failure indicator */ #define wxNOT_FOUND (-1) @@ -930,18 +908,17 @@ inline void *wxUIntToPtr(wxUIntPtr p) /* we will need to define this */ #undef wxLongLongIsLong -/* first check for generic cases which are long on 64bit machine and "long */ -/* long", then check for specific compilers */ -#if defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) - #define wxLongLong_t long - #define wxLongLongSuffix l - #define wxLongLongFmtSpec _T("l") - #define wxLongLongIsLong -#elif defined(__WXPALMOS__) - #define wxLongLong_t int64_t - #define wxLongLongSuffix ll - #define wxLongLongFmtSpec _T("ll") -#elif (defined(__VISUALC__) && defined(__WIN32__)) +/* + First check for specific compilers which have known 64 bit integer types, + this avoids clashes with SIZEOF_LONG[_LONG] being defined incorrectly for + e.g. MSVC builds (Python.h defines it as 8 even for MSVC). + + Also notice that we check for "long long" before checking for 64 bit long as + we still want to use "long long" and not "long" for wxLongLong_t on 64 bit + architectures to be able to pass wxLongLong_t to the standard functions + prototyped as taking "long long" such as strtoll(). + */ +#if (defined(__VISUALC__) && defined(__WIN32__)) #define wxLongLong_t __int64 #define wxLongLongSuffix i64 #define wxLongLongFmtSpec _T("I64") @@ -961,14 +938,6 @@ inline void *wxUIntToPtr(wxUIntPtr p) #define wxLongLong_t long long #define wxLongLongSuffix ll #define wxLongLongFmtSpec _T("I64") -#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \ - defined(__GNUC__) || \ - defined(__CYGWIN__) || \ - defined(__WXMICROWIN__) || \ - (defined(__DJGPP__) && __DJGPP__ >= 2) - #define wxLongLong_t long long - #define wxLongLongSuffix ll - #define wxLongLongFmtSpec _T("ll") #elif defined(__MWERKS__) #if __option(longlong) #define wxLongLong_t long long @@ -978,8 +947,25 @@ inline void *wxUIntToPtr(wxUIntPtr p) #error "The 64 bit integer support in CodeWarrior has been disabled." #error "See the documentation on the 'longlong' pragma." #endif +#elif defined(__WXPALMOS__) + #define wxLongLong_t int64_t + #define wxLongLongSuffix ll + #define wxLongLongFmtSpec _T("ll") #elif defined(__VISAGECPP__) && __IBMCPP__ >= 400 #define wxLongLong_t long long +#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \ + defined(__GNUC__) || \ + defined(__CYGWIN__) || \ + defined(__WXMICROWIN__) || \ + (defined(__DJGPP__) && __DJGPP__ >= 2) + #define wxLongLong_t long long + #define wxLongLongSuffix ll + #define wxLongLongFmtSpec _T("ll") +#elif defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) + #define wxLongLong_t long + #define wxLongLongSuffix l + #define wxLongLongFmtSpec _T("l") + #define wxLongLongIsLong #endif @@ -991,7 +977,7 @@ inline void *wxUIntToPtr(wxUIntPtr p) #define wxULongLong_t unsigned wxLongLong_t #endif - /* these macros allow to definea 64 bit constants in a portable way */ + /* these macros allow to define 64 bit constants in a portable way */ #define wxLL(x) wxCONCAT(x, wxLongLongSuffix) #define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix)) @@ -1001,7 +987,7 @@ inline void *wxUIntToPtr(wxUIntPtr p) #define wxHAS_INT64 1 #elif wxUSE_LONGLONG - /* these macros allow to definea 64 bit constants in a portable way */ + /* these macros allow to define 64 bit constants in a portable way */ #define wxLL(x) wxLongLong(x) #define wxULL(x) wxULongLong(x) @@ -1567,60 +1553,6 @@ enum wxBorder #define wxSP_ARROW_KEYS 0x1000 #define wxSP_WRAP 0x2000 -/* - * wxBookCtrl flags (common for wxNotebook, wxListbook, wxChoicebook, wxTreebook) - */ - -#define wxBK_DEFAULT 0x0000 -#define wxBK_TOP 0x0010 -#define wxBK_BOTTOM 0x0020 -#define wxBK_LEFT 0x0040 -#define wxBK_RIGHT 0x0080 -#define wxBK_ALIGN_MASK ( wxBK_TOP | wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT ) - -/* - * wxNotebook flags - */ -#if WXWIN_COMPATIBILITY_2_6 -/* Use common book wxBK_* flags for describing alignment */ -#define wxNB_DEFAULT wxBK_DEFAULT -#define wxNB_TOP wxBK_TOP -#define wxNB_BOTTOM wxBK_BOTTOM -#define wxNB_LEFT wxBK_LEFT -#define wxNB_RIGHT wxBK_RIGHT -#endif - -#define wxNB_FIXEDWIDTH 0x0100 -#define wxNB_MULTILINE 0x0200 -#define wxNB_NOPAGETHEME 0x0400 -#define wxNB_FLAT 0x0800 - -/* - * wxListbook flags - */ -#if WXWIN_COMPATIBILITY_2_6 -/* Use common book wxBK_* flags for describing alignment */ -#define wxLB_DEFAULT wxBK_DEFAULT -#define wxLB_TOP wxBK_TOP -#define wxLB_BOTTOM wxBK_BOTTOM -#define wxLB_LEFT wxBK_LEFT -#define wxLB_RIGHT wxBK_RIGHT -#define wxLB_ALIGN_MASK wxBK_ALIGN_MASK -#endif - -/* - * wxChoicebook flags - */ -#if WXWIN_COMPATIBILITY_2_6 -/* Use common book wxBK_* flags for describing alignment */ -#define wxCHB_DEFAULT wxBK_DEFAULT -#define wxCHB_TOP wxBK_TOP -#define wxCHB_BOTTOM wxBK_BOTTOM -#define wxCHB_LEFT wxBK_LEFT -#define wxCHB_RIGHT wxBK_RIGHT -#define wxCHB_ALIGN_MASK wxBK_ALIGN_MASK -#endif - /* * wxTabCtrl flags */ @@ -1630,8 +1562,8 @@ enum wxBorder #define wxTC_LEFT 0x0020 #define wxTC_RIGHT 0x0040 #define wxTC_BOTTOM 0x0080 -#define wxTC_MULTILINE wxNB_MULTILINE -#define wxTC_OWNERDRAW 0x0200 +#define wxTC_MULTILINE 0x0200 /* == wxNB_MULTILINE */ +#define wxTC_OWNERDRAW 0x0400 /* * wxStatusBar95 flags @@ -1656,18 +1588,6 @@ enum wxBorder #define wxLI_HORIZONTAL wxHORIZONTAL #define wxLI_VERTICAL wxVERTICAL -/* - * wxProgressDialog flags - */ -#define wxPD_CAN_ABORT 0x0001 -#define wxPD_APP_MODAL 0x0002 -#define wxPD_AUTO_HIDE 0x0004 -#define wxPD_ELAPSED_TIME 0x0008 -#define wxPD_ESTIMATED_TIME 0x0010 -#define wxPD_SMOOTH 0x0020 -#define wxPD_REMAINING_TIME 0x0040 -#define wxPD_CAN_SKIP 0x0080 - /* * extended dialog specifiers. these values are stored in a different @@ -1759,7 +1679,8 @@ enum wxID_CLOSE_ALL, wxID_PREFERENCES, - wxID_CUT = 5030, + wxID_EDIT = 5030, + wxID_CUT, wxID_COPY, wxID_PASTE, wxID_CLEAR, @@ -1780,7 +1701,8 @@ enum wxID_VIEW_SORTSIZE, wxID_VIEW_SORTTYPE, - wxID_FILE1 = 5050, + wxID_FILE = 5050, + wxID_FILE1, wxID_FILE2, wxID_FILE3, wxID_FILE4, @@ -2736,15 +2658,12 @@ typedef unsigned long HGLOBAL; /* WIN32 graphics types for OS/2 GPI */ /* RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def */ -/* WARNING: The OS/2 headers typedef BYTE simply as 'char'; if the default is signed, all */ -/* hell will break loose! */ -/* #define OS2RGB(r,g,b) ((DWORD ((BYTE) (b) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(r)) << 16))) */ #define OS2RGB(r,g,b) ((DWORD)((unsigned char)(b) | ((unsigned char)(g) << 8)) | ((unsigned char)(r) << 16)) typedef unsigned long COLORREF; -#define GetBValue(rgb) ((BYTE)((rgb) >> 16)) -#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8)) -#define GetRValue(rgb) ((BYTE)(rgb)) +#define GetRValue(rgb) ((unsigned char)((rgb) >> 16)) +#define GetGValue(rgb) ((unsigned char)(((unsigned short)(rgb)) >> 8)) +#define GetBValue(rgb) ((unsigned char)(rgb)) #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i))) #define PALETTERGB(r,g,b) (0x02000000 | OS2RGB(r,g,b)) /* OS2's RGB/RGB2 is backwards from this */ @@ -2799,6 +2718,7 @@ typedef void* WXFontType; /* either a XmFontList or XmRenderTable */ typedef void* WXString; typedef unsigned long Atom; /* this might fail on a few architectures */ +typedef long WXPixel; /* safety catch in src/motif/colour.cpp */ #endif /* Motif */ @@ -2863,16 +2783,6 @@ typedef GtkWidget *WXWidget; #define GTK_CLASS_TYPE(klass) ((klass)->type) #endif -#ifdef __WXGTK20__ -#define G_DISABLE_DEPRECATED -#define PANGO_DISABLE_DEPRECATED -#define GDK_PIXBUF_DISABLE_DEPRECATED -#ifndef __VMS -/* GtkCombo is not defined on VMS if this is defined */ -# define GTK_DISABLE_DEPRECATED -#endif -#endif - #endif /* __WXGTK__ */ #if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE)