X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cc985face55ed02c310860afefc8e6d656fb849d..270a909e20a2c652fd816ad14407113ad0319c9d:/include/wx/defs.h?ds=sidebyside diff --git a/include/wx/defs.h b/include/wx/defs.h index c049542ebc..a27d2371c3 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -13,21 +13,14 @@ #define _WX_DEFS_H_ #ifdef __GNUG__ -#pragma interface "defs.h" + #pragma interface "defs.h" #endif -#include - -#include "wx/setup.h" -#ifdef PACKAGE - #undef PACKAGE +// needed to handle strings with xgettext: +#ifndef gettext_noop +# define gettext_noop(x) x #endif -#ifdef VERSION - #undef VERSION -#endif - -#include "wx/version.h" // ---------------------------------------------------------------------------- // compiler and OS identification @@ -37,11 +30,9 @@ #if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ defined(__LINUX__) || defined(__sgi ) || \ defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \ - defined(__EMX__) + defined(__EMX__) || defined( __VMS ) - #ifndef __UNIX__ - #define __UNIX__ - #endif // Unix + #define __UNIX_LIKE__ // Helps SGI compilation, apparently #ifdef __SGI__ @@ -62,12 +53,21 @@ #endif #endif // Sun - #if defined(__hpux) && !defined(__HPUX__) - #define __HPUX__ - #endif // HP-UX - #elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) ) // MacOS +#elif defined(__OS2__) + #if defined(__IBMCPP__) + #define __VISAGEAVER__ __IBMCPP__ + #endif + #ifndef __WXOS2__ + #define __WXOS2__ + #endif + #ifndef __WXPM__ + #define __WXPM__ + #endif + + // Place other OS/2 compiler environment defines here + #define LINKAGEMODE _Optlink #else // Windows #ifndef __WINDOWS__ #define __WINDOWS__ @@ -86,16 +86,25 @@ #endif // compiler #endif // OS +// LINKAGEMODE mode is empty for everyting except OS/2 +#ifndef LINKAGEMODE + #define LINKAGEMODE +#endif // LINKAGEMODE + // suppress some Visual C++ warnings #ifdef __VISUALC__ +# pragma warning(disable:4201) // nonstandard extension used: nameless struct/union # pragma warning(disable:4244) // conversion from double to float # pragma warning(disable:4100) // unreferenced formal parameter # pragma warning(disable:4511) // copy ctor couldn't be generated # pragma warning(disable:4512) // operator=() couldn't be generated -#ifndef WIN32 +# pragma warning(disable:4699) // Using precompiled header # pragma warning(disable:4134) // conversion between pointers to members of same class +#ifndef WIN32 # pragma warning(disable:4135) // conversion between different integral types # pragma warning(disable:4769) // assignment of near pointer to long integer +// This one is really annoying, since it occurs for each cast to (HANDLE)... +# pragma warning(disable:4305) // truncation of long to near ptr #endif #endif // __VISUALC__ @@ -108,18 +117,18 @@ # pragma suppress 571 // Virtual function hiding #endif // __SALFORDC__ -#ifdef __VISUALC__ -#ifndef WIN32 -// VC1.5 does not have LPTSTR type -#define LPTSTR LPSTR -#define LPCTSTR LPCSTR -#endif -#endif +#if defined(__VISUALC__) && !defined(WIN32) + // VC1.5 does not have LPTSTR type + #define LPTSTR LPSTR + #define LPCTSTR LPCSTR +#endif // VC++ 1.5 // Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, // so define it ourselves #ifdef __DECCXX - #define __cplusplus +#ifndef __VMS +# define __cplusplus +#endif #endif // __DECCXX // Resolves linking problems under HP-UX @@ -127,6 +136,22 @@ #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))) +#ifndef wxUSE_NORLANDER_HEADERS +# define wxUSE_NORLANDER_HEADERS 1 +#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 +#if defined(__MINGW32__) && !wxUSE_NORLANDER_HEADERS + #define __GNUWIN32_OLD__ +#endif + ////////////////////////////////////////////////////////////////////////////////// // Currently Only MS-Windows/NT, XView and Motif are supported // @@ -176,10 +201,48 @@ #if defined(__WXMSW__) && defined(__X__) #error "Target can't be both X and Windows" #elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ - !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__) - #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]" + !defined(__WXPM__) && !defined(__WXMAC__) && !defined(__X__) && \ + !defined(__WXQT__) && !defined(__WXSTUBS__) && wxUSE_GUI + #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]" #endif +// ---------------------------------------------------------------------------- +// wxWindows options +// ---------------------------------------------------------------------------- + +#include + +#include "wx/setup.h" + +// just in case they were defined in setup.h +#undef PACKAGE +#undef VERSION + +// this has to be done after including setup.h which might +// define __HPUX__ 1 itself +#if defined(__hpux) && !defined(__HPUX__) + #define __HPUX__ +#endif // HP-UX + +// if we're on a Unixsystem but didn't use configure (so that setup.h didn't +// define __UNIX__), do define __UNIX__ now +#if !defined(__UNIX__) && defined(__UNIX_LIKE__) + #define __UNIX__ +#endif // Unix + +#include "wx/version.h" + +// ---------------------------------------------------------------------------- +// compatibility defines +// ---------------------------------------------------------------------------- + +// possibility to build non GUI apps is new, so don't burden ourselves with +// compatibility code +#if !wxUSE_GUI + #undef WXWIN_COMPATIBILITY_2 + #define WXWIN_COMPATIBILITY_2 0 +#endif // !GUI + // ============================================================================ // non portable C++ features // ============================================================================ @@ -188,27 +251,20 @@ // check for native bool type and TRUE/FALSE constants // ---------------------------------------------------------------------------- -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) - // Bool is now obsolete, use bool instead - // typedef int Bool; +// define boolean constants if not done yet +#ifndef TRUE + #define TRUE 1 +#endif - #ifndef TRUE - #define TRUE 1 - #define FALSE 0 - #define Bool_DEFINED - #endif -#elif defined(__WXMSW__) - #ifndef TRUE - #define TRUE 1 - #define FALSE 0 - #endif -#endif // TRUE/FALSE +#ifndef FALSE + #define FALSE 0 +#endif // Add more tests here for Windows compilers that already define bool // (under Unix, configure tests for this) #ifndef HAVE_BOOL #if defined( __MWERKS__ ) - #if (__MWERKS__ >= 0x1000) && !__option(bool) + #if (__MWERKS__ >= 0x1000) && __option(bool) #define HAVE_BOOL #endif #elif defined(__VISUALC__) && (__VISUALC__ == 1020) @@ -233,6 +289,11 @@ #elif defined(__GNUWIN32__) // Cygwin supports bool #define HAVE_BOOL + #elif defined(__VISAGECPP__) + #if __IBMCPP__ < 400 + typedef unsigned long bool; + #endif + #define HAVE_BOOL #endif // compilers #endif // HAVE_BOOL @@ -240,7 +301,9 @@ // NB: of course, this doesn't replace the standard type, because, for // example, overloading based on bool/int parameter doesn't work and // so should be avoided in portable programs - typedef unsigned int bool; +#ifndef VMS +typedef unsigned int bool; +#endif #endif // bool typedef short int WXTYPE; @@ -259,11 +322,42 @@ typedef int wxWindowID; #define WXUNUSED(identifier) identifier #endif -/* - * Making or using wxWindows as a Windows DLL - */ +// ---------------------------------------------------------------------------- +// portable calling conventions macros +// ---------------------------------------------------------------------------- -#ifdef __WXMSW__ +// wxCALLBACK should be used for the functions which are called back by +// Windows (such as compare function for wxListCtrl) +#if defined(__WXMSW__) + #if defined(__MINGW32__) || defined(__GNUWIN32__) + #define wxCALLBACK __attribute__((stdcall)) + #else + // both VC++ and Borland understand this + #define wxCALLBACK _stdcall + #endif +#else + // no stdcall under Unix + #define wxCALLBACK +#endif // platform + +// callling convention for the qsort(3) callback + +#if defined(__VISUALC__) + #define wxCMPFUNC_CONV _cdecl +#elif defined(__VISAGECPP__) + #define wxCMPFUNC_CONV _Optlink +#else // !Visual C++ + #define wxCMPFUNC_CONV +#endif // compiler + +// compatibility :-( +#define CMPFUNC_CONV wxCMPFUNC_CONV + +// ---------------------------------------------------------------------------- +// Making or using wxWindows as a Windows DLL +// ---------------------------------------------------------------------------- + +#if defined(__WXMSW__) // _declspec works in BC++ 5 and later, as well as VC++ #if defined(__VISUALC__) || defined(__BORLANDC__) @@ -282,6 +376,22 @@ typedef int wxWindowID; # 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 +# else +# define WXDLLEXPORT +# define WXDLLEXPORT_DATA(type) type +# define WXDLLEXPORT_CTORFN +# endif + #else # define WXDLLEXPORT # define WXDLLEXPORT_DATA(type) type @@ -393,7 +503,8 @@ enum wxMOTIF_X, // OSF Motif 1.x.x wxCOSE_X, // OSF Common Desktop Environment wxNEXTSTEP, // NeXTStep - wxMACINTOSH, // Apple System 7 + wxMACINTOSH, // Apple System 7 and 8 + wxBEOS, // BeOS wxGTK, // GTK on X wxGTK_WIN32, // GTK on Win32 wxGTK_OS2, // GTK on OS/2 @@ -408,65 +519,105 @@ enum wxWIN95, // Windows 95 wxWIN386, // Watcom 32-bit supervisor modus wxMGL_UNIX, // MGL with direct hardware access - wxMGL_X, // MGL on X + wxMGL_X, // MGL on X wxMGL_WIN32, // MGL on Win32 - wxMGL_OS2 // MGL on OS/2 + wxMGL_OS2, // MGL on OS/2 + wxWINDOWS_OS2 // Native OS/2 PM }; // ---------------------------------------------------------------------------- -// machine specific settings +// standard wxWindows types // ---------------------------------------------------------------------------- +// 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 + #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 + // fixed length types -typedef char signed wxInt8; -typedef char unsigned wxUint8; +#define wxInt8 char signed +#define wxUint8 char unsigned #ifdef __WIN16__ -typedef int signed wxInt16; -typedef int unsigned wxUint16; -typedef long signed wxInt32; -typedef long unsigned wxUint32; +#define wxInt16 int signed +#define wxUint16 int unsigned +#define wxInt32 long signed +#define wxUint32 long unsigned #endif #ifdef __WIN32__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; +#define wxInt16 short signed +#define wxUint16 short unsigned +#define wxInt32 int signed +#define wxUint32 int unsigned #endif #ifdef __WXMAC__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; +#define wxInt16 short signed +#define wxUint16 short unsigned +#define wxInt32 int signed +#define wxUint32 int unsigned #endif #ifdef __WXOS2__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; +#define wxInt16 short signed +#define wxUint16 short unsigned +#define wxInt32 int signed +#define wxUint32 int unsigned #endif #if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__) #if defined(SIZEOF_INT) /* well, this shouldn't happen... */ - typedef short signed wxInt16; - typedef short unsigned wxUint16; - typedef int signed wxInt32; - typedef int unsigned wxUint32; + #define wxInt16 short signed + #define wxUint16 short unsigned + #define wxInt32 int signed + #define wxUint32 int unsigned #else - typedef short signed wxInt16; - typedef short unsigned wxUint16; - typedef int signed wxInt32; - typedef int unsigned wxUint32; + #define wxInt16 short signed + #define wxUint16 short unsigned + #define wxInt32 int signed + #define wxUint32 int unsigned #endif #endif -typedef wxUint8 wxByte; -typedef wxUint16 wxWord; +#define wxByte wxUint8 +#define wxWord wxUint16 + +// base floating point types +// wxFloat32 : 32 bit IEEE float ( 1 sign , 8 exponent bits , 23 fraction bits +// wxFloat64 : 64 bit IEEE float ( 1 sign , 11 exponent bits , 52 fraction bits +// wxDouble : native fastest representation that has at least wxFloat64 +// precision, so use the IEEE types for storage , and this for calculations + +typedef float wxFloat32 ; +#if defined( __WXMAC__ ) && defined (__MWERKS__) + typedef short double wxFloat64; +#else + typedef double wxFloat64; +#endif + +#if defined( __WXMAC__ ) && !defined( __POWERPC__ ) + typedef long double wxDouble; +#else + typedef double wxDouble ; +#endif + +// ---------------------------------------------------------------------------- +// byte ordering related definition and macros +// ---------------------------------------------------------------------------- // byte sex @@ -482,16 +633,46 @@ typedef wxUint16 wxWord; // byte swapping +#if defined (__MWERKS__) && ( (__MWERKS__ < 0x0900) || macintosh ) +// assembler versions for these +#ifdef __POWERPC__ + inline wxUint16 wxUINT16_SWAP_ALWAYS( wxUint16 i ) + {return (__lhbrx( &i , 0 ) ) ;} + inline wxInt16 wxINT16_SWAP_ALWAYS( wxInt16 i ) + {return (__lhbrx( &i , 0 ) ) ;} + inline wxUint32 wxUINT32_SWAP_ALWAYS( wxUint32 i ) + {return (__lwbrx( &i , 0 ) ) ;} + inline wxInt32 wxINT32_SWAP_ALWAYS( wxInt32 i ) + {return (__lwbrx( &i , 0 ) ) ;} +#else + #pragma parameter __D0 wxUINT16_SWAP_ALWAYS(__D0) + pascal wxUint16 wxUINT16_SWAP_ALWAYS(wxUint16 value) + = { 0xE158 }; + + #pragma parameter __D0 wxINT16_SWAP_ALWAYS(__D0) + pascal wxInt16 wxUINT16_SWAP_ALWAYS(wxInt16 value) + = { 0xE158 }; + + #pragma parameter __D0 wxUINT32_SWAP_ALWAYS (__D0) + pascal wxUint32 wxUINT32_SWAP_ALWAYS(wxUint32 value) + = { 0xE158, 0x4840, 0xE158 }; + + #pragma parameter __D0 wxINT32_SWAP_ALWAYS (__D0) + pascal wxInt32 wxUINT32_SWAP_ALWAYS(wxInt32 value) + = { 0xE158, 0x4840, 0xE158 }; + +#endif +#else // !MWERKS #define wxUINT16_SWAP_ALWAYS(val) \ ((wxUint16) ( \ (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - + #define wxINT16_SWAP_ALWAYS(val) \ ((wxInt16) ( \ (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - + #define wxUINT32_SWAP_ALWAYS(val) \ ((wxUint32) ( \ (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ @@ -505,7 +686,7 @@ typedef wxUint16 wxWord; (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) - +#endif // machine specific byte swapping #ifdef WORDS_BIGENDIAN @@ -528,6 +709,73 @@ typedef wxUint16 wxWord; #define wxINT32_SWAP_ON_BE(val) (val) #endif +// ---------------------------------------------------------------------------- +// Geometric flags +// ---------------------------------------------------------------------------- + +enum wxGeometryCentre +{ + wxCENTRE = 0x0001, + wxCENTER = wxCENTRE +}; + +// centering into frame rather than screen (obsolete) +#define wxCENTER_FRAME 0x0000 +// centre on screen rather than parent +#define wxCENTRE_ON_SCREEN 0x0002 +#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN + +enum wxOrientation +{ + wxHORIZONTAL = 0x0004, + wxVERTICAL = 0x0008, + + wxBOTH = (wxVERTICAL | wxHORIZONTAL) +}; + +enum wxDirection +{ + wxLEFT = 0x0010, + wxRIGHT = 0x0020, + wxUP = 0x0040, + wxDOWN = 0x0080, + + wxTOP = wxUP, + wxBOTTOM = wxDOWN, + + wxNORTH = wxUP, + wxSOUTH = wxDOWN, + wxWEST = wxLEFT, + wxEAST = wxRIGHT, + + wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT) +}; + +enum wxAlignment +{ + wxALIGN_NOT = 0x0000, + wxALIGN_CENTER_HORIZONTAL = 0x0100, + wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL, + wxALIGN_LEFT = wxALIGN_NOT, + wxALIGN_TOP = wxALIGN_NOT, + wxALIGN_RIGHT = 0x0200, + wxALIGN_BOTTOM = 0x0400, + wxALIGN_CENTER_VERTICAL = 0x0800, + wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, + + wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), + wxALIGN_CENTRE = wxALIGN_CENTER +}; + +enum wxStretch +{ + wxSTRETCH_NOT = 0x0000, + wxSHRINK = 0x1000, + wxGROW = 0x2000, + wxEXPAND = wxGROW, + wxSHAPED = 0x4000 +}; + // ---------------------------------------------------------------------------- // Window style flags // ---------------------------------------------------------------------------- @@ -583,9 +831,12 @@ typedef wxUint16 wxWord; #define wxWANTS_CHARS 0x00040000 // Make window retained (mostly Motif, I think) -#define wxRETAINED 0x0002000 +#define wxRETAINED 0x00020000 #define wxBACKINGSTORE wxRETAINED +// don't invalidate the whole window (resulting in a PAINT event) when the +// window is resized (currently, makes sense for wxMSW only) +#define wxNO_FULL_REPAINT_ON_RESIZE 0x00010000 /* * wxFrame/wxDialog style flags */ @@ -619,7 +870,7 @@ typedef wxUint16 wxWord; #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) +# define wxDEFAULT_DIALOG_STYLE (wxCAPTION|wxTHICK_FRAME) #endif /* @@ -652,8 +903,6 @@ typedef wxUint16 wxWord; */ // use native docking #define wxMB_DOCKABLE 0x0001 -// make all menus tearoff menus, even if not set on per-menu basis -#define wxMB_TEAROFF 0x0002 /* * wxMenu style flags @@ -664,13 +913,7 @@ typedef wxUint16 wxWord; * Apply to all panel items */ #define wxCOLOURED 0x0800 -// Alignment for panel item labels: replaces characters with zeros -// when creating label, so spaces can be included in string for alignment. #define wxFIXED_LENGTH 0x0400 -#define wxALIGN_LEFT 0x0000 -#define wxALIGN_CENTER 0x0100 -#define wxALIGN_CENTRE 0x0100 -#define wxALIGN_RIGHT 0x0200 /* * Styles for wxListBox @@ -695,6 +938,11 @@ typedef wxUint16 wxWord; #define wxTE_READONLY 0x0010 #define wxTE_MULTILINE 0x0020 #define wxTE_PROCESS_TAB 0x0040 +// this style means to use RICHEDIT control and does something only under wxMSW +// and Win32 and is silently ignored under all other platforms +#define wxTE_RICH 0x0080 +#define wxTE_NO_VSCROLL 0x0100 +#define wxTE_AUTO_SCROLL 0x0200 /* * wxComboBox style flags @@ -705,37 +953,37 @@ typedef wxUint16 wxWord; #define wxCB_DROPDOWN 0x0020 /* - * wxRadioBox/wxRadioButton style flags + * wxRadioBox style flags */ - // New, more intuitive names to specify majorDim argument -// Same as wxRA_HORIZONTAL -#define wxRA_SPECIFY_COLS 0x0001 -// Same as wxRA_VERTICAL -#define wxRA_SPECIFY_ROWS 0x0002 - +#define wxRA_SPECIFY_COLS wxHORIZONTAL +#define wxRA_SPECIFY_ROWS wxVERTICAL // Old names for compatibility #define wxRA_HORIZONTAL wxHORIZONTAL #define wxRA_VERTICAL wxVERTICAL + +/* + * wxRadioButton style flag + */ #define wxRB_GROUP 0x0004 /* * wxGauge flags */ -#define wxGA_PROGRESSBAR 0x0004 #define wxGA_HORIZONTAL wxHORIZONTAL #define wxGA_VERTICAL wxVERTICAL +#define wxGA_PROGRESSBAR 0x0010 // Windows only -#define wxGA_SMOOTH 0x0008 +#define wxGA_SMOOTH 0x0020 /* * wxSlider flags */ -#define wxSL_HORIZONTAL wxHORIZONTAL -#define wxSL_VERTICAL wxVERTICAL +#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_AUTOTICKS 0x0008 +#define wxSL_AUTOTICKS 0x0010 // #define wxSL_MANUALTICKS 0x0010 #define wxSL_LABELS 0x0020 #define wxSL_LEFT 0x0040 @@ -767,7 +1015,7 @@ typedef wxUint16 wxWord; #define wxTR_SINGLE 0x0000 #define wxTR_MULTIPLE 0x0020 #define wxTR_EXTENDED 0x0040 -#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080 +#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080 /* * wxListCtrl flags @@ -800,19 +1048,19 @@ typedef wxUint16 wxWord; /* * wxSpinButton flags */ -#define wxSP_VERTICAL 0x0004 -#define wxSP_HORIZONTAL 0x0008 -#define wxSP_ARROW_KEYS 0x0010 -#define wxSP_WRAP 0x0020 +#define wxSP_HORIZONTAL wxHORIZONTAL // 4 +#define wxSP_VERTICAL wxVERTICAL // 8 +#define wxSP_ARROW_KEYS 0x0010 +#define wxSP_WRAP 0x0020 /* * wxSplitterWindow flags */ -#define wxSP_NOBORDER 0x0000 -#define wxSP_3D 0x0004 -#define wxSP_BORDER 0x0008 -#define wxSP_PERMIT_UNSPLIT 0x0010 -#define wxSP_LIVE_UPDATE 0x0020 +#define wxSP_NOBORDER 0x0000 +#define wxSP_3D 0x0010 +#define wxSP_BORDER 0x0020 +#define wxSP_PERMIT_UNSPLIT 0x0040 +#define wxSP_LIVE_UPDATE 0x0080 /* * wxFrame extra flags @@ -824,19 +1072,27 @@ typedef wxUint16 wxWord; * wxTabCtrl flags */ #define wxTC_MULTILINE 0x0000 -#define wxTC_RIGHTJUSTIFY 0x0004 -#define wxTC_FIXEDWIDTH 0x0008 -#define wxTC_OWNERDRAW 0x0010 +#define wxTC_RIGHTJUSTIFY 0x0010 +#define wxTC_FIXEDWIDTH 0x0020 +#define wxTC_OWNERDRAW 0x0040 /* * wxNotebook flags */ -#define wxNB_FIXEDWIDTH 0x0008 +#define wxNB_FIXEDWIDTH 0x0010 +#define wxNB_LEFT 0x0020 +#define wxNB_RIGHT 0x0040 +#define wxNB_BOTTOM 0x0080 /* * wxStatusBar95 flags */ -#define wxST_SIZEGRIP 0x0002 +#define wxST_SIZEGRIP 0x0010 + +/* + * wxStaticText flags + */ +#define wxST_NO_AUTORESIZE 0x0001 /* * wxStaticLine flags @@ -855,38 +1111,43 @@ typedef wxUint16 wxWord; #define wxPD_REMAINING_TIME 0x0020 /* - * extended dialog specifiers. these values are stored in a different + * wxHtmlWindow flags + */ +#define wxHW_SCROLLBAR_NEVER 0x0002 +#define wxHW_SCROLLBAR_AUTO 0x0004 + +/* + * extended dialog specifiers. these values are stored in a different * flag and thus do not overlap with other style flags. note that these * values do not correspond to the return values of the dialogs (for - * those values, look at the wxID_XXX defines). + * those values, look at the wxID_XXX defines). */ -#define wxOK 0x00000001 -#define wxYES_NO 0x00000002 -#define wxCANCEL 0x00000004 -#define wxYES 0x00000008 -#define wxNO 0x00000010 -#define wxNO_DEFAULT 0x00000020 + +// wxCENTRE already defined as 0x00000001 +#define wxOK 0x00000004 +#define wxYES_NO 0x00000008 +#define wxCANCEL 0x00000010 +#define wxYES 0x00000020 +#define wxNO 0x00000040 +#define wxNO_DEFAULT 0x00000080 #define wxYES_DEFAULT 0x00000000 // has no effect -#define wxICON_EXCLAMATION 0x00000040 -#define wxICON_HAND 0x00000080 +#define wxICON_EXCLAMATION 0x00000100 +#define wxICON_HAND 0x00000200 #define wxICON_WARNING wxICON_EXCLAMATION #define wxICON_ERROR wxICON_HAND -#define wxICON_QUESTION 0x00000100 -#define wxICON_INFORMATION 0x00000200 +#define wxICON_QUESTION 0x00000400 +#define wxICON_INFORMATION 0x00000800 #define wxICON_STOP wxICON_HAND #define wxICON_ASTERISK wxICON_INFORMATION -#define wxICON_MASK (0x00000040|0x00000080|0x00000100|0x00000200) +#define wxICON_MASK (0x00000100|0x00000200|0x00000400|0x00000800) -#define wxCENTRE 0x00000400 -#define wxCENTER wxCENTRE - -#define wxFORWARD 0x00000800 -#define wxBACKWARD 0x00001000 -#define wxRESET 0x00002000 -#define wxHELP 0x00004000 -#define wxMORE 0x00008000 -#define wxSETUP 0x00010000 +#define wxFORWARD 0x00001000 +#define wxBACKWARD 0x00002000 +#define wxRESET 0x00004000 +#define wxHELP 0x00008000 +#define wxMORE 0x00010000 +#define wxSETUP 0x00020000 // ---------------------------------------------------------------------------- // standard IDs @@ -946,33 +1207,10 @@ typedef wxUint16 wxWord; #define wxID_SETUP 5110 #define wxID_RESET 5111 +// IDs used by generic file dialog (11 consecutive starting from this value) +#define wxID_FILEDLGG 5900 #define wxID_HIGHEST 5999 -// ---------------------------------------------------------------------------- -// Orientations and directions -// ---------------------------------------------------------------------------- - -enum wxOrientation -{ - wxHORIZONTAL = 0x0001, - wxVERTICAL = 0x0002, - wxBOTH = (wxVERTICAL | wxHORIZONTAL) -}; - -enum wxDirection -{ - wxLEFT = 0x0010, - wxRIGHT = 0x0020, - wxUP = 0x0040, - wxDOWN = 0x0080 -}; - -// wxCENTRE = 0x0400 (defined above) - -// centering into frame rather than screen -#define wxCENTER_FRAME 0x0004 - - // ---------------------------------------------------------------------------- // Possible SetSize flags // ---------------------------------------------------------------------------- @@ -1085,28 +1323,29 @@ typedef enum #define wxTOOL_LEFT 3 #define wxTOOL_RIGHT 4 - +// the values of the format constants should be the same as correspondign +// CF_XXX constants in Windows API enum wxDataFormatId { - wxDF_INVALID = 0, - wxDF_TEXT = 1, /* CF_TEXT */ - wxDF_BITMAP = 2, /* CF_BITMAP */ - wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_SYLK = 4, - wxDF_DIF = 5, - wxDF_TIFF = 6, - wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_DIB = 8, /* CF_DIB */ - wxDF_PALETTE = 9, - wxDF_PENDATA = 10, - wxDF_RIFF = 11, - wxDF_WAVE = 12, - wxDF_UNICODETEXT = 13, - wxDF_ENHMETAFILE = 14, - wxDF_FILENAME = 15, /* CF_HDROP */ - wxDF_LOCALE = 16, - wxDF_PRIVATE = 20, - wxDF_MAX + wxDF_INVALID = 0, + wxDF_TEXT = 1, /* CF_TEXT */ + wxDF_BITMAP = 2, /* CF_BITMAP */ + wxDF_METAFILE = 3, /* CF_METAFILEPICT */ + wxDF_SYLK = 4, + wxDF_DIF = 5, + wxDF_TIFF = 6, + wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ + wxDF_DIB = 8, /* CF_DIB */ + wxDF_PALETTE = 9, + wxDF_PENDATA = 10, + wxDF_RIFF = 11, + wxDF_WAVE = 12, + wxDF_UNICODETEXT = 13, + wxDF_ENHMETAFILE = 14, + wxDF_FILENAME = 15, /* CF_HDROP */ + wxDF_LOCALE = 16, + wxDF_PRIVATE = 20, + wxDF_MAX }; /* Virtual keycodes */ @@ -1344,14 +1583,62 @@ typedef enum { wxPRINT_MODE_PRINTER = 3 // Send to printer } wxPrintMode; +// --------------------------------------------------------------------------- +// Macro to specify "All Files" on different platforms +// --------------------------------------------------------------------------- +#if defined(__WXMSW__) +# define wxALL_FILES_PATTERN "*.*" +# define wxALL_FILES gettext_noop("All files (*.*)|*.*") +#else +# define wxALL_FILES_PATTERN "*" +# define wxALL_FILES gettext_noop("All files (*)|*") +#endif // --------------------------------------------------------------------------- // macros that enable wxWindows 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 __WXMSW__ -// Stand-ins for Windows types, to avoid #including all of windows.h +#ifdef __WXMAC__ + +typedef WindowPtr WXHWND; +typedef Handle WXHANDLE; +typedef CIconHandle WXHICON; +//typedef unsigned long WXHFONT; +typedef MenuHandle WXHMENU; +//typedef unsigned long WXHPEN; +//typedef unsigned long WXHBRUSH; +//typedef unsigned long WXHPALETTE; +typedef CursHandle WXHCURSOR; +typedef RgnHandle WXHRGN; +//typedef unsigned long WXHACCEL; +//typedef unsigned long WXHINSTANCE; +typedef GWorldPtr WXHBITMAP; +//typedef unsigned long WXHIMAGELIST; +//typedef unsigned long WXHGLOBAL; +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 void * WXRGNDATA; +//typedef void * WXMSG; +//typedef unsigned long WXHCONV; +//typedef unsigned long WXHKEY; +//typedef void * WXDRAWITEMSTRUCT; +//typedef void * WXMEASUREITEMSTRUCT; +//typedef void * WXLPCREATESTRUCT; +typedef int (*WXFARPROC)(); + +typedef WindowPtr WXWindow; +typedef ControlHandle WXWidget; + +#endif + +#if defined(__WXMSW__) || defined(__WXPM__) +// 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; typedef unsigned long WXHICON; @@ -1371,8 +1658,17 @@ typedef unsigned long WXHDC; typedef unsigned int WXUINT; typedef unsigned long WXDWORD; typedef unsigned short WXWORD; +#ifdef __WXMSW__ typedef unsigned int WXWPARAM; typedef long WXLPARAM; +#else +# define WXWPARAM MPARAM +# define WXLPARAM MPARAM +# define RECT RECTL +# define LOGFONT FATTRS +# define LOWORD SHORT1FROMMP +# define HIWORD SHORT2FROMMP +#endif // __WXMSW__ typedef unsigned long WXCOLORREF; typedef void * WXRGNDATA; typedef void * WXMSG; @@ -1384,6 +1680,28 @@ typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; +#if defined(__WXPM__) +typedef unsigned long WXMPARAM; +typedef unsigned long WXMSGID; +typedef void* WXRESULT; +typedef int (*WXFARPROC)(); +// some windows handles not defined by PM +typedef unsigned long COLORREF; +typedef unsigned long HANDLE; +typedef unsigned long HICON; +typedef unsigned long HFONT; +typedef unsigned long HMENU; +typedef unsigned long HPEN; +typedef unsigned long HBRUSH; +typedef unsigned long HPALETTE; +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 + #if defined(__GNUWIN32__) || defined(__WXWINE__) typedef int (*WXFARPROC)(); #elif defined(__WIN32__) @@ -1393,6 +1711,16 @@ typedef void * WXLPCREATESTRUCT; #endif typedef WXHWND WXWidget; + +#if defined(__BORLANDC__) && !defined(__WIN32__) +#ifndef LPTSTR +#define LPTSTR LPSTR +#endif +#ifndef LPCTSTR +#define LPCTSTR LPSTR +#endif +#endif + #endif // MSW #ifdef __WXMOTIF__ @@ -1423,6 +1751,7 @@ typedef int gint; typedef unsigned guint; typedef unsigned long gulong; typedef void* gpointer; +typedef struct _GSList GSList; /* Stand-ins for GDK types */ typedef gulong GdkAtom;