X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c53456fc91cbf647c9001221f8f630212718df0..73302af6dddd667af4ebec69c800bc9de106f28e:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 3c3fa3a2ab..98646a60dc 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -1,12 +1,12 @@ /** -* Name: defs.h -* Purpose: Declarations/definitions common to all wx source files -* Author: Julian Smart and others +* Name: 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) -* Licence: wxWindows licence +* Created: 01/02/97 +* RCS-ID: $Id$ +* Copyright: (c) +* Licence: wxWindows licence */ /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ @@ -14,26 +14,31 @@ #ifndef _WX_DEFS_H_ #define _WX_DEFS_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "defs.h" -#endif - /* ---------------------------------------------------------------------------- */ /* compiler and OS identification */ /* ---------------------------------------------------------------------------- */ #include "wx/platform.h" -/* RN - only double-check the environment when building in C++ +/* 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(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ - !defined(__WXPM__) && !defined(__WXMAC__) && !defined(__WXCOCOA__) && \ - !defined(__X__) && !defined(__WXMGL__) && !defined(__WXX11__) && \ - wxUSE_GUI +# 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__) && \ + !defined(__WXCOCOA__) && \ + !defined(__X__) && \ + !defined(__WXMGL__) && \ + !defined(__WXX11__) && \ + wxUSE_GUI # ifdef __UNIX__ # error "No Target! You should use wx-config program for compilation flags!" # else /* !Unix */ @@ -60,7 +65,7 @@ /* suppress some Visual C++ warnings */ #ifdef __VISUALC__ - /* the only "real" warning here is 4244 but there arej ust too many of them */ + /* the only "real" warning here is 4244 but there are just too many of them */ /* in our code... one day someone should go and fix them but until then... */ # pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */ # pragma warning(disable:4244) /* conversion from double to float */ @@ -76,12 +81,6 @@ #endif #endif /* __VISUALC__ */ -/* suppress some Watcom C++ warnings */ -#ifdef __WATCOMC__ -# pragma warning 849 9 /* Disable 'virtual function hidden' */ -# pragma warning 549 9 /* Disable 'operand contains compiler generated information' */ -#endif /* __VISUALC__ */ - /* suppress some Salford C++ warnings */ #ifdef __SALFORDC__ # pragma suppress 353 /* Possible nested comments */ @@ -97,7 +96,7 @@ #endif /* __BORLANDC__ */ /* ---------------------------------------------------------------------------- */ -/* wxWindows version and compatibility defines */ +/* wxWidgets version and compatibility defines */ /* ---------------------------------------------------------------------------- */ #include "wx/version.h" @@ -110,20 +109,6 @@ /* compiler defects workarounds */ /* ---------------------------------------------------------------------------- */ -#if defined(__VISUALC__) && !defined(WIN32) && !defined(__WXWINCE__) - /* VC1.5 does not have LPTSTR type */ -#define LPTSTR LPSTR -#define LPCTSTR LPCSTR -#elif defined(__BORLANDC__) && !defined(__WIN32__) -#ifndef LPTSTR -#define LPTSTR LPSTR -#endif -#ifndef LPCTSTR -#define LPCTSTR LPSTR -#endif -#endif - - /* Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, so define it ourselves (newer versions do it for all files, though, and @@ -219,7 +204,7 @@ typedef short int WXTYPE; /* special care should be taken with this type under Windows where the real */ /* window id is unsigned, so we must always do the cast before comparing them */ -/* (or else they would be always different!). Usign wxGetWindowId() which does */ +/* (or else they would be always different!). Using wxGetWindowId() which does */ /* the cast itself is recommended. Note that this type can't be unsigned */ /* because wxID_ANY == -1 is a valid (and largely used) value for window id. */ typedef int wxWindowID; @@ -234,11 +219,7 @@ typedef int wxWindowID; /* general, but there are places where you can use them to advantage */ /* without totally breaking ports that cannot use them. If you do, then */ /* wrap it in this guard, but such cases should still be relatively rare. */ -#ifndef __WIN16__ - #define wxUSE_NESTED_CLASSES 1 -#else - #define wxUSE_NESTED_CLASSES 0 -#endif +#define wxUSE_NESTED_CLASSES 1 /* check for explicit keyword support */ #ifndef HAVE_EXPLICIT @@ -266,8 +247,8 @@ typedef int wxWindowID; #define wxEXPLICIT #endif /* HAVE_EXPLICIT/!HAVE_EXPLICIT */ -/* check for static/const/reinterpret_cast<>() */ -#ifndef HAVE_STATIC_CAST +/* check for static/const_cast<>() (we don't use the other ones for now) */ +#ifndef HAVE_CXX_CASTS #if defined(__VISUALC__) && (__VISUALC__ >= 1100) /* VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?) */ #define HAVE_CXX_CASTS @@ -276,14 +257,44 @@ typedef int wxWindowID; /* GCC 2.95 has C++ casts, what about earlier versions? */ #define HAVE_CXX_CASTS #endif -#endif /* HAVE_STATIC_CAST */ +#endif /* !HAVE_CXX_CASTS */ #ifdef HAVE_CXX_CASTS #ifndef HAVE_CONST_CAST #define HAVE_CONST_CAST #endif + #ifndef HAVE_REINTERPRET_CAST + #define HAVE_REINTERPRET_CAST + #endif + #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 + #define wx_static_cast(t, x) static_cast(x) +#else + #define wx_static_cast(t, x) ((t)(x)) +#endif + +#ifdef HAVE_CONST_CAST + #define wx_const_cast(t, x) const_cast(x) +#else + #define wx_const_cast(t, x) ((t)(x)) +#endif + +#ifdef HAVE_REINTERPRET_CAST + #define wx_reinterpret_cast(t, x) reinterpret_cast(x) +#else + #define wx_reinterpret_cast(t, x) ((t)(x)) +#endif + +/* for consistency with wxStatic/DynamicCast defined in wx/object.h */ +#define wxConstCast(obj, className) wx_const_cast(className *, obj) + #ifndef HAVE_STD_WSTRING #if defined(__VISUALC__) && (__VISUALC__ >= 1100) /* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */ @@ -308,6 +319,50 @@ typedef int wxWindowID; #endif #endif +/* provide replacement for C99 va_copy() if the compiler doesn't have it */ + +/* could be already defined by configure or the user */ +#ifndef wxVaCopy + /* if va_copy is a macro or configure detected that we have it, use it */ + #if defined(va_copy) || defined(HAVE_VA_COPY) + #define wxVaCopy va_copy + #else /* no va_copy, try to provide a replacement */ + /* + configure tries to determine whether va_list is an array or struct + type, but it may not be used under Windows, so deal with a few + special cases. + */ + + #ifdef __WATCOMC__ + /* Watcom uses array type for va_list except for PPC and Alpha */ + #if !defined(__PPC__) && !defined(__AXP__) + #define VA_LIST_IS_ARRAY + #endif + #endif /* __WATCOMC__ */ + + #if defined(__PPC__) && (defined(_CALL_SYSV) || defined (_WIN32)) + /* + PPC using SysV ABI and NT/PPC are special in that they use an + extra level of indirection. + */ + #define VA_LIST_IS_POINTER + #endif /* SysV or Win32 on __PPC__ */ + + /* + note that we use memmove(), not memcpy(), in case anybody tries + to do wxVaCopy(ap, ap) + */ + #if defined(VA_LIST_IS_POINTER) + #define wxVaCopy(d, s) memmove(*(d), *(s), sizeof(va_list)) + #elif defined(VA_LIST_IS_ARRAY) + #define wxVaCopy(d, s) memmove((d), (s), sizeof(va_list)) + #else /* we can only hope that va_lists are simple lvalues */ + #define wxVaCopy(d, s) ((d) = (s)) + #endif + #endif /* va_copy/!va_copy */ +#endif /* wxVaCopy */ + + /* ---------------------------------------------------------------------------- */ /* portable calling conventions macros */ /* ---------------------------------------------------------------------------- */ @@ -399,7 +454,9 @@ typedef int wxWindowID; /* NULL declaration: it must be defined as 0 for C++ programs (in particular, */ /* it must not be defined as "(void *)0" which is standard for C but completely */ /* breaks C++ code) */ +#ifndef __HANDHELDPC__ #include +#endif /* delete pointer if it is not NULL and NULL it afterwards */ /* (checking that it's !NULL before passing it to delete is just a */ @@ -422,7 +479,18 @@ typedef int wxWindowID; /* 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) */ -#define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__) +#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 */ @@ -536,7 +604,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 */ @@ -544,11 +614,12 @@ 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 */ }; /* ---------------------------------------------------------------------------- */ -/* standard wxWindows types */ +/* standard wxWidgets types */ /* ---------------------------------------------------------------------------- */ /* the type for screen and DC coordinates */ @@ -557,16 +628,11 @@ enum /* to ensure compatibility with 2.0, we must use long */ #define wxCoord long #else /* !wxUSE_COMPATIBLE_COORD_TYPES */ - #ifdef __WIN16__ - /* under Win16, int is too small, so use long to allow for bigger */ - /* virtual canvases */ - typedef long wxCoord; - #else /* !Win16 */ /* other platforms we support have at least 32bit int - quite enough */ typedef int wxCoord; - #endif /* Win16/!Win16 */ #endif /* wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES */ +enum { wxDefaultCoord = -1 }; /* ---------------------------------------------------------------------------- */ /* define fixed length types */ @@ -587,7 +653,7 @@ typedef wxUint8 wxByte; /* 16bit */ #ifdef SIZEOF_SHORT #if SIZEOF_SHORT != 2 - #error "wxWindows assumes sizeof(short) == 2, please fix the code" + #error "wxWidgets assumes sizeof(short) == 2, please fix the code" #endif #else #define SIZEOF_SHORT 2 @@ -621,37 +687,64 @@ typedef wxUint16 wxWord; */ /* 32bit */ -#ifdef __WINDOWS__ - #if defined(__WIN64__) - /* you may remove this #error and try to compile the library, please */ - /* report the results to wx-dev@lists.wxwindows.org if you do! */ - #error "wxWindows hasn't been tested under Win64, continue at your own risk" - - /* the same definitions as for Win32 _should_ work here as only */ - /* sizeof(void *) changes, but it must be tested first */ - #endif /* __WIN64__ */ - +#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 #define SIZEOF_WCHAR_T 2 - #define wxSIZE_T_IS_UINT + /* + under Win64 sizeof(size_t) == 8 and so it is neither unsigned + int nor unsigned long! + */ + #ifdef __WIN64__ + #define SIZEOF_SIZE_T 8 + + #undef wxSIZE_T_IS_UINT + #else /* Win32 */ + #define SIZEOF_SIZE_T 4 + + #define wxSIZE_T_IS_UINT + #endif #undef wxSIZE_T_IS_ULONG #ifdef __WIN64__ - #define SIZEOF_INT_P 8 + #define SIZEOF_VOID_P 8 #else /* Win32 */ - #define SIZEOF_INT_P 4 + #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 @@ -673,22 +766,26 @@ typedef wxUint16 wxWord; typedef long wxInt32; typedef unsigned long wxUint32; - #elif - /* wxWindows is not ready for 128bit systems yet... */ + #else + /* wxWidgets is not ready for 128bit systems yet... */ #error "Unknown sizeof(int) value, what are you compiling for?" #endif #else /* !defined(SIZEOF_INT) */ - /* assume sizeof(int) == 4 -- what else can we do? */ + /* assume default 32bit machine -- what else can we do? */ wxCOMPILE_TIME_ASSERT( sizeof(int) == 4, IntMustBeExactly4Bytes); + wxCOMPILE_TIME_ASSERT( sizeof(size_t) == 4, SizeTMustBeExactly4Bytes); + wxCOMPILE_TIME_ASSERT( sizeof(void *) == 4, PtrMustBeExactly4Bytes); #define SIZEOF_INT 4 + #define SIZEOF_SIZE_T 4 + #define SIZEOF_VOID_P 4 typedef int wxInt32; typedef unsigned int wxUint32; - #if defined(__MACH__) && !defined(SIZEOF_WCHAR_T) - #define SIZEOF_WCHAR_T 4 - #endif + #if defined(__MACH__) && !defined(SIZEOF_WCHAR_T) + #define SIZEOF_WCHAR_T 4 + #endif #if wxUSE_WCHAR_T && !defined(SIZEOF_WCHAR_T) /* also assume that sizeof(wchar_t) == 2 (under Unix the most */ /* common case is 4 but there configure would have defined */ @@ -704,13 +801,65 @@ typedef wxUint16 wxWord; typedef wxUint32 wxDword; +/* + Define an integral type big enough to contain all of long, size_t and void *. + */ +#if SIZEOF_LONG >= SIZEOF_VOID_P && SIZEOF_LONG >= SIZEOF_SIZE_T + /* normal case */ + typedef unsigned long wxUIntPtr; +#elif SIZEOF_SIZE_T >= SIZEOF_VOID_P + /* Win64 case */ + typedef size_t wxUIntPtr; +#else + /* + This should never happen for the current architectures but if you're + using one where it does, please contact wx-dev@lists.wxwidgets.org. + */ + #error "Pointers can't be stored inside integer types." +#endif + +#ifdef __cplusplus +/* And also define a couple of simple functions to cast pointer to/from it. */ +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 + */ +#ifdef __VISUALC__ + #pragma warning(disable: 4311) /* pointer truncation from '' to '' */ +#endif + + return wx_reinterpret_cast(wxUIntPtr, p); + +#ifdef __VISUALC__ + #pragma warning(default: 4311) +#endif +} + +inline void *wxUIntToPtr(wxUIntPtr p) +{ +#ifdef __VISUALC__ + #pragma warning(disable: 4312) /* conversion to type of greater size */ +#endif + + return wx_reinterpret_cast(void *, p); + +#ifdef __VISUALC__ + #pragma warning(default: 4312) +#endif +} +#endif /*__cplusplus*/ + /* 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 @@ -722,7 +871,11 @@ typedef wxUint32 wxDword; #define wxLongLongSuffix l #define wxLongLongFmtSpec _T("l") #define wxLongLongIsLong -#elif (defined(__VISUALC__) && defined(__WIN32__)) +#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 #define wxLongLongFmtSpec _T("I64") @@ -734,7 +887,7 @@ typedef wxUint32 wxDword; #define wxLongLong_t __int64 #define wxLongLongSuffix i64 #define wxLongLongFmtSpec _T("Ld") -#elif defined(__DIGITALMARS__) +#elif defined(__DIGITALMARS__) #define wxLongLong_t __int64 #define wxLongLongSuffix LL #define wxLongLongFmtSpec _T("ll") @@ -762,12 +915,41 @@ typedef wxUint32 wxDword; #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 +#ifndef HAVE_SSIZE_T + #if SIZEOF_SIZE_T == 4 + typedef wxInt32 ssize_t; + #elif SIZEOF_SIZE_T == 8 + typedef wxInt64 ssize_t; + #else + #error "error defining ssize_t, size_t is not 4 or 8 bytes" + #endif #endif @@ -791,6 +973,24 @@ typedef float wxFloat32; typedef double wxDouble; #endif +/* + Some (non standard) compilers typedef wchar_t as an existing type instead + of treating it as a real fundamental type, set wxWCHAR_T_IS_REAL_TYPE to 0 + for them and to 1 for all the others. + */ +#if wxUSE_WCHAR_T + /* + VC++ typedefs wchar_t as unsigned short by default, that is unless + /Za or /Zc:wchar_t option is used in which case _WCHAR_T_DEFINED is + defined. + */ +# if defined(__VISUALC__) && !defined(_NATIVE_WCHAR_T_DEFINED) +# define wxWCHAR_T_IS_REAL_TYPE 0 +# else /* compiler having standard-conforming wchar_t */ +# define wxWCHAR_T_IS_REAL_TYPE 1 +# endif +#endif /* wxUSE_WCHAR_T */ + /* ---------------------------------------------------------------------------- */ /* byte ordering related definition and macros */ /* ---------------------------------------------------------------------------- */ @@ -935,12 +1135,6 @@ typedef float wxFloat32; #define wxUINT64_SWAP_ON_BE(val) (val) #endif -/* Macros to convert from unsigned long to void pointer. */ -/* High order truncation occurs if the respective type is not large enough. */ -#define WXPTRULONGSLICE (((wxBYTE_ORDER==wxBIG_ENDIAN)&&(sizeof(void*)==8)&&(sizeof(unsigned long)<8))?1:0) -#define wxPtrToULong(p) (((unsigned long*)(&(p)))[WXPTRULONGSLICE]) -#define wxULongToPtr(p,n) (p=NULL,wxPtrToULong(p)=(unsigned long)(n),p) - /* ---------------------------------------------------------------------------- */ /* Geometric flags */ /* ---------------------------------------------------------------------------- */ @@ -1009,8 +1203,15 @@ enum wxStretch wxGROW = 0x2000, wxEXPAND = wxGROW, wxSHAPED = 0x4000, - wxADJUST_MINSIZE = 0x8000, - wxTILE = 0xc000 + wxFIXED_MINSIZE = 0x8000, + wxTILE = 0xc000, + + /* for compatibility only, default now, don't use explicitly any more */ +#if WXWIN_COMPATIBILITY_2_4 + wxADJUST_MINSIZE = 0x00100000 +#else + wxADJUST_MINSIZE = 0 +#endif }; /* border flags: the values are chosen for backwards compatibility */ @@ -1089,8 +1290,16 @@ enum wxBorder /* Windows, it won't normally get the dialog navigation key events) */ #define wxWANTS_CHARS 0x00040000 -/* Make window retained (mostly Motif, I think) -- obsolete (VZ)? */ +/* Make window retained (Motif only, see src/generic/scrolwing.cpp) + * This is non-zero only under wxMotif, to avoid a clash with wxPOPUP_WINDOW + * on other platforms + */ + +#ifdef __WXMOTIF__ #define wxRETAINED 0x00020000 +#else +#define wxRETAINED 0x00000000 +#endif #define wxBACKINGSTORE wxRETAINED /* set this flag to create a special popup window: it will be always shown on */ @@ -1147,38 +1356,12 @@ enum wxBorder #define wxFRAME_EX_CONTEXTHELP 0x00000004 #define wxDIALOG_EX_CONTEXTHELP 0x00000004 -/* - * wxFrame/wxDialog style flags - */ -#define wxSTAY_ON_TOP 0x8000 -#define wxICONIZE 0x4000 -#define wxMINIMIZE wxICONIZE -#define wxMAXIMIZE 0x2000 -#define wxCLOSE_BOX 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_BORDER 0x0040 - -#define wxDIALOG_NO_PARENT 0x0001 /* Don't make owned by apps top window */ -#define wxFRAME_NO_TASKBAR 0x0002 /* No taskbar button (MSW only) */ -#define wxFRAME_TOOL_WINDOW 0x0004 /* No taskbar button, no system menu */ -#define wxFRAME_FLOAT_ON_PARENT 0x0008 /* Always above its parent */ -#define wxFRAME_SHAPED 0x0010 /* Create a window that is able to be shaped */ - -/* deprecated versions defined for compatibility reasons */ -#define wxRESIZE_BOX wxMAXIMIZE_BOX -#define wxTHICK_FRAME wxRESIZE_BORDER - -/* obsolete styles, unused any more */ -#define wxDIALOG_MODAL 0x0020 /* free flag value 0x0020 */ -#define wxDIALOG_MODELESS 0 -#define wxNO_3D 0 -#define wxUSER_COLOURS 0 +/* 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 /* * MDI parent frame style flags @@ -1187,27 +1370,6 @@ enum wxBorder #define wxFRAME_NO_WINDOW_MENU 0x0100 -#define wxDEFAULT_FRAME_STYLE \ - (wxSYSTEM_MENU | wxRESIZE_BORDER | \ - wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX | \ - wxCAPTION | wxCLIP_CHILDREN) - -#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX) - -/* - * 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 */ @@ -1267,12 +1429,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 +#define wxRB_USE_CHECKBOX 0x0010 /* alternative native control (wxPalmOS) */ /* * wxSlider flags @@ -1290,6 +1454,7 @@ enum wxBorder #define wxSL_BOTTOM 0x0200 #define wxSL_BOTH 0x0400 #define wxSL_SELRANGE 0x0800 +#define wxSL_INVERSE 0x1000 /* * wxScrollBar flags @@ -1317,6 +1482,29 @@ 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 + +/* + * wxListbook flags + */ +#define wxLB_DEFAULT 0x0 +#define wxLB_TOP 0x1 +#define wxLB_BOTTOM 0x2 +#define wxLB_LEFT 0x4 +#define wxLB_RIGHT 0x8 +#define wxLB_ALIGN_MASK 0xf + +/* + * wxChoicebook flags + */ +#define wxCHB_DEFAULT 0x0 +#define wxCHB_TOP 0x1 +#define wxCHB_BOTTOM 0x2 +#define wxCHB_LEFT 0x4 +#define wxCHB_RIGHT 0x8 +#define wxCHB_ALIGN_MASK 0xf /* * wxTabCtrl flags @@ -1359,10 +1547,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 @@ -1404,6 +1591,17 @@ enum wxBorder #define wxMORE 0x00010000 #define wxSETUP 0x00020000 +/* + * Background styles. See wxWindow::SetBackgroundStyle + */ + +enum wxBackgroundStyle +{ + wxBG_STYLE_SYSTEM, + wxBG_STYLE_COLOUR, + wxBG_STYLE_CUSTOM +}; + /* ---------------------------------------------------------------------------- */ /* standard IDs */ /* ---------------------------------------------------------------------------- */ @@ -1478,7 +1676,7 @@ enum wxID_FILE8, wxID_FILE9, - /* Standard button IDs */ + /* Standard button and menu IDs */ wxID_OK = 5100, wxID_CANCEL, wxID_APPLY, @@ -1497,6 +1695,31 @@ enum wxID_ABORT, wxID_RETRY, wxID_IGNORE, + wxID_ADD, + wxID_REMOVE, + + wxID_UP, + wxID_DOWN, + wxID_HOME, + wxID_REFRESH, + wxID_STOP, + wxID_INDEX, + + wxID_BOLD, + wxID_ITALIC, + wxID_JUSTIFY_CENTER, + wxID_JUSTIFY_FILL, + wxID_JUSTIFY_RIGHT, + wxID_JUSTIFY_LEFT, + wxID_UNDERLINE, + wxID_INDENT, + wxID_UNINDENT, + wxID_ZOOM_100, + wxID_ZOOM_FIT, + wxID_ZOOM_IN, + wxID_ZOOM_OUT, + wxID_UNDELETE, + wxID_REVERT_TO_SAVED, /* System menu IDs (used by wxUniv): */ wxID_SYSTEM_MENU = 5200, @@ -1613,12 +1836,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, @@ -1629,28 +1855,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 */ @@ -1712,6 +1941,9 @@ enum wxKeyCode WXK_SPACE = 32, WXK_DELETE = 127, + /* 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_LBUTTON, WXK_RBUTTON, @@ -1814,7 +2046,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 @@ -1954,7 +2208,8 @@ enum wxPrintMode wxPRINT_MODE_NONE = 0, wxPRINT_MODE_PREVIEW = 1, /* Preview in external application */ wxPRINT_MODE_FILE = 2, /* Print to file */ - wxPRINT_MODE_PRINTER = 3 /* Send to printer */ + wxPRINT_MODE_PRINTER = 3, /* Send to printer */ + wxPRINT_MODE_STREAM = 4 /* Send postscript data into a stream */ }; /* ---------------------------------------------------------------------------- */ @@ -1987,17 +2242,18 @@ enum wxUpdateUI #endif /* --------------------------------------------------------------------------- */ -/* macros that enable wxWindows apps to be compiled in absence of the */ +/* macros that enable wxWidgets apps to be compiled in absence of the */ /* sytem headers, although some platform specific types are used in the */ /* platform specific (implementation) parts of the headers */ /* --------------------------------------------------------------------------- */ #ifdef __WXMAC__ +#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; @@ -2013,8 +2269,14 @@ typedef unsigned int WXUINT; typedef unsigned long WXDWORD; typedef unsigned short WXWORD; -typedef void* WXWidget; -typedef void* WXWindow; +typedef WX_OPAQUE_TYPE(CIconHandle ) * WXHICON ; +typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ; + + +/* typedef void* WXWidget; */ +/* typedef void* WXWindow; */ +typedef WX_OPAQUE_TYPE(ControlRef ) * WXWidget ; +typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ; typedef void* WXDisplay; /* typedef WindowPtr WXHWND; */ @@ -2075,8 +2337,8 @@ typedef struct klass *WX_##klass #warning "Objective-C types will not be checked by the compiler." /* NOTE: typedef struct objc_object *id; */ /* IOW, we're declaring these using the id type without using that name, */ -/* since "id" is used extensively not only within wxWindows itself, but */ -/* also in wxWindows application code. The following works fine when */ +/* since "id" is used extensively not only within wxWidgets itself, but */ +/* also in wxWidgets application code. The following works fine when */ /* compiling C(++) code, and works without typesafety for Obj-C(++) code */ #define DECLARE_WXCOCOA_OBJC_CLASS(klass) \ typedef struct objc_object *WX_##klass @@ -2088,16 +2350,23 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSBitmapImageRep); DECLARE_WXCOCOA_OBJC_CLASS(NSBox); DECLARE_WXCOCOA_OBJC_CLASS(NSButton); DECLARE_WXCOCOA_OBJC_CLASS(NSColor); +DECLARE_WXCOCOA_OBJC_CLASS(NSColorPanel); DECLARE_WXCOCOA_OBJC_CLASS(NSControl); +DECLARE_WXCOCOA_OBJC_CLASS(NSCursor); DECLARE_WXCOCOA_OBJC_CLASS(NSEvent); +DECLARE_WXCOCOA_OBJC_CLASS(NSFontPanel); DECLARE_WXCOCOA_OBJC_CLASS(NSImage); DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager); DECLARE_WXCOCOA_OBJC_CLASS(NSMenu); +DECLARE_WXCOCOA_OBJC_CLASS(NSMenuExtra); DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem); DECLARE_WXCOCOA_OBJC_CLASS(NSMutableArray); DECLARE_WXCOCOA_OBJC_CLASS(NSNotification); +DECLARE_WXCOCOA_OBJC_CLASS(NSObject); DECLARE_WXCOCOA_OBJC_CLASS(NSPanel); DECLARE_WXCOCOA_OBJC_CLASS(NSScrollView); +DECLARE_WXCOCOA_OBJC_CLASS(NSSound); +DECLARE_WXCOCOA_OBJC_CLASS(NSStatusItem); DECLARE_WXCOCOA_OBJC_CLASS(NSTableColumn); DECLARE_WXCOCOA_OBJC_CLASS(NSTableView); DECLARE_WXCOCOA_OBJC_CLASS(NSTextContainer); @@ -2106,25 +2375,101 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSTextStorage); DECLARE_WXCOCOA_OBJC_CLASS(NSThread); DECLARE_WXCOCOA_OBJC_CLASS(NSWindow); DECLARE_WXCOCOA_OBJC_CLASS(NSView); -typedef WX_NSView WXWidget; /* wxWindows BASE definition */ +typedef WX_NSView WXWidget; /* wxWidgets BASE definition */ #endif /* __WXCOCOA__ */ -#if defined(__WXMSW__) || defined(__WXPM__) +#if defined(__WXPALMOS__) + +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 WinHandle WXWINHANDLE; +typedef WXWINHANDLE WXWidget; + +#endif /* __WXPALMOS__ */ + + +#if defined(__WXMSW__) /* the keywords needed for WinMain() declaration */ -#ifdef __WIN16__ -# ifdef __VISUALC__ -# define WXFAR __far -# else -# define WXFAR _far -# endif -#else /* Win32 */ -# ifndef WXFAR +#ifndef WXFAR # define WXFAR -# endif -#endif /* Win16/32 */ +#endif + +/* Stand-ins for Windows types to avoid #including all of windows.h */ +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 WXFAR * 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 void * WXRGNDATA; +typedef struct tagMSG WXMSG; +typedef void * WXHCONV; +typedef void * WXHKEY; +typedef void * WXHTREEITEM; + +typedef void * WXDRAWITEMSTRUCT; +typedef void * WXMEASUREITEMSTRUCT; +typedef void * WXLPCREATESTRUCT; + +typedef WXHWND WXWidget; + +#ifdef __WIN64__ +typedef unsigned __int64 WXWPARAM; +typedef __int64 WXLPARAM; +typedef __int64 WXLRESULT; +#else +typedef unsigned int WXWPARAM; +typedef long WXLPARAM; +typedef long WXLRESULT; +#endif + +#if !defined(__WIN32__) || defined(__GNUWIN32__) || defined(__WXMICROWIN__) +typedef int (*WXFARPROC)(); +#else +typedef int (__stdcall *WXFARPROC)(); +#endif +#endif /* __WXMSW__ */ -/* Stand-ins for Windows types or OS/2, to avoid #including all of windows.h or os2.h */ + +#if defined(__WXPM__) || defined(__EMX__) +#ifdef __WXPM__ +/* Stand-ins for OS/2 types, to avoid #including all of os2.h */ typedef unsigned long WXHWND; typedef unsigned long WXHANDLE; typedef unsigned long WXHICON; @@ -2136,20 +2481,14 @@ typedef unsigned long WXHPALETTE; typedef unsigned long WXHCURSOR; typedef unsigned long WXHRGN; typedef unsigned long WXHACCEL; -typedef void WXFAR * WXHINSTANCE; typedef unsigned long WXHBITMAP; -typedef unsigned long WXHIMAGELIST; -typedef unsigned long WXHGLOBAL; typedef unsigned long WXHDC; typedef unsigned int WXUINT; typedef unsigned long WXDWORD; typedef unsigned short WXWORD; typedef unsigned long WXCOLORREF; -typedef void * WXRGNDATA; typedef void * WXMSG; -typedef unsigned long WXHCONV; -typedef unsigned long WXHKEY; typedef unsigned long WXHTREEITEM; typedef void * WXDRAWITEMSTRUCT; @@ -2157,23 +2496,7 @@ typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; typedef WXHWND WXWidget; - -#endif /* MSW or OS2 */ - - -#ifdef __WXMSW__ -typedef unsigned int WXWPARAM; -typedef long WXLPARAM; - -#if !defined(__WIN32__) || defined(__GNUWIN32__) || defined(__WXMICROWIN__) -typedef int (*WXFARPROC)(); -#else -typedef int (__stdcall *WXFARPROC)(); #endif -#endif /* __WXMSW__ */ - - -#if defined(__WXPM__) || defined(__EMX__) #ifdef __EMX__ /* Need a well-known type for WXFARPROC below. MPARAM is typedef'ed too late. */ @@ -2242,7 +2565,7 @@ typedef struct tagLOGPALETTE /* VA 3.0 for some reason needs base data types when typedefing a proc proto??? */ typedef void* (_System *WXFARPROC)(unsigned long, unsigned long, void*, void*); #else -#ifdef __EMX__ +#if defined(__EMX__) && !defined(_System) #define _System #endif typedef WXRESULT (_System *WXFARPROC)(WXHWND, WXMSGID, WXWPARAM, WXLPARAM); @@ -2318,7 +2641,7 @@ typedef struct _GdkICAttr GdkICAttr; /* Stand-ins for GTK types */ typedef struct _GtkWidget GtkWidget; -typedef struct _GtkStyle GtkStyle; +typedef struct _GtkRcStyle GtkRcStyle; typedef struct _GtkAdjustment GtkAdjustment; typedef struct _GtkList GtkList; typedef struct _GtkToolbar GtkToolbar; @@ -2328,6 +2651,7 @@ typedef struct _GtkNotebookPage GtkNotebookPage; typedef struct _GtkAccelGroup GtkAccelGroup; typedef struct _GtkItemFactory GtkItemFactory; typedef struct _GtkSelectionData GtkSelectionData; +typedef struct _GtkTextBuffer GtkTextBuffer; typedef GtkWidget *WXWidget; @@ -2336,11 +2660,6 @@ typedef GtkWidget *WXWidget; #define GTK_CLASS_TYPE(klass) ((klass)->type) #endif -#ifdef __WXGTK20__ -/* Input method thing */ -typedef struct _GtkIMMulticontext GtkIMMulticontext; -#endif /* __WXGTK20__ */ - #endif /* __WXGTK__ */ #if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE) @@ -2361,8 +2680,8 @@ typedef struct window_t *WXWidget; #endif /* MGL */ /* This is required because of clashing macros in windows.h, which may be */ -/* included before or after wxWindows classes, and therefore must be */ -/* disabled here before any significant wxWindows headers are included. */ +/* included before or after wxWidgets classes, and therefore must be */ +/* disabled here before any significant wxWidgets headers are included. */ #ifdef __WXMSW__ #ifdef GetClassInfo #undef GetClassInfo