X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/954ec2763ae31bdf572ce77bc3054253298f46bf..9ead8387d02667092186a7dd2671bacbd010406a:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index d70efa4cb8..22437ecab7 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -1,11 +1,11 @@ /** -* Name: defs.h +* 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) +* Copyright: (c) Julian Smart * Licence: wxWindows licence */ @@ -20,14 +20,15 @@ #include "wx/platform.h" -/* RN - only double-check the environment when building in C++ - Shouldn't configure pass the environment to all sub-libs too? */ #ifdef __cplusplus /* Make sure the environment is set correctly */ # if defined(__WXMSW__) && defined(__X__) # error "Target can't be both X and Windows" +# elif defined(__WXMSW__) && defined(__PALMOS__) +# error "Target can't be both PalmOS and Windows" # elif !defined(__WXMOTIF__) && \ !defined(__WXMSW__) && \ + !defined(__WXPALMOS__)&& \ !defined(__WXGTK__) && \ !defined(__WXPM__) && \ !defined(__WXMAC__) && \ @@ -169,6 +170,7 @@ #endif /* compilers */ #endif /* HAVE_BOOL */ +#if !defined(__MWERKS__) || !defined(true) #if !defined(HAVE_BOOL) && !defined(bool) && !defined(VMS) /* NB: of course, this doesn't replace the standard type, because, for */ /* example, overloading based on bool/int parameter doesn't work and */ @@ -184,6 +186,7 @@ #define true ((bool)1) #define false ((bool)0) #endif +#endif /* for backwards compatibility, also define TRUE and FALSE */ /* */ @@ -266,6 +269,9 @@ typedef int wxWindowID; #ifndef HAVE_STATIC_CAST #define HAVE_STATIC_CAST #endif + #ifndef HAVE_DYNAMIC_CAST + #define HAVE_DYNAMIC_CAST + #endif #endif /* HAVE_CXX_CASTS */ #ifdef HAVE_STATIC_CAST @@ -286,6 +292,29 @@ typedef int wxWindowID; #define wx_reinterpret_cast(t, x) ((t)(x)) #endif +/* + This one is a wx invention: like static cast but used when we intentionally + truncate from a larger to smaller type, static_cast<> can't be used for it + as it results in warnings when using some compilers (SGI mipspro for example) + */ +#if defined(__INTELC__) && defined(__cplusplus) + template + inline T wx_truncate_cast_impl(X x) + { + #pragma warning(push) + /* explicit conversion of a 64-bit integral type to a smaller integral type */ + #pragma warning(disable: 1683) + + return (T)x; + + #pragma warning(pop) + } + + #define wx_truncate_cast(t, x) wx_truncate_cast_impl(x) +#else /* !__INTELC__ */ + #define wx_truncate_cast(t, x) ((t)(x)) +#endif /* __INTELC__/!__INTELC__ */ + /* for consistency with wxStatic/DynamicCast defined in wx/object.h */ #define wxConstCast(obj, className) wx_const_cast(className *, obj) @@ -354,7 +383,7 @@ typedef int wxWindowID; #define wxVaCopy(d, s) ((d) = (s)) #endif #endif /* va_copy/!va_copy */ -#endif // wxVaCopy +#endif /* wxVaCopy */ /* ---------------------------------------------------------------------------- */ @@ -509,6 +538,20 @@ typedef int wxWindowID; #define WXUNUSED_UNLESS_DEBUG(param) WXUNUSED(param) #endif +/* some arguments are not used in unicode mode */ +#if wxUSE_UNICODE + #define WXUNUSED_IN_UNICODE(param) WXUNUSED(param) +#else + #define WXUNUSED_IN_UNICODE(param) param +#endif + +/* some arguments are not used in WinCE build */ +#ifdef __WXWINCE__ + #define WXUNUSED_IN_WINCE(param) WXUNUSED(param) +#else + #define WXUNUSED_IN_WINCE(param) param +#endif + /* some compilers give warning about a possibly unused variable if it is */ /* initialized in both branches of if/else and shut up if it is initialized */ /* when declared, but other compilers then give warnings about unused variable */ @@ -553,7 +596,7 @@ typedef int wxWindowID; #define except(x) catch(...) #endif /* Metrowerks */ -#if defined(__WATCOMC__) +#if defined(__WATCOMC__) && (__WATCOMC__ < 1240) typedef short mode_t; #endif @@ -598,7 +641,9 @@ enum wxWIN32S, /* Windows 32S API */ wxWIN95, /* Windows 95 */ wxWIN386, /* Watcom 32-bit supervisor modus */ - wxWINDOWS_CE, /* Windows CE */ + wxWINDOWS_CE, /* Windows CE (generic) */ + wxWINDOWS_POCKETPC, /* Windows CE PocketPC */ + wxWINDOWS_SMARTPHONE, /* Windows CE Smartphone */ wxMGL_UNIX, /* MGL with direct hardware access */ wxMGL_X, /* MGL on X */ wxMGL_WIN32, /* MGL on Win32 */ @@ -606,7 +651,9 @@ enum wxMGL_DOS, /* MGL on MS-DOS */ wxWINDOWS_OS2, /* Native OS/2 PM */ wxUNIX, /* wxBase under Unix */ - wxX11 /* Plain X11 and Universal widgets */ + wxX11, /* Plain X11 and Universal widgets */ + wxPALMOS, /* PalmOS */ + wxDOS /* wxBase under MS-DOS */ }; /* ---------------------------------------------------------------------------- */ @@ -614,14 +661,7 @@ enum /* ---------------------------------------------------------------------------- */ /* the type for screen and DC coordinates */ - -#if wxUSE_COMPATIBLE_COORD_TYPES - /* to ensure compatibility with 2.0, we must use long */ - #define wxCoord long -#else /* !wxUSE_COMPATIBLE_COORD_TYPES */ - /* other platforms we support have at least 32bit int - quite enough */ - typedef int wxCoord; -#endif /* wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES */ +typedef int wxCoord; enum { wxDefaultCoord = -1 }; @@ -629,6 +669,10 @@ enum { wxDefaultCoord = -1 }; /* define fixed length types */ /* ---------------------------------------------------------------------------- */ +#if defined(__WXPALMOS__) || defined(__MINGW32__) + #include +#endif + /* chars are always one byte (by definition), shorts are always two (in */ /* practice) */ @@ -678,14 +722,25 @@ typedef wxUint16 wxWord; */ /* 32bit */ -#ifdef __WINDOWS__ +#ifdef __PALMOS__ + typedef int wxInt32; + typedef unsigned int wxUint32; + #define SIZEOF_INT 4 + #define SIZEOF_LONG 4 + #define SIZEOF_WCHAR_T 2 + #define SIZEOF_SIZE_T 4 + #define wxSIZE_T_IS_UINT + #define SIZEOF_VOID_P 4 + #define SIZEOF_SIZE_T 4 +#elif defined(__WINDOWS__) /* Win64 uses LLP64 model and so ints and longs have the same size as in */ /* Win32 */ #if defined(__WIN32__) typedef int wxInt32; typedef unsigned int wxUint32; - /* conside that if SIZEOF_INT is defined, all the other ones are too */ + /* Assume that if SIZEOF_INT is defined that all the other ones except + SIZEOF_SIZE_T, are too. See next #if below. */ #ifndef SIZEOF_INT #define SIZEOF_INT 4 #define SIZEOF_LONG 4 @@ -712,6 +767,19 @@ typedef wxUint16 wxWord; #define SIZEOF_VOID_P 4 #endif /* Win64/32 */ #endif /* !defined(SIZEOF_INT) */ + + /* + If Python.h was included first, it defines all of the SIZEOF's above + except for SIZEOF_SIZE_T, so we need to do it here to avoid + triggering the #error in the ssize_t typedefs below... + */ + #ifndef SIZEOF_SIZE_T + #ifdef __WIN64__ + #define SIZEOF_SIZE_T 8 + #else /* Win32 */ + #define SIZEOF_SIZE_T 4 + #endif + #endif #else #error "Unsupported Windows version" #endif @@ -733,7 +801,7 @@ typedef wxUint16 wxWord; typedef long wxInt32; typedef unsigned long wxUint32; - #elif + #else /* wxWidgets is not ready for 128bit systems yet... */ #error "Unknown sizeof(int) value, what are you compiling for?" #endif @@ -792,29 +860,43 @@ inline wxUIntPtr wxPtrToUInt(const void *p) /* VC++ 7.1 gives warnings about casts such as below even when they're explicit with /Wp64 option, suppress them as we really know what we're - doing here + doing here. Same thing with icc with -Wall. */ -#ifdef __VISUALC__ - #pragma warning(disable: 4311) /* pointer truncation from '' to '' */ +#if defined(__VISUALC__) || defined(__INTELC__) + #pragma warning(push) + #ifdef __VISUALC__ + /* pointer truncation from '' to '' */ + #pragma warning(disable: 4311) + #elif defined(__INTELC__) + /* conversion from pointer to same-sized integral type */ + #pragma warning(disable: 1684) + #endif #endif return wx_reinterpret_cast(wxUIntPtr, p); -#ifdef __VISUALC__ - #pragma warning(default: 4311) +#if defined(__VISUALC__) || defined(__INTELC__) + #pragma warning(pop) #endif } inline void *wxUIntToPtr(wxUIntPtr p) { -#ifdef __VISUALC__ - #pragma warning(disable: 4312) /* conversion to type of greater size */ +#if defined(__VISUALC__) || defined(__INTELC__) + #pragma warning(push) + #ifdef __VISUALC__ + /* conversion to type of greater size */ + #pragma warning(disable: 4312) + #elif defined(__INTELC__) + /* invalid type conversion: "wxUIntPtr={unsigned long}" to "void *" */ + #pragma warning(disable: 171) + #endif #endif return wx_reinterpret_cast(void *, p); -#ifdef __VISUALC__ - #pragma warning(default: 4312) +#if defined(__VISUALC__) || defined(__INTELC__) + #pragma warning(pop) #endif } #endif /*__cplusplus*/ @@ -822,10 +904,11 @@ inline void *wxUIntToPtr(wxUIntPtr p) /* 64 bit */ -/* NB: we #define and not typedef wxLongLong_t because we want to be able to */ -/* use 'unsigned wxLongLong_t' as well and because we use "#ifdef */ +/* NB: we #define and not typedef wxLongLong_t because we use "#ifdef */ /* wxLongLong_t" in wx/longlong.h */ +/* wxULongLong_t is set later (usually to unsigned wxLongLong_t) */ + /* to avoid compilation problems on 64bit machines with ambiguous method calls */ /* we will need to define this */ #undef wxLongLongIsLong @@ -837,6 +920,10 @@ inline void *wxUIntToPtr(wxUIntPtr p) #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__)) #define wxLongLong_t __int64 #define wxLongLongSuffix i64 @@ -844,17 +931,20 @@ inline void *wxUIntToPtr(wxUIntPtr p) #elif defined(__BORLANDC__) && defined(__WIN32__) && (__BORLANDC__ >= 0x520) #define wxLongLong_t __int64 #define wxLongLongSuffix i64 - #define wxLongLongFmtSpec _T("Ld") -#elif (defined(__WATCOMC__) && (defined(__WIN32__) || defined(__DOS__))) + #define wxLongLongFmtSpec _T("L") +#elif (defined(__WATCOMC__) && (defined(__WIN32__) || defined(__DOS__) || defined(__OS2__))) #define wxLongLong_t __int64 #define wxLongLongSuffix i64 - #define wxLongLongFmtSpec _T("Ld") + #define wxLongLongFmtSpec _T("L") #elif defined(__DIGITALMARS__) #define wxLongLong_t __int64 #define wxLongLongSuffix LL #define wxLongLongFmtSpec _T("ll") +#elif defined(__MINGW32__) + #define wxLongLong_t long long + #define wxLongLongSuffix ll + #define wxLongLongFmtSpec _T("I64") #elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \ - defined(__MINGW32__) || \ defined(__GNUC__) || \ defined(__CYGWIN__) || \ defined(__WXMICROWIN__) || \ @@ -877,28 +967,40 @@ inline void *wxUIntToPtr(wxUIntPtr p) #ifdef wxLongLong_t + + #ifdef __WXPALMOS__ + #define wxULongLong_t uint64_t + #else + #define wxULongLong_t unsigned wxLongLong_t + #endif + /* these macros allow to definea 64 bit constants in a portable way */ #define wxLL(x) wxCONCAT(x, wxLongLongSuffix) #define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix)) typedef wxLongLong_t wxInt64; - typedef unsigned wxLongLong_t wxUint64; + typedef wxULongLong_t wxUint64; #endif /* Make sure ssize_t is defined (a signed type the same size as size_t) */ /* HAVE_SSIZE_T should be defined for compiliers that already have it */ #ifdef __MINGW32__ - #include #if defined(_SSIZE_T_) && !defined(HAVE_SSIZE_T) #define HAVE_SSIZE_T #endif #endif +#if defined(__PALMOS__) && !defined(HAVE_SSIZE_T) + #define HAVE_SSIZE_T +#endif +#if defined(__WATCOMC__) && __WATCOMC__ > 1230 + #define HAVE_SSIZE_T +#endif #ifndef HAVE_SSIZE_T #if SIZEOF_SIZE_T == 4 typedef wxInt32 ssize_t; #elif SIZEOF_SIZE_T == 8 - typedef wxInt64 ssize_t + typedef wxInt64 ssize_t; #else #error "error defining ssize_t, size_t is not 4 or 8 bytes" #endif @@ -1105,10 +1207,11 @@ enum wxGeometryCentre enum wxOrientation { + /* don't change the values of these elements, they are used elsewhere */ wxHORIZONTAL = 0x0004, wxVERTICAL = 0x0008, - wxBOTH = (wxVERTICAL | wxHORIZONTAL) + wxBOTH = wxVERTICAL | wxHORIZONTAL }; enum wxDirection @@ -1184,6 +1287,13 @@ enum wxBorder wxBORDER_MASK = 0x1f200000 }; +/* This makes it easier to specify a 'normal' border for a control */ +#if defined(__SMARTPHONE__) || defined(__POCKETPC__) +#define wxDEFAULT_CONTROL_BORDER wxBORDER_SIMPLE +#else +#define wxDEFAULT_CONTROL_BORDER wxBORDER_SUNKEN +#endif + /* ---------------------------------------------------------------------------- */ /* Window style flags */ /* ---------------------------------------------------------------------------- */ @@ -1308,6 +1418,10 @@ enum wxBorder #define wxFRAME_EX_CONTEXTHELP 0x00000004 #define wxDIALOG_EX_CONTEXTHELP 0x00000004 +/* Draw the window in a metal theme on Mac */ +#define wxFRAME_EX_METAL 0x00000040 +#define wxDIALOG_EX_METAL 0x00000040 + /* Create a window which is attachable to another top level window */ #define wxFRAME_DRAWER 0x0020 @@ -1318,20 +1432,6 @@ enum wxBorder #define wxFRAME_NO_WINDOW_MENU 0x0100 -/* - * wxExtDialog style flags - */ -#define wxED_CLIENT_MARGIN 0x0004 -#define wxED_BUTTONS_BOTTOM 0x0000 /* has no effect */ -#define wxED_BUTTONS_RIGHT 0x0002 -#define wxED_STATIC_LINE 0x0001 - -#if defined(__WXMSW__) || defined(__WXMAC__) -# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN) -#else -# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN|wxED_STATIC_LINE) -#endif - /* * wxMenuBar style flags */ @@ -1391,29 +1491,14 @@ enum wxBorder /* Old names for compatibility */ #define wxRA_HORIZONTAL wxHORIZONTAL #define wxRA_VERTICAL wxVERTICAL +#define wxRA_USE_CHECKBOX 0x0010 /* alternative native subcontrols (wxPalmOS) */ /* * wxRadioButton style flag */ #define wxRB_GROUP 0x0004 #define wxRB_SINGLE 0x0008 - -/* - * wxSlider flags - */ -#define wxSL_HORIZONTAL wxHORIZONTAL /* 4 */ -#define wxSL_VERTICAL wxVERTICAL /* 8 */ -/* The next one is obsolete - use scroll events instead */ -#define wxSL_NOTIFY_DRAG 0x0000 -#define wxSL_TICKS 0x0010 -#define wxSL_AUTOTICKS wxSL_TICKS /* we don't support manual ticks */ -#define wxSL_LABELS 0x0020 -#define wxSL_LEFT 0x0040 -#define wxSL_TOP 0x0080 -#define wxSL_RIGHT 0x0100 -#define wxSL_BOTTOM 0x0200 -#define wxSL_BOTH 0x0400 -#define wxSL_SELRANGE 0x0800 +#define wxRB_USE_CHECKBOX 0x0010 /* alternative native control (wxPalmOS) */ /* * wxScrollBar flags @@ -1441,6 +1526,8 @@ enum wxBorder #define wxNB_RIGHT 0x0040 #define wxNB_BOTTOM 0x0080 #define wxNB_MULTILINE 0x0100 +#define wxNB_NOPAGETHEME 0x0200 +#define wxNB_FLAT 0x0400 #define wxNB_DEFAULT wxNB_TOP /* @@ -1504,10 +1591,9 @@ enum wxBorder #define wxPD_AUTO_HIDE 0x0004 #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_SMOOTH 0x0020 #define wxPD_REMAINING_TIME 0x0040 +#define wxPD_CAN_SKIP 0x0080 /* * wxDirDialog styles @@ -1564,22 +1650,21 @@ enum wxBackgroundStyle /* standard IDs */ /* ---------------------------------------------------------------------------- */ -/* any id: means that we don't care about the id, whether when installing an */ -/* event handler or when creating a new window */ +/* Standard menu IDs */ enum { - wxID_ANY = -1 -}; + /* no id matches this one when compared to it */ + wxID_NONE = -3, -/* id for a separator line in the menu (invalid for normal item) */ -enum -{ - wxID_SEPARATOR = -2 -}; + /* id for a separator line in the menu (invalid for normal item) */ + wxID_SEPARATOR = -2, -/* Standard menu IDs */ -enum -{ + /* any id: means that we don't care about the id, whether when installing + * an event handler or when creating a new window */ + wxID_ANY = -1, + + + /* all predefined ids are between wxID_LOWEST and wxID_HIGHEST */ wxID_LOWEST = 4999, wxID_OPEN, @@ -1751,6 +1836,8 @@ enum wxHitTest #define wxSIZE_ALLOW_MINUS_ONE 0x0004 /* Don't do parent client adjustments (for implementation only) */ #define wxSIZE_NO_ADJUSTMENTS 0x0008 +/* Change the window position even if it seems to be already correct */ +#define wxSIZE_FORCE 0x0010 /* ---------------------------------------------------------------------------- */ /* GDI descriptions */ @@ -1794,12 +1881,15 @@ enum wxSTIPPLE_MASK, /* mask is used for masking areas in the stipple bitmap (TO DO) */ /* drawn with a Pen, and without any Brush -- and it can be stippled. */ wxSTIPPLE = 110, - wxBDIAGONAL_HATCH, - wxCROSSDIAG_HATCH, - wxFDIAGONAL_HATCH, - wxCROSS_HATCH, + + wxBDIAGONAL_HATCH, /* In wxWidgets < 2.6 use WX_HATCH macro */ + wxCROSSDIAG_HATCH, /* to verify these wx*_HATCH are in style */ + wxFDIAGONAL_HATCH, /* of wxBrush. In wxWidgets >= 2.6 use */ + wxCROSS_HATCH, /* wxBrush::IsHatch() instead. */ wxHORIZONTAL_HATCH, wxVERTICAL_HATCH, + wxFIRST_HATCH = wxBDIAGONAL_HATCH, + wxLAST_HATCH = wxVERTICAL_HATCH, wxJOIN_BEVEL = 120, wxJOIN_MITER, @@ -1810,28 +1900,31 @@ enum wxCAP_BUTT }; -/* VZ: why doesn't it start with "wx"? FIXME */ -#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) +#if WXWIN_COMPATIBILITY_2_4 + #define IS_HATCH(s) ((s)>=wxFIRST_HATCH && (s)<=wxLAST_HATCH) +#else + /* use wxBrush::IsHatch() instead thought wxMotif still uses it in src/motif/dcclient.cpp */ +#endif /* Logical ops */ typedef enum { - wxCLEAR, wxROP_BLACK = wxCLEAR, wxBLIT_BLACKNESS = wxCLEAR, /* 0 */ - wxXOR, wxROP_XORPEN = wxXOR, wxBLIT_SRCINVERT = wxXOR, /* src XOR dst */ - wxINVERT, wxROP_NOT = wxINVERT, wxBLIT_DSTINVERT = wxINVERT, /* NOT dst */ - wxOR_REVERSE, wxROP_MERGEPENNOT = wxOR_REVERSE, wxBLIT_00DD0228 = wxOR_REVERSE, /* src OR (NOT dst) */ - wxAND_REVERSE, wxROP_MASKPENNOT = wxAND_REVERSE, wxBLIT_SRCERASE = wxAND_REVERSE, /* src AND (NOT dst) */ - wxCOPY, wxROP_COPYPEN = wxCOPY, wxBLIT_SRCCOPY = wxCOPY, /* src */ - wxAND, wxROP_MASKPEN = wxAND, wxBLIT_SRCAND = wxAND, /* src AND dst */ - wxAND_INVERT, wxROP_MASKNOTPEN = wxAND_INVERT, wxBLIT_00220326 = wxAND_INVERT, /* (NOT src) AND dst */ - wxNO_OP, wxROP_NOP = wxNO_OP, wxBLIT_00AA0029 = wxNO_OP, /* dst */ - wxNOR, wxROP_NOTMERGEPEN = wxNOR, wxBLIT_NOTSRCERASE = wxNOR, /* (NOT src) AND (NOT dst) */ - wxEQUIV, wxROP_NOTXORPEN = wxEQUIV, wxBLIT_00990066 = wxEQUIV, /* (NOT src) XOR dst */ - wxSRC_INVERT, wxROP_NOTCOPYPEN = wxSRC_INVERT, wxBLIT_NOTSCRCOPY = wxSRC_INVERT, /* (NOT src) */ - wxOR_INVERT, wxROP_MERGENOTPEN = wxOR_INVERT, wxBLIT_MERGEPAINT = wxOR_INVERT, /* (NOT src) OR dst */ - wxNAND, wxROP_NOTMASKPEN = wxNAND, wxBLIT_007700E6 = wxNAND, /* (NOT src) OR (NOT dst) */ - wxOR, wxROP_MERGEPEN = wxOR, wxBLIT_SRCPAINT = wxOR, /* src OR dst */ - wxSET, wxROP_WHITE = wxSET, wxBLIT_WHITENESS = wxSET /* 1 */ + wxCLEAR, wxROP_BLACK = wxCLEAR, wxBLIT_BLACKNESS = wxCLEAR, /* 0 */ + wxXOR, wxROP_XORPEN = wxXOR, wxBLIT_SRCINVERT = wxXOR, /* src XOR dst */ + wxINVERT, wxROP_NOT = wxINVERT, wxBLIT_DSTINVERT = wxINVERT, /* NOT dst */ + wxOR_REVERSE, wxROP_MERGEPENNOT = wxOR_REVERSE, wxBLIT_00DD0228 = wxOR_REVERSE, /* src OR (NOT dst) */ + wxAND_REVERSE, wxROP_MASKPENNOT = wxAND_REVERSE, wxBLIT_SRCERASE = wxAND_REVERSE, /* src AND (NOT dst) */ + wxCOPY, wxROP_COPYPEN = wxCOPY, wxBLIT_SRCCOPY = wxCOPY, /* src */ + wxAND, wxROP_MASKPEN = wxAND, wxBLIT_SRCAND = wxAND, /* src AND dst */ + wxAND_INVERT, wxROP_MASKNOTPEN = wxAND_INVERT, wxBLIT_00220326 = wxAND_INVERT, /* (NOT src) AND dst */ + wxNO_OP, wxROP_NOP = wxNO_OP, wxBLIT_00AA0029 = wxNO_OP, /* dst */ + wxNOR, wxROP_NOTMERGEPEN = wxNOR, wxBLIT_NOTSRCERASE = wxNOR, /* (NOT src) AND (NOT dst) */ + wxEQUIV, wxROP_NOTXORPEN = wxEQUIV, wxBLIT_00990066 = wxEQUIV, /* (NOT src) XOR dst */ + wxSRC_INVERT, wxROP_NOTCOPYPEN = wxSRC_INVERT, wxBLIT_NOTSCRCOPY = wxSRC_INVERT, /* (NOT src) */ + wxOR_INVERT, wxROP_MERGENOTPEN = wxOR_INVERT, wxBLIT_MERGEPAINT = wxOR_INVERT, /* (NOT src) OR dst */ + wxNAND, wxROP_NOTMASKPEN = wxNAND, wxBLIT_007700E6 = wxNAND, /* (NOT src) OR (NOT dst) */ + wxOR, wxROP_MERGEPEN = wxOR, wxBLIT_SRCPAINT = wxOR, /* src OR dst */ + wxSET, wxROP_WHITE = wxSET, wxBLIT_WHITENESS = wxSET /* 1 */ } form_ops_t; /* Flood styles */ @@ -1857,7 +1950,7 @@ enum wxTOOL_RIGHT }; -/* the values of the format constants should be the same as correspondign */ +/* the values of the format constants should be the same as corresponding */ /* CF_XXX constants in Windows API */ enum wxDataFormatId { @@ -1893,10 +1986,10 @@ enum wxKeyCode WXK_SPACE = 32, WXK_DELETE = 127, - /* These are, by design, not compatable with unicode characters. + /* These are, by design, not compatible with unicode characters. If you want to get a unicode character from a key event, use wxKeyEvent::GetUnicodeKey instead. */ - WXK_START = 300, + WXK_START = 300, WXK_LBUTTON, WXK_RBUTTON, WXK_CANCEL, @@ -1998,7 +2091,29 @@ enum wxKeyCode WXK_WINDOWS_LEFT, WXK_WINDOWS_RIGHT, WXK_WINDOWS_MENU , - WXK_COMMAND + WXK_COMMAND, + + /* Hardware-specific buttons */ + WXK_SPECIAL1 = 193, + WXK_SPECIAL2, + WXK_SPECIAL3, + WXK_SPECIAL4, + WXK_SPECIAL5, + WXK_SPECIAL6, + WXK_SPECIAL7, + WXK_SPECIAL8, + WXK_SPECIAL9, + WXK_SPECIAL10, + WXK_SPECIAL11, + WXK_SPECIAL12, + WXK_SPECIAL13, + WXK_SPECIAL14, + WXK_SPECIAL15, + WXK_SPECIAL16, + WXK_SPECIAL17, + WXK_SPECIAL18, + WXK_SPECIAL19, + WXK_SPECIAL20 }; #if wxUSE_HOTKEY @@ -2100,8 +2215,58 @@ typedef enum wxPAPER_B5_EXTRA, /* B5 (ISO) Extra 201 x 276 mm */ wxPAPER_A2, /* A2 420 x 594 mm */ wxPAPER_A3_TRANSVERSE, /* A3 Transverse 297 x 420 mm */ - wxPAPER_A3_EXTRA_TRANSVERSE /* A3 Extra Transverse 322 x 445 mm */ - + wxPAPER_A3_EXTRA_TRANSVERSE, /* A3 Extra Transverse 322 x 445 mm */ + + wxPAPER_DBL_JAPANESE_POSTCARD,/* Japanese Double Postcard 200 x 148 mm */ + wxPAPER_A6, /* A6 105 x 148 mm */ + wxPAPER_JENV_KAKU2, /* Japanese Envelope Kaku #2 */ + wxPAPER_JENV_KAKU3, /* Japanese Envelope Kaku #3 */ + wxPAPER_JENV_CHOU3, /* Japanese Envelope Chou #3 */ + wxPAPER_JENV_CHOU4, /* Japanese Envelope Chou #4 */ + wxPAPER_LETTER_ROTATED, /* Letter Rotated 11 x 8 1/2 in */ + wxPAPER_A3_ROTATED, /* A3 Rotated 420 x 297 mm */ + wxPAPER_A4_ROTATED, /* A4 Rotated 297 x 210 mm */ + wxPAPER_A5_ROTATED, /* A5 Rotated 210 x 148 mm */ + wxPAPER_B4_JIS_ROTATED, /* B4 (JIS) Rotated 364 x 257 mm */ + wxPAPER_B5_JIS_ROTATED, /* B5 (JIS) Rotated 257 x 182 mm */ + wxPAPER_JAPANESE_POSTCARD_ROTATED,/* Japanese Postcard Rotated 148 x 100 mm */ + wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED,/* Double Japanese Postcard Rotated 148 x 200 mm */ + wxPAPER_A6_ROTATED, /* A6 Rotated 148 x 105 mm */ + wxPAPER_JENV_KAKU2_ROTATED, /* Japanese Envelope Kaku #2 Rotated */ + wxPAPER_JENV_KAKU3_ROTATED, /* Japanese Envelope Kaku #3 Rotated */ + wxPAPER_JENV_CHOU3_ROTATED, /* Japanese Envelope Chou #3 Rotated */ + wxPAPER_JENV_CHOU4_ROTATED, /* Japanese Envelope Chou #4 Rotated */ + wxPAPER_B6_JIS, /* B6 (JIS) 128 x 182 mm */ + wxPAPER_B6_JIS_ROTATED, /* B6 (JIS) Rotated 182 x 128 mm */ + wxPAPER_12X11, /* 12 x 11 in */ + wxPAPER_JENV_YOU4, /* Japanese Envelope You #4 */ + wxPAPER_JENV_YOU4_ROTATED, /* Japanese Envelope You #4 Rotated */ + wxPAPER_P16K, /* PRC 16K 146 x 215 mm */ + wxPAPER_P32K, /* PRC 32K 97 x 151 mm */ + wxPAPER_P32KBIG, /* PRC 32K(Big) 97 x 151 mm */ + wxPAPER_PENV_1, /* PRC Envelope #1 102 x 165 mm */ + wxPAPER_PENV_2, /* PRC Envelope #2 102 x 176 mm */ + wxPAPER_PENV_3, /* PRC Envelope #3 125 x 176 mm */ + wxPAPER_PENV_4, /* PRC Envelope #4 110 x 208 mm */ + wxPAPER_PENV_5, /* PRC Envelope #5 110 x 220 mm */ + wxPAPER_PENV_6, /* PRC Envelope #6 120 x 230 mm */ + wxPAPER_PENV_7, /* PRC Envelope #7 160 x 230 mm */ + wxPAPER_PENV_8, /* PRC Envelope #8 120 x 309 mm */ + wxPAPER_PENV_9, /* PRC Envelope #9 229 x 324 mm */ + wxPAPER_PENV_10, /* PRC Envelope #10 324 x 458 mm */ + wxPAPER_P16K_ROTATED, /* PRC 16K Rotated */ + wxPAPER_P32K_ROTATED, /* PRC 32K Rotated */ + wxPAPER_P32KBIG_ROTATED, /* PRC 32K(Big) Rotated */ + wxPAPER_PENV_1_ROTATED, /* PRC Envelope #1 Rotated 165 x 102 mm */ + wxPAPER_PENV_2_ROTATED, /* PRC Envelope #2 Rotated 176 x 102 mm */ + wxPAPER_PENV_3_ROTATED, /* PRC Envelope #3 Rotated 176 x 125 mm */ + wxPAPER_PENV_4_ROTATED, /* PRC Envelope #4 Rotated 208 x 110 mm */ + wxPAPER_PENV_5_ROTATED, /* PRC Envelope #5 Rotated 220 x 110 mm */ + wxPAPER_PENV_6_ROTATED, /* PRC Envelope #6 Rotated 230 x 120 mm */ + wxPAPER_PENV_7_ROTATED, /* PRC Envelope #7 Rotated 230 x 160 mm */ + wxPAPER_PENV_8_ROTATED, /* PRC Envelope #8 Rotated 309 x 120 mm */ + wxPAPER_PENV_9_ROTATED, /* PRC Envelope #9 Rotated 324 x 229 mm */ + wxPAPER_PENV_10_ROTATED /* PRC Envelope #10 Rotated 458 x 324 m */ } wxPaperSize; /* Printing orientation */ @@ -2171,6 +2336,20 @@ enum wxUpdateUI # define wxALL_FILES gettext_noop("All files (*)|*") #endif +#if defined(__CYGWIN__) && defined(__WXMSW__) +# if wxUSE_STL || defined(wxUSE_STD_STRING) + /* + NASTY HACK because the gethostname in sys/unistd.h which the gnu + stl includes and wx builds with by default clash with each other + (windows version 2nd param is int, sys/unistd.h version is unsigned + int). + */ +# define gethostname gethostnameHACK +# include +# undef gethostname +# endif +#endif + /* --------------------------------------------------------------------------- */ /* macros that enable wxWidgets apps to be compiled in absence of the */ /* sytem headers, although some platform specific types are used in the */ @@ -2182,9 +2361,8 @@ enum wxUpdateUI #define WX_OPAQUE_TYPE( name ) struct wxOpaque##name typedef unsigned char WXCOLORREF[6]; +typedef void* WXCGIMAGEREF; typedef void* WXHBITMAP; -typedef void* WXHMETAFILE; -typedef void* WXHICON; typedef void* WXHCURSOR; typedef void* WXHRGN; typedef void* WXRECTPTR; @@ -2200,6 +2378,9 @@ typedef unsigned int WXUINT; typedef unsigned long WXDWORD; typedef unsigned short WXWORD; +typedef WX_OPAQUE_TYPE(CIconHandle ) * WXHICON ; +typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ; + /* typedef void* WXWidget; */ /* typedef void* WXWindow; */ @@ -2306,7 +2487,43 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSView); typedef WX_NSView WXWidget; /* wxWidgets BASE definition */ #endif /* __WXCOCOA__ */ -#ifdef __WXMSW__ +#if defined(__WXPALMOS__) + +typedef void * WXHWND; +typedef void * WXHANDLE; +typedef void * WXHICON; +typedef void * WXHFONT; +typedef void * WXHMENU; +typedef void * WXHPEN; +typedef void * WXHBRUSH; +typedef void * WXHPALETTE; +typedef void * WXHCURSOR; +typedef void * WXHRGN; +typedef void * WXHACCEL; +typedef void * WXHINSTANCE; +typedef void * WXHBITMAP; +typedef void * WXHIMAGELIST; +typedef void * WXHGLOBAL; +typedef void * WXHDC; +typedef unsigned int WXUINT; +typedef unsigned long WXDWORD; +typedef unsigned short WXWORD; + +typedef unsigned long WXCOLORREF; +typedef struct tagMSG WXMSG; + +typedef WXHWND WXWINHANDLE; /* WinHandle of PalmOS */ +typedef WXWINHANDLE WXWidget; + +typedef void * WXFORMPTR; +typedef void * WXEVENTPTR; +typedef void * WXRECTANGLEPTR; + +#endif /* __WXPALMOS__ */ + + +/* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */ +#if defined(__WIN32__) /* the keywords needed for WinMain() declaration */ #ifndef WXFAR @@ -2324,6 +2541,7 @@ typedef void * WXHBRUSH; typedef void * WXHPALETTE; typedef void * WXHCURSOR; typedef void * WXHRGN; +typedef void * WXRECTPTR; typedef void * WXHACCEL; typedef void WXFAR * WXHINSTANCE; typedef void * WXHBITMAP; @@ -2357,14 +2575,19 @@ typedef long WXLPARAM; typedef long WXLRESULT; #endif -#if !defined(__WIN32__) || defined(__GNUWIN32__) || defined(__WXMICROWIN__) +#if defined(__GNUWIN32__) || defined(__WXMICROWIN__) typedef int (*WXFARPROC)(); #else typedef int (__stdcall *WXFARPROC)(); #endif -#endif /* __WXMSW__ */ +#endif /* __WIN32__ */ +#if defined(__OS2__) +typedef unsigned long DWORD; +typedef unsigned short WORD; +#endif + #if defined(__WXPM__) || defined(__EMX__) #ifdef __WXPM__ /* Stand-ins for OS/2 types, to avoid #including all of os2.h */ @@ -2425,8 +2648,6 @@ typedef unsigned long HCURSOR; typedef unsigned long HINSTANCE; typedef unsigned long HIMAGELIST; typedef unsigned long HGLOBAL; -typedef unsigned long DWORD; -typedef unsigned short WORD; #endif /* WXPM || EMX */ #if defined (__WXPM__) @@ -2489,6 +2710,7 @@ typedef void* WXRegion; typedef void* WXFont; typedef void* WXImage; typedef void* WXFontList; +typedef void* WXFontSet; typedef void* WXRendition; typedef void* WXRenderTable; typedef void* WXFontType; /* either a XmFontList or XmRenderTable */ @@ -2549,6 +2771,7 @@ typedef struct _GtkNotebookPage GtkNotebookPage; typedef struct _GtkAccelGroup GtkAccelGroup; typedef struct _GtkItemFactory GtkItemFactory; typedef struct _GtkSelectionData GtkSelectionData; +typedef struct _GtkTextBuffer GtkTextBuffer; typedef GtkWidget *WXWidget;