X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a23fd0e1d1329a4a258b4defb3e0b0001b700c6e..d098a3572c1812d7a976582a59bf29e529c8a424:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 47dd0a3d46..e35d3e8c97 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -13,14 +13,9 @@ #define _WX_DEFS_H_ #ifdef __GNUG__ -#pragma interface "defs.h" + #pragma interface "defs.h" #endif -#include - -#include "wx/setup.h" -#include "wx/version.h" - // ---------------------------------------------------------------------------- // compiler and OS identification // ---------------------------------------------------------------------------- @@ -28,11 +23,10 @@ // OS #if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ defined(__LINUX__) || defined(__sgi ) || \ - defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) + defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \ + defined(__EMX__) - #ifndef __UNIX__ - #define __UNIX__ - #endif // Unix + #define __UNIX_LIKE__ // Helps SGI compilation, apparently #ifdef __SGI__ @@ -53,12 +47,25 @@ #endif #endif // Sun - #ifdef __hpux + #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__ @@ -77,12 +84,26 @@ #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 +# 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__ // suppress some Salford C++ warnings @@ -94,6 +115,14 @@ # 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 + // Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, // so define it ourselves #ifdef __DECCXX @@ -105,14 +134,25 @@ #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))) +# define wxUSE_NORLANDER_HEADERS 1 +#endif + + ////////////////////////////////////////////////////////////////////////////////// // Currently Only MS-Windows/NT, XView and Motif are supported // -#if defined(__HPUX__) && !defined(__WXMOTIF__) -# define __WXMOTIF__ +#if defined(__HPUX__) && !defined(__WXGTK__) + #ifndef __WXMOTIF__ + #define __WXMOTIF__ + #endif // __WXMOTIF__ #endif + #if defined(__WXMOTIF__) -# define __X__ + #define __X__ #endif #ifdef __WXMSW__ @@ -121,6 +161,18 @@ #define __WIN32__ #endif +#ifdef __WXWINE__ + #ifndef __WIN32__ + #define __WIN32__ + #endif + #ifndef __WIN95__ + #define __WIN95__ + #endif + #ifndef STRICT + #define STRICT + #endif +#endif + #ifndef __WIN32__ #define __WIN16__ #endif @@ -138,11 +190,31 @@ // 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__) && \ +#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXPM__) && \ !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__) - #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]" + #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 + +// 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" + // ============================================================================ // non portable C++ features // ============================================================================ @@ -151,7 +223,7 @@ // check for native bool type and TRUE/FALSE constants // ---------------------------------------------------------------------------- -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) +#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || defined(__WXSTUBS__) // Bool is now obsolete, use bool instead // typedef int Bool; @@ -171,13 +243,19 @@ // (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) // in VC++ 4.2 the bool keyword is reserved (hence can't be typedefed) // but not implemented, so we must #define it #define bool unsigned int + #elif defined(__VISUALC__) && (__VISUALC__ == 1010) + // For VisualC++ 4.1, we need to define + // bool as something between 4.0 & 5.0... + typedef unsigned int wxbool; + #define bool wxbool + #define HAVE_BOOL #elif defined(__VISUALC__) && (__VISUALC__ > 1020) // VC++ supports bool since 4.2 #define HAVE_BOOL @@ -190,6 +268,9 @@ #elif defined(__GNUWIN32__) // Cygwin supports bool #define HAVE_BOOL + #elif defined(__VISAGECPP__) + typedef unsigned long bool; + #define HAVE_BOOL #endif // compilers #endif // HAVE_BOOL @@ -200,8 +281,13 @@ typedef unsigned int bool; #endif // bool -typedef unsigned char wxByte; 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 +// the cast itself is recommended. Note that this type can't be unsigned +// because -1 is a valid (and largely used) value for window id. typedef int wxWindowID; // Macro to cut down on compiler warnings. @@ -215,7 +301,7 @@ typedef int wxWindowID; * Making or using wxWindows as a Windows DLL */ -#ifdef __WXMSW__ +#if defined(__WXMSW__) // _declspec works in BC++ 5 and later, as well as VC++ #if defined(__VISUALC__) || defined(__BORLANDC__) @@ -234,6 +320,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 @@ -332,8 +434,221 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; // Callback function type definition typedef void (*wxFunction) (wxObject&, wxEvent&); +// ---------------------------------------------------------------------------- +// OS mnemonics -- Identify the running OS (useful for Windows) +// ---------------------------------------------------------------------------- + +// Not all platforms are currently available or supported +enum +{ + wxUNKNOWN_PLATFORM, + wxCURSES, // Text-only CURSES + wxXVIEW_X, // Sun's XView OpenLOOK toolkit + wxMOTIF_X, // OSF Motif 1.x.x + wxCOSE_X, // OSF Common Desktop Environment + wxNEXTSTEP, // NeXTStep + wxMACINTOSH, // Apple System 7 and 8 + wxBEOS, // BeOS + wxGTK, // GTK on X + wxGTK_WIN32, // GTK on Win32 + wxGTK_OS2, // GTK on OS/2 + wxGTK_BEOS, // GTK on BeOS + wxQT, // Qt + wxGEOS, // GEOS + wxOS2_PM, // OS/2 Workplace + wxWINDOWS, // Windows or WfW + wxPENWINDOWS, // Windows for Pen Computing + wxWINDOWS_NT, // Windows NT + wxWIN32S, // Windows 32S API + wxWIN95, // Windows 95 + wxWIN386, // Watcom 32-bit supervisor modus + wxMGL_UNIX, // MGL with direct hardware access + wxMGL_X, // MGL on X + wxMGL_WIN32, // MGL on Win32 + wxMGL_OS2 // MGL on OS/2 +}; + +// ---------------------------------------------------------------------------- +// machine specific settings +// ---------------------------------------------------------------------------- + +// fixed length types + +#define wxInt8 char signed +#define wxUint8 char unsigned + +#ifdef __WIN16__ +#define wxInt16 int signed +#define wxUint16 int unsigned +#define wxInt32 long signed +#define wxUint32 long unsigned +#endif + +#ifdef __WIN32__ +#define wxInt16 short signed +#define wxUint16 short unsigned +#define wxInt32 int signed +#define wxUint32 int unsigned +#endif + +#ifdef __WXMAC__ +#define wxInt16 short signed +#define wxUint16 short unsigned +#define wxInt32 int signed +#define wxUint32 int unsigned +#endif + +#ifdef __WXOS2__ +#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... */ + #define wxInt16 short signed + #define wxUint16 short unsigned + #define wxInt32 int signed + #define wxUint32 int unsigned + #else + #define wxInt16 short signed + #define wxUint16 short unsigned + #define wxInt32 int signed + #define wxUint32 int unsigned + #endif +#endif + +#define wxByte wxUint8 +#define wxWord wxUint16 + +// byte sex + +#define wxBIG_ENDIAN 4321 +#define wxLITTLE_ENDIAN 1234 +#define wxPDP_ENDIAN 3412 + +#ifdef WORDS_BIGENDIAN +#define wxBYTE_ORDER wxBIG_ENDIAN +#else +#define wxBYTE_ORDER wxLITTLE_ENDIAN +#endif + +// byte swapping + +#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) | \ + (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ + (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ + (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) + +#define wxINT32_SWAP_ALWAYS(val) \ + ((wxInt32) ( \ + (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ + (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ + (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ + (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) + +// machine specific byte swapping + +#ifdef WORDS_BIGENDIAN + #define wxUINT16_SWAP_ON_BE(val) wxUINT16_SWAP_ALWAYS(val) + #define wxINT16_SWAP_ON_BE(val) wxINT16_SWAP_ALWAYS(val) + #define wxUINT16_SWAP_ON_LE(val) (val) + #define wxINT16_SWAP_ON_LE(val) (val) + #define wxUINT32_SWAP_ON_BE(val) wxUINT32_SWAP_ALWAYS(val) + #define wxINT32_SWAP_ON_BE(val) wxINT32_SWAP_ALWAYS(val) + #define wxUINT32_SWAP_ON_LE(val) (val) + #define wxINT32_SWAP_ON_LE(val) (val) +#else + #define wxUINT16_SWAP_ON_LE(val) wxUINT16_SWAP_ALWAYS(val) + #define wxINT16_SWAP_ON_LE(val) wxINT16_SWAP_ALWAYS(val) + #define wxUINT16_SWAP_ON_BE(val) (val) + #define wxINT16_SWAP_ON_BE(val) (val) + #define wxUINT32_SWAP_ON_LE(val) wxUINT32_SWAP_ALWAYS(val) + #define wxINT32_SWAP_ON_LE(val) wxINT32_SWAP_ALWAYS(val) + #define wxUINT32_SWAP_ON_BE(val) (val) + #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 = 0x0100, + wxALIGN_CENTRE = wxALIGN_CENTER, + wxALIGN_LEFT = wxALIGN_NOT, + wxALIGN_TOP = wxALIGN_NOT, + wxALIGN_RIGHT = 0x0200, + wxALIGN_BOTTOM = 0x0400 +}; + +enum wxStretch +{ + wxSTRETCH_NOT = 0x0000, + wxSHRINK = 0x1000, + wxGROW = 0x2000, + wxEXPAND = wxGROW +}; + +// ---------------------------------------------------------------------------- +// Window style flags +// ---------------------------------------------------------------------------- + /* - * Window style flags. * Values are chosen so they can be |'ed in a bit list. * Some styles are used across more than one group, * so the values mustn't clash with others in the group. @@ -349,27 +664,27 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * Window (Frame/dialog/subwindow/panel item) style flags */ -#define wxVSCROLL 0x80000000 -#define wxHSCROLL 0x40000000 -#define wxCAPTION 0x20000000 +#define wxVSCROLL 0x80000000 +#define wxHSCROLL 0x40000000 +#define wxCAPTION 0x20000000 // New styles -#define wxDOUBLE_BORDER 0x10000000 -#define wxSUNKEN_BORDER 0x08000000 -#define wxRAISED_BORDER 0x04000000 -#define wxBORDER 0x02000000 -#define wxSIMPLE_BORDER 0x02000000 -#define wxSTATIC_BORDER 0x01000000 -#define wxTRANSPARENT_WINDOW 0x00100000 -#define wxNO_BORDER 0x00200000 - -#define wxUSER_COLOURS 0x00800000 +#define wxDOUBLE_BORDER 0x10000000 +#define wxSUNKEN_BORDER 0x08000000 +#define wxRAISED_BORDER 0x04000000 +#define wxBORDER 0x02000000 +#define wxSIMPLE_BORDER wxBORDER +#define wxSTATIC_BORDER 0x01000000 +#define wxTRANSPARENT_WINDOW 0x00100000 +#define wxNO_BORDER 0x00200000 + +#define wxUSER_COLOURS 0x00800000 // Override CTL3D etc. control colour processing to // allow own background colour // OBSOLETE - use wxNO_3D instead -#define wxNO_3D 0x00800000 +#define wxNO_3D 0x00800000 // Override CTL3D or native 3D styles for children -#define wxCLIP_CHILDREN 0x00400000 +#define wxCLIP_CHILDREN 0x00400000 // Clip children when painting, which reduces flicker in // e.g. frames and splitter windows, but can't be used in // a panel where a static box must be 'transparent' (panel @@ -377,23 +692,28 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); // Add this style to a panel to get tab traversal working // outside of dialogs. -#define wxTAB_TRAVERSAL 0x00080000 +#define wxTAB_TRAVERSAL 0x00080000 + +// Add this style if the control wants to get all keyboard messages (under +// Windows, it won't normally get the dialog navigation key events) +#define wxWANTS_CHARS 0x00040000 -// Orientations -#define wxHORIZONTAL 0x01 -#define wxVERTICAL 0x02 -#define wxBOTH (wxVERTICAL|wxHORIZONTAL) -#define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */ +// Make window retained (mostly Motif, I think) +#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 /* - * Frame/dialog style flags + * wxFrame/wxDialog style flags */ #define wxSTAY_ON_TOP 0x8000 #define wxICONIZE 0x4000 #define wxMINIMIZE wxICONIZE #define wxMAXIMIZE 0x2000 #define wxTHICK_FRAME 0x1000 -#define wxSYSTEM_MENU 0x0800 +#define wxSYSTEM_MENU 0x0800 #define wxMINIMIZE_BOX 0x0400 #define wxMAXIMIZE_BOX 0x0200 #define wxTINY_CAPTION_HORIZ 0x0100 @@ -402,7 +722,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxRESIZE_BORDER 0x0040 #define wxDIALOG_MODAL 0x0020 #define wxDIALOG_MODELESS 0x0000 -/* Add for normal Windows frame behaviour */ +// Add for normal Windows frame behaviour #define wxFRAME_FLOAT_ON_PARENT 0x0020 @@ -410,35 +730,41 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE #endif -#define wxDEFAULT_FRAME_STYLE (wxSYSTEM_MENU|wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) +#define wxDEFAULT_FRAME_STYLE \ + (wxSYSTEM_MENU | wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) #ifdef __WXMSW__ # define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) #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) #endif - /* - * Subwindow style flags + * wxExtDialog style flags */ -#define wxRETAINED 0x0001 -#define wxBACKINGSTORE wxRETAINED -// wxCanvas or wxPanel can optionally have a thick frame under MS Windows. -// #define wxTHICK_FRAME 0x1000 +#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 /* * wxToolBar style flags */ -#define wxTB_3DBUTTONS 0x8000 -#define wxTB_HORIZONTAL 0x0002 -#define wxTB_VERTICAL 0x0004 +#define wxTB_3DBUTTONS 0x8000 +#define wxTB_HORIZONTAL 0x0002 +#define wxTB_VERTICAL 0x0004 // Flatbar/Coolbar under Win98/ GTK 1.2 -#define wxTB_FLAT 0x0008 +#define wxTB_FLAT 0x0008 // use native docking under GTK -#define wxTB_DOCKABLE 0x0010 +#define wxTB_DOCKABLE 0x0010 /* * wxMenuBar style flags @@ -446,18 +772,16 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); // use native docking #define wxMB_DOCKABLE 0x0001 +/* + * wxMenu style flags + */ +#define wxMENU_TEAROFF 0x0001 /* * 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 @@ -482,6 +806,11 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 @@ -492,19 +821,18 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 /* @@ -513,17 +841,17 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxGA_PROGRESSBAR 0x0004 #define wxGA_HORIZONTAL wxHORIZONTAL #define wxGA_VERTICAL wxVERTICAL -/* Windows only */ -#define wxGA_SMOOTH 0x0008 +// Windows only +#define wxGA_SMOOTH 0x0010 /* * 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 @@ -552,6 +880,11 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxTR_EDIT_LABELS 0x0008 #define wxTR_LINES_AT_ROOT 0x0010 +#define wxTR_SINGLE 0x0000 +#define wxTR_MULTIPLE 0x0020 +#define wxTR_EXTENDED 0x0040 +#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080 + /* * wxListCtrl flags */ @@ -583,7 +916,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxSpinButton flags */ - #define wxSP_VERTICAL 0x0004 #define wxSP_HORIZONTAL 0x0008 #define wxSP_ARROW_KEYS 0x0010 @@ -592,50 +924,175 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxSplitterWindow flags */ - #define wxSP_NOBORDER 0x0000 #define wxSP_3D 0x0004 #define wxSP_BORDER 0x0008 +#define wxSP_PERMIT_UNSPLIT 0x0010 +#define wxSP_LIVE_UPDATE 0x0020 /* * wxFrame extra flags */ - // No title on taskbar #define wxFRAME_TOOL_WINDOW 0x0004 /* * wxTabCtrl flags */ - -#define wxTC_MULTILINE 0x0000 -#define wxTC_RIGHTJUSTIFY 0x0004 -#define wxTC_FIXEDWIDTH 0x0008 -#define wxTC_OWNERDRAW 0x0010 +#define wxTC_MULTILINE 0x0000 +#define wxTC_RIGHTJUSTIFY 0x0004 +#define wxTC_FIXEDWIDTH 0x0008 +#define wxTC_OWNERDRAW 0x0010 /* * wxNotebook flags */ -#define wxNB_FIXEDWIDTH 0x0008 +#define wxNB_FIXEDWIDTH 0x0008 /* * wxStatusBar95 flags */ - -#define wxST_SIZEGRIP 0x0002 +#define wxST_SIZEGRIP 0x0002 /* * wxStaticLine flags */ -#define wxLI_HORIZONTAL wxHORIZONTAL -#define wxLI_VERTICAL wxVERTICAL +#define wxLI_HORIZONTAL wxHORIZONTAL +#define wxLI_VERTICAL wxVERTICAL +/* + * wxProgressDialog flags + */ +#define wxPD_CAN_ABORT 0x0001 +#define wxPD_APP_MODAL 0x0002 +#define wxPD_AUTO_HIDE 0x0004 +#define wxPD_ELAPSED_TIME 0x0008 +#define wxPD_ESTIMATED_TIME 0x0010 +#define wxPD_REMAINING_TIME 0x0020 +/* + * wxHtmlWindow flags + */ +#define wxHW_SCROLLBAR_NEVER 0x0002 +#define wxHW_SCROLLBAR_AUTO 0x0004 /* - * GDI descriptions + * 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). */ +// 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 0x00000100 +#define wxICON_HAND 0x00000200 +#define wxICON_WARNING wxICON_EXCLAMATION +#define wxICON_ERROR wxICON_HAND +#define wxICON_QUESTION 0x00000400 +#define wxICON_INFORMATION 0x00000800 +#define wxICON_STOP wxICON_HAND +#define wxICON_ASTERISK wxICON_INFORMATION +#define wxICON_MASK (0x00000100|0x00000200|0x00000400|0x00000800) + +#define wxFORWARD 0x00001000 +#define wxBACKWARD 0x00002000 +#define wxRESET 0x00004000 +#define wxHELP 0x00008000 +#define wxMORE 0x00010000 +#define wxSETUP 0x00020000 + +// ---------------------------------------------------------------------------- +// standard IDs +// ---------------------------------------------------------------------------- + +// Standard menu IDs +#define wxID_LOWEST 4999 + +#define wxID_OPEN 5000 +#define wxID_CLOSE 5001 +#define wxID_NEW 5002 +#define wxID_SAVE 5003 +#define wxID_SAVEAS 5004 +#define wxID_REVERT 5005 +#define wxID_EXIT 5006 +#define wxID_UNDO 5007 +#define wxID_REDO 5008 +#define wxID_HELP 5009 +#define wxID_PRINT 5010 +#define wxID_PRINT_SETUP 5011 +#define wxID_PREVIEW 5012 +#define wxID_ABOUT 5013 +#define wxID_HELP_CONTENTS 5014 +#define wxID_HELP_COMMANDS 5015 +#define wxID_HELP_PROCEDURES 5016 +#define wxID_HELP_CONTEXT 5017 + +#define wxID_CUT 5030 +#define wxID_COPY 5031 +#define wxID_PASTE 5032 +#define wxID_CLEAR 5033 +#define wxID_FIND 5034 +#define wxID_DUPLICATE 5035 +#define wxID_SELECTALL 5036 + +#define wxID_FILE1 5050 +#define wxID_FILE2 5051 +#define wxID_FILE3 5052 +#define wxID_FILE4 5053 +#define wxID_FILE5 5054 +#define wxID_FILE6 5055 +#define wxID_FILE7 5056 +#define wxID_FILE8 5057 +#define wxID_FILE9 5058 + +// Standard button IDs +#define wxID_OK 5100 +#define wxID_CANCEL 5101 +#define wxID_APPLY 5102 +#define wxID_YES 5103 +#define wxID_NO 5104 +#define wxID_STATIC 5105 +#define wxID_FORWARD 5106 +#define wxID_BACKWARD 5107 +#define wxID_DEFAULT 5108 +#define wxID_MORE 5109 +#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 + +// ---------------------------------------------------------------------------- +// Possible SetSize flags +// ---------------------------------------------------------------------------- + +// Use internally-calculated width if -1 +#define wxSIZE_AUTO_WIDTH 0x0001 +// Use internally-calculated height if -1 +#define wxSIZE_AUTO_HEIGHT 0x0002 +// Use internally-calculated width and height if each is -1 +#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT) +// Ignore missing (-1) dimensions (use existing). +// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code. +#define wxSIZE_USE_EXISTING 0x0000 +// Allow -1 as a valid position +#define wxSIZE_ALLOW_MINUS_ONE 0x0004 +// Don't do parent client adjustments (for implementation only) +#define wxSIZE_NO_ADJUSTMENTS 0x0008 + +// ---------------------------------------------------------------------------- +// GDI descriptions +// ---------------------------------------------------------------------------- + enum { // Text font families wxDEFAULT = 70, @@ -712,59 +1169,22 @@ typedef enum wxSRC_AND // source _bitmap_ AND destination } form_ops_t; -// Flood styles +/* Flood styles */ #define wxFLOOD_SURFACE 1 #define wxFLOOD_BORDER 2 -// Polygon filling mode +/* Polygon filling mode */ #define wxODDEVEN_RULE 1 #define wxWINDING_RULE 2 -// ToolPanel in wxFrame +/* ToolPanel in wxFrame */ #define wxTOOL_TOP 1 #define wxTOOL_BOTTOM 2 #define wxTOOL_LEFT 3 #define wxTOOL_RIGHT 4 -// Dialog specifiers/return values - -#define wxOK 0x0001 -#define wxYES_NO 0x0002 -#define wxCANCEL 0x0004 -#define wxYES 0x0008 -#define wxNO 0x0010 - -#define wxICON_EXCLAMATION 0x0020 -#define wxICON_HAND 0x0040 -#define wxICON_QUESTION 0x0080 -#define wxICON_INFORMATION 0x0100 - -#define wxICON_STOP wxICON_HAND -#define wxICON_ASTERISK wxICON_INFORMATION -#define wxICON_MASK (0x0020|0x0040|0x0080|0x0100) - -#define wxCENTRE 0x0200 -#define wxCENTER wxCENTRE - -// Possible SetSize flags - -// Use internally-calculated width if -1 -#define wxSIZE_AUTO_WIDTH 0x0001 -// Use internally-calculated height if -1 -#define wxSIZE_AUTO_HEIGHT 0x0002 -// Use internally-calculated width and height if each is -1 -#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT) -// Ignore missing (-1) dimensions (use existing). -// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code. -#define wxSIZE_USE_EXISTING 0x0000 -// Allow -1 as a valid position -#define wxSIZE_ALLOW_MINUS_ONE 0x0004 -// Don't do parent client adjustments (for implementation only) -#define wxSIZE_NO_ADJUSTMENTS 0x0008 - -#ifndef __WXGTK__ -enum wxDataFormat +enum wxDataFormatId { wxDF_INVALID = 0, wxDF_TEXT = 1, /* CF_TEXT */ @@ -783,165 +1203,121 @@ enum wxDataFormat wxDF_ENHMETAFILE = 14, wxDF_FILENAME = 15, /* CF_HDROP */ wxDF_LOCALE = 16, - wxDF_PRIVATE = 20 + wxDF_PRIVATE = 20, + wxDF_MAX }; -#endif - /* Virtual keycodes */ enum wxKeyCode { - WXK_BACK = 8, - WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - WXK_SPACE = 32, - WXK_DELETE = 127, - - WXK_START = 300, - WXK_LBUTTON, - WXK_RBUTTON, - WXK_CANCEL, - WXK_MBUTTON, - WXK_CLEAR, - WXK_SHIFT, - WXK_CONTROL, - WXK_MENU, - WXK_PAUSE, - WXK_CAPITAL, - WXK_PRIOR, /* Page up */ - WXK_NEXT, /* Page down */ - WXK_END, - WXK_HOME, - WXK_LEFT, - WXK_UP, - WXK_RIGHT, - WXK_DOWN, - WXK_SELECT, - WXK_PRINT, - WXK_EXECUTE, - WXK_SNAPSHOT, - WXK_INSERT, - WXK_HELP, - WXK_NUMPAD0, - WXK_NUMPAD1, - WXK_NUMPAD2, - WXK_NUMPAD3, - WXK_NUMPAD4, - WXK_NUMPAD5, - WXK_NUMPAD6, - WXK_NUMPAD7, - WXK_NUMPAD8, - WXK_NUMPAD9, - WXK_MULTIPLY, - WXK_ADD, - WXK_SEPARATOR, - WXK_SUBTRACT, - WXK_DECIMAL, - WXK_DIVIDE, - WXK_F1, - WXK_F2, - WXK_F3, - WXK_F4, - WXK_F5, - WXK_F6, - WXK_F7, - WXK_F8, - WXK_F9, - WXK_F10, - WXK_F11, - WXK_F12, - WXK_F13, - WXK_F14, - WXK_F15, - WXK_F16, - WXK_F17, - WXK_F18, - WXK_F19, - WXK_F20, - WXK_F21, - WXK_F22, - WXK_F23, - WXK_F24, - WXK_NUMLOCK, - WXK_SCROLL, - WXK_PAGEUP, - WXK_PAGEDOWN + WXK_BACK = 8, + WXK_TAB = 9, + WXK_RETURN = 13, + WXK_ESCAPE = 27, + WXK_SPACE = 32, + WXK_DELETE = 127, + + WXK_START = 300, + WXK_LBUTTON, + WXK_RBUTTON, + WXK_CANCEL, + WXK_MBUTTON, + WXK_CLEAR, + WXK_SHIFT, + WXK_ALT, + WXK_CONTROL, + WXK_MENU, + WXK_PAUSE, + WXK_CAPITAL, + WXK_PRIOR, /* Page up */ + WXK_NEXT, /* Page down */ + WXK_END, + WXK_HOME, + WXK_LEFT, + WXK_UP, + WXK_RIGHT, + WXK_DOWN, + WXK_SELECT, + WXK_PRINT, + WXK_EXECUTE, + WXK_SNAPSHOT, + WXK_INSERT, + WXK_HELP, + WXK_NUMPAD0, + WXK_NUMPAD1, + WXK_NUMPAD2, + WXK_NUMPAD3, + WXK_NUMPAD4, + WXK_NUMPAD5, + WXK_NUMPAD6, + WXK_NUMPAD7, + WXK_NUMPAD8, + WXK_NUMPAD9, + WXK_MULTIPLY, + WXK_ADD, + WXK_SEPARATOR, + WXK_SUBTRACT, + WXK_DECIMAL, + WXK_DIVIDE, + WXK_F1, + WXK_F2, + WXK_F3, + WXK_F4, + WXK_F5, + WXK_F6, + WXK_F7, + WXK_F8, + WXK_F9, + WXK_F10, + WXK_F11, + WXK_F12, + WXK_F13, + WXK_F14, + WXK_F15, + WXK_F16, + WXK_F17, + WXK_F18, + WXK_F19, + WXK_F20, + WXK_F21, + WXK_F22, + WXK_F23, + WXK_F24, + WXK_NUMLOCK, + WXK_SCROLL, + WXK_PAGEUP, + WXK_PAGEDOWN, + + WXK_NUMPAD_SPACE, + WXK_NUMPAD_TAB, + WXK_NUMPAD_ENTER, + WXK_NUMPAD_F1, + WXK_NUMPAD_F2, + WXK_NUMPAD_F3, + WXK_NUMPAD_F4, + WXK_NUMPAD_HOME, + WXK_NUMPAD_LEFT, + WXK_NUMPAD_UP, + WXK_NUMPAD_RIGHT, + WXK_NUMPAD_DOWN, + WXK_NUMPAD_PRIOR, + WXK_NUMPAD_PAGEUP, + WXK_NUMPAD_NEXT, + WXK_NUMPAD_PAGEDOWN, + WXK_NUMPAD_END, + WXK_NUMPAD_BEGIN, + WXK_NUMPAD_INSERT, + WXK_NUMPAD_DELETE, + WXK_NUMPAD_EQUAL, + WXK_NUMPAD_MULTIPLY, + WXK_NUMPAD_ADD, + WXK_NUMPAD_SEPARATOR, + WXK_NUMPAD_SUBTRACT, + WXK_NUMPAD_DECIMAL, + WXK_NUMPAD_DIVIDE }; -/* OS mnemonics -- Identify the running OS (useful for Windows) - * [Not all platforms are currently available or supported] */ -enum -{ - wxUNKNOWN_PLATFORM, - wxCURSES, // Text-only CURSES - wxXVIEW_X, // Sun's XView OpenLOOK toolkit - wxMOTIF_X, // OSF Motif 1.x.x - wxCOSE_X, // OSF Common Desktop Environment - wxNEXTSTEP, // NeXTStep - wxMACINTOSH, // Apple System 7 - wxGTK, // GTK - wxQT, // Qt - wxGEOS, // GEOS - wxOS2_PM, // OS/2 Workplace - wxWINDOWS, // Windows or WfW - wxPENWINDOWS, // Windows for Pen Computing - wxWINDOWS_NT, // Windows NT - wxWIN32S, // Windows 32S API - wxWIN95, // Windows 95 - wxWIN386 // Watcom 32-bit supervisor modus -}; - -/* Standard menu identifiers */ -#define wxID_LOWEST 4999 - -#define wxID_OPEN 5000 -#define wxID_CLOSE 5001 -#define wxID_NEW 5002 -#define wxID_SAVE 5003 -#define wxID_SAVEAS 5004 -#define wxID_REVERT 5005 -#define wxID_EXIT 5006 -#define wxID_UNDO 5007 -#define wxID_REDO 5008 -#define wxID_HELP 5009 -#define wxID_PRINT 5010 -#define wxID_PRINT_SETUP 5011 -#define wxID_PREVIEW 5012 -#define wxID_ABOUT 5013 -#define wxID_HELP_CONTENTS 5014 -#define wxID_HELP_COMMANDS 5015 -#define wxID_HELP_PROCEDURES 5016 -#define wxID_HELP_CONTEXT 5017 - -#define wxID_CUT 5030 -#define wxID_COPY 5031 -#define wxID_PASTE 5032 -#define wxID_CLEAR 5033 -#define wxID_FIND 5034 -#define wxID_DUPLICATE 5035 -#define wxID_SELECTALL 5036 - -#define wxID_FILE1 5050 -#define wxID_FILE2 5051 -#define wxID_FILE3 5052 -#define wxID_FILE4 5053 -#define wxID_FILE5 5054 -#define wxID_FILE6 5055 -#define wxID_FILE7 5056 -#define wxID_FILE8 5057 -#define wxID_FILE9 5058 - -#define wxID_OK 5100 -#define wxID_CANCEL 5101 -#define wxID_APPLY 5102 -#define wxID_YES 5103 -#define wxID_NO 5104 -#define wxID_STATIC 5105 - -#define wxID_HIGHEST 5999 - // Mapping modes (as per Windows) #define wxMM_TEXT 1 #define wxMM_LOMETRIC 2 @@ -1066,9 +1442,14 @@ typedef enum { wxPRINT_MODE_PRINTER = 3 // Send to printer } wxPrintMode; +// --------------------------------------------------------------------------- +// 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 +#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; @@ -1101,7 +1482,28 @@ typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; -#ifdef __GNUWIN32__ +#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 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__) typedef int (__stdcall *WXFARPROC)(); @@ -1129,6 +1531,9 @@ typedef void* WXFont; typedef void* WXImage; typedef void* WXCursor; typedef void* WXFontList; + +typedef unsigned long Atom; /* this might fail on a few architectures */ + #endif // Motif #ifdef __WXGTK__ @@ -1137,6 +1542,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;