X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/818e52c20151ce0c22aa752ccbab94f1ae7afc99..119143528d2ba3dc77ca533aece7982fdcb31bf5:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 5aac4cbde8..2df71e010d 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -26,7 +26,10 @@ // ---------------------------------------------------------------------------- // OS -#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__) +#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ + defined(__LINUX__) || defined(__sgi ) || \ + defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) + #ifndef __UNIX__ #define __UNIX__ #endif // Unix @@ -49,6 +52,13 @@ #endif // Sun CC #endif #endif // Sun + + #if defined(__hpux) && !defined(__HPUX__) + #define __HPUX__ + #endif // HP-UX + +#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) ) + // MacOS #else // Windows #ifndef __WINDOWS__ #define __WINDOWS__ @@ -69,9 +79,11 @@ // suppress some Visual C++ warnings #ifdef __VISUALC__ -# pragma warning(disable:4244) // cobversion from double to float +# pragma warning(disable:4244) // conversion from double to float # pragma warning(disable:4100) // unreferenced formal parameter -#endif +# pragma warning(disable:4511) // copy ctor couldn't be generated +# pragma warning(disable:4512) // operator=() couldn't be generated +#endif // __VISUALC__ // suppress some Salford C++ warnings #ifdef __SALFORDC__ @@ -80,16 +92,30 @@ # pragma suppress 61 // enum has no name (doesn't suppress!) # pragma suppress 106 // unnamed, unused parameter # pragma suppress 571 // Virtual function hiding -#endif +#endif // __SALFORDC__ + +// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, +// so define it ourselves +#ifdef __DECCXX + #define __cplusplus +#endif // __DECCXX + +// Resolves linking problems under HP-UX +#if defined(__HPUX__) && defined(__GNUG__) + #define va_list __gnuc_va_list +#endif // HP-UX ////////////////////////////////////////////////////////////////////////////////// // 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__ @@ -98,6 +124,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 @@ -114,86 +152,89 @@ // Make sure the environment is set correctly #if defined(__WXMSW__) && defined(__X__) -# error "Target can't be both X and Windows" + #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__]" + #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]" #endif -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) +// ============================================================================ +// non portable C++ features +// ============================================================================ -// Bool is now obsolete, use bool instead -// typedef int Bool; +// ---------------------------------------------------------------------------- +// check for native bool type and TRUE/FALSE constants +// ---------------------------------------------------------------------------- -#ifndef TRUE -# define TRUE 1 -# define FALSE 0 -# define Bool_DEFINED -#endif +#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) + // Bool is now obsolete, use bool instead + // typedef int Bool; + #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 - -// VC++ 4.0 is 1000. - -// Add more tests here for compilers that don't already define bool. -#if defined( __MWERKS__ ) - #if (__MWERKS__ < 0x1000) || !__option(bool) - typedef unsigned int bool; + #ifndef TRUE + #define TRUE 1 + #define FALSE 0 #endif -#elif defined(__SC__) - typedef unsigned int bool; -#elif defined(__SALFORDC__) - typedef unsigned int bool; -#elif defined(__VISUALC__) && (__VISUALC__ <= 1000) - typedef unsigned int bool; -#elif defined(__VISUALC__) && (__VISUALC__ == 1020) - #define bool unsigned int -#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500) +#endif // TRUE/FALSE + +// 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) + #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 + #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x500) + // Borland 5.0+ supports bool + #define HAVE_BOOL + #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100) + // Watcom 11+ supports bool + #define HAVE_BOOL + #elif defined(__GNUWIN32__) + // Cygwin supports bool + #define HAVE_BOOL + #endif // compilers +#endif // HAVE_BOOL + +#if !defined(HAVE_BOOL) && !defined(bool) + // 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; -#elif defined(__WATCOMC__) -// typedef unsigned int bool; - - #if __WATCOMC__<1100 - typedef enum _tagbool { - false, - true - } bool ; - #endif - -#elif defined(__SUNCC__) - #ifdef __SUNPRO_CC - // starting from version 5.0 Sun CC understands 'bool' - #if __SUNPRO_CC <= 0x0420 - // If we use int, we get identically overloaded functions in config.cpp - typedef unsigned char bool; - #endif // Sun CC version - #else - #error "Unknown compiler: only Sun's CC and gcc are currently recognised." - #endif // Sun CC -#endif +#endif // bool -#if ( defined(__VISUALC__) && (__VISUALC__ <= 800) ) || defined(__GNUWIN32__) || (defined(__BORLANDC__) && defined(__WIN16__)) || defined(__SC__) || defined(__SALFORDC__) -// Not a good idea, because later system files (e.g. windows.h) -// may try to define it. Use wxByte instead. -// #define byte unsigned char -#endif - -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. #if REMOVE_UNUSED_ARG -#define WXUNUSED(identifier) /* identifier */ + #define WXUNUSED(identifier) /* identifier */ #else // stupid, broken compiler -#define WXUNUSED(identifier) identifier + #define WXUNUSED(identifier) identifier #endif /* @@ -202,31 +243,16 @@ typedef int wxWindowID; #ifdef __WXMSW__ -#ifdef __BORLANDC__ +// _declspec works in BC++ 5 and later, as well as VC++ +#if defined(__VISUALC__) || defined(__BORLANDC__) # ifdef WXMAKINGDLL -# define WXDLLEXPORT __export -# define WXDLLEXPORT_DATA(type) type __export -# define WXDLLEXPORT_CTORFN __export -# elif defined(WXUSINGDLL) -# define WXDLLEXPORT __import -# define WXDLLEXPORT_DATA(type) type __import +# define WXDLLEXPORT _declspec( dllexport ) +# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type # define WXDLLEXPORT_CTORFN -# else -# define WXDLLEXPORT -# define WXDLLEXPORT_DATA(type) type -# define WXDLLEXPORT_CTORFN -# endif - -#else - -# ifdef WXMAKINGDLL -# define WXDLLEXPORT __declspec( dllexport ) -# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type -# define WXDLLEXPORT_CTORFN // __declspec( dllexport ) # elif defined(WXUSINGDLL) -# define WXDLLEXPORT __declspec( dllimport ) -# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type +# define WXDLLEXPORT _declspec( dllimport ) +# define WXDLLEXPORT_DATA(type) _declspec( dllimport ) type # define WXDLLEXPORT_CTORFN # else # define WXDLLEXPORT @@ -234,15 +260,18 @@ typedef int wxWindowID; # define WXDLLEXPORT_CTORFN # endif -#endif - #else -// Non-Windows # define WXDLLEXPORT # define WXDLLEXPORT_DATA(type) type # define WXDLLEXPORT_CTORFN #endif +#else // !Windows +# define WXDLLEXPORT +# define WXDLLEXPORT_DATA(type) type +# define WXDLLEXPORT_CTORFN +#endif // Win/!Win + // For ostream, istream ofstream #if defined(__BORLANDC__) && defined( _RTLDLL ) # define WXDLLIMPORT __import @@ -257,27 +286,6 @@ class WXDLLEXPORT wxEvent; integer on success as failure indicator */ #define wxNOT_FOUND (-1) -// ---------------------------------------------------------------------------- -// Error codes -// ---------------------------------------------------------------------------- - -#ifdef ERR_PARAM -#undef ERR_PARAM -#endif - -/// Standard error codes -enum ErrCode -{ - /// invalid parameter (in broad sense) - ERR_PARAM = (-4000), - /// no more data (iteration functions usually return this) - ERR_NODATA, - /// user cancelled the operation - ERR_CANCEL, - /// no error (the only non negative error code) - ERR_SUCCESS = 0 -}; - // ---------------------------------------------------------------------------- /** @name Very common macros */ // ---------------------------------------------------------------------------- @@ -350,8 +358,133 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; // Callback function type definition typedef void (*wxFunction) (wxObject&, wxEvent&); +// ---------------------------------------------------------------------------- +// machine specific settings +// ---------------------------------------------------------------------------- + +// fixed length types + +typedef char signed wxInt8; +typedef char unsigned wxUint8; + +#ifdef __WIN16__ +typedef int signed wxInt16; +typedef int unsigned wxUint16; +typedef long signed wxInt32; +typedef long unsigned wxUint32; +#endif + +#ifdef __WIN32__ +typedef short signed wxInt16; +typedef short unsigned wxUint16; +typedef int signed wxInt32; +typedef int unsigned wxUint32; +#endif + +#ifdef __WXMAC__ +typedef short signed wxInt16; +typedef short unsigned wxUint16; +typedef int signed wxInt32; +typedef int unsigned wxUint32; +#endif + +#ifdef __WXOS2__ +typedef short signed wxInt16; +typedef short unsigned wxUint16; +typedef int signed wxInt32; +typedef int unsigned wxUint32; +#endif + +#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__) + #if defined(SIZEOF_INT) + #if (SIZEOF_SHORT == 2) + typedef short signed wxInt16; + typedef short unsigned wxUint16; + #else + #error "FIXME" + #endif + #if (SIZEOF_INT == 4) + typedef int signed wxInt32; + typedef int unsigned wxUint32; + #else + #error "FIXME" + #endif + #else + typedef short signed wxInt16; + typedef short unsigned wxUint16; + typedef int signed wxInt32; + typedef int unsigned wxUint32; + #endif +#endif + +typedef wxUint8 wxByte; +typedef wxUint16 wxWord; + +// 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) ( \ + (((wxInt16) (val) & (wxInt16) 0x00ffU) << 8) | \ + (((wxInt16) (val) & (wxInt16) 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) ( \ + (((wxInt32) (val) & (wxInt32) 0x000000ffU) << 24) | \ + (((wxInt32) (val) & (wxInt32) 0x0000ff00U) << 8) | \ + (((wxInt32) (val) & (wxInt32) 0x00ff0000U) >> 8) | \ + (((wxInt32) (val) & (wxInt32) 0xff000000U) >> 24))) + +// machine specific byte swapping + +#ifdef WORDS_BIGENDIAN + #define wxUINT16_SWAP_FROM_LE(val) wxUINT16_SWAP_ALWAYS(val) + #define wxINT16_SWAP_FROM_LE(val) wxINT16_SWAP_ALWAYS(val) + #define wxUINT16_SWAP_FROM_BE(val) (val) + #define wxINT16_SWAP_FROM_BE(val) (val) + #define wxUINT32_SWAP_FROM_LE(val) wxUINT32_SWAP_ALWAYS(val) + #define wxINT32_SWAP_FROM_LE(val) wxINT32_SWAP_ALWAYS(val) + #define wxUINT32_SWAP_FROM_BE(val) (val) + #define wxINT32_SWAP_FROM_BE(val) (val) +#else + #define wxUINT16_SWAP_FROM_BE(val) wxUINT16_SWAP_ALWAYS(val) + #define wxINT16_SWAP_FROM_BE(val) wxINT16_SWAP_ALWAYS(val) + #define wxUINT16_SWAP_FROM_LE(val) (val) + #define wxINT16_SWAP_FROM_LE(val) (val) + #define wxUINT32_SWAP_FROM_BE(val) wxUINT32_SWAP_ALWAYS(val) + #define wxINT32_SWAP_FROM_BE(val) wxINT32_SWAP_ALWAYS(val) + #define wxUINT32_SWAP_FROM_LE(val) (val) + #define wxINT32_SWAP_FROM_LE(val) (val) +#endif + +// ---------------------------------------------------------------------------- +// 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. @@ -376,7 +509,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxSUNKEN_BORDER 0x08000000 #define wxRAISED_BORDER 0x04000000 #define wxBORDER 0x02000000 -#define wxSIMPLE_BORDER 0x02000000 +#define wxSIMPLE_BORDER wxBORDER #define wxSTATIC_BORDER 0x01000000 #define wxTRANSPARENT_WINDOW 0x00100000 #define wxNO_BORDER 0x00200000 @@ -397,10 +530,18 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); // outside of dialogs. #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) +enum wxOrientation +{ + wxHORIZONTAL = 0x01, + wxVERTICAL = 0x02, + wxBOTH = (wxVERTICAL | wxHORIZONTAL) +}; + #define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */ /* @@ -420,14 +561,24 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxRESIZE_BORDER 0x0040 #define wxDIALOG_MODAL 0x0020 #define wxDIALOG_MODELESS 0x0000 +/* Add for normal Windows frame behaviour */ +#define wxFRAME_FLOAT_ON_PARENT 0x0020 -#define wxDEFAULT_FRAME_STYLE (wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) #if WXWIN_COMPATIBILITY #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE #endif -#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) +#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) +#endif + /* * Subwindow style flags @@ -440,17 +591,24 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxToolBar style flags */ - #define wxTB_3DBUTTONS 0x8000 #define wxTB_HORIZONTAL 0x0002 #define wxTB_VERTICAL 0x0004 -// Flatbar/Coolbar under Win98 +// Flatbar/Coolbar under Win98/ GTK 1.2 #define wxTB_FLAT 0x0008 +// use native docking under GTK +#define wxTB_DOCKABLE 0x0010 /* - * Apply to all panel items + * wxMenuBar style flags */ +// use native docking +#define wxMB_DOCKABLE 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. @@ -463,7 +621,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * Styles for wxListBox */ - #define wxLB_SORT 0x0010 #define wxLB_SINGLE 0x0020 #define wxLB_MULTIPLE 0x0040 @@ -515,11 +672,12 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxGA_PROGRESSBAR 0x0004 #define wxGA_HORIZONTAL wxHORIZONTAL #define wxGA_VERTICAL wxVERTICAL +/* Windows only */ +#define wxGA_SMOOTH 0x0008 /* * wxSlider flags */ - #define wxSL_HORIZONTAL wxHORIZONTAL #define wxSL_VERTICAL wxVERTICAL // The next one is obsolete - use scroll events instead @@ -537,29 +695,30 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxScrollBar flags */ - #define wxSB_HORIZONTAL wxHORIZONTAL #define wxSB_VERTICAL wxVERTICAL /* - * wxButton flags + * wxButton flags (Win32 only) */ - #define wxBU_AUTODRAW 0x0004 #define wxBU_NOAUTODRAW 0x0000 /* * wxTreeCtrl flags */ - #define wxTR_HAS_BUTTONS 0x0004 #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_HIGHT 0x0080 + /* * wxListCtrl flags */ - #define wxLC_ICON 0x0004 #define wxLC_SMALL_ICON 0x0008 #define wxLC_LIST 0x0010 @@ -601,6 +760,8 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 @@ -613,23 +774,35 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); * wxTabCtrl flags */ -#define wxTAB_MULTILINE 0x0000 -#define wxTAB_RIGHTJUSTIFY 0x0004 -#define wxTAB_FIXEDWIDTH 0x0008 -#define wxTAB_OWNERDRAW 0x0010 - -// Sorry, I changed my mind about these names... #define wxTC_MULTILINE 0x0000 #define wxTC_RIGHTJUSTIFY 0x0004 #define wxTC_FIXEDWIDTH 0x0008 #define wxTC_OWNERDRAW 0x0010 +/* + * wxNotebook flags + */ +#define wxNB_FIXEDWIDTH 0x0008 + /* * wxStatusBar95 flags */ #define wxST_SIZEGRIP 0x0002 +/* + * wxStaticLine flags + */ +#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 + /* * GDI descriptions */ @@ -760,9 +933,7 @@ typedef enum // 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 */ @@ -781,91 +952,119 @@ 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) @@ -891,12 +1090,6 @@ enum wxWIN386 // Watcom 32-bit supervisor modus }; -/* Printing */ -#ifndef wxPORTRAIT -#define wxPORTRAIT 1 -#define wxLANDSCAPE 2 -#endif - /* Standard menu identifiers */ #define wxID_LOWEST 4999 @@ -946,12 +1139,133 @@ enum #define wxID_HIGHEST 5999 +// Mapping modes (as per Windows) +#define wxMM_TEXT 1 +#define wxMM_LOMETRIC 2 +#define wxMM_HIMETRIC 3 +#define wxMM_LOENGLISH 4 +#define wxMM_HIENGLISH 5 +#define wxMM_TWIPS 6 +#define wxMM_ISOTROPIC 7 +#define wxMM_ANISOTROPIC 8 + +#define wxMM_POINTS 9 +#define wxMM_METRIC 10 + /* Shortcut for easier dialog-unit-to-pixel conversion */ #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) +/* Paper types */ +typedef enum { + wxPAPER_NONE, // Use specific dimensions + wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches + wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches + wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters + wxPAPER_CSHEET, // C Sheet, 17 by 22 inches + wxPAPER_DSHEET, // D Sheet, 22 by 34 inches + wxPAPER_ESHEET, // E Sheet, 34 by 44 inches + wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches + wxPAPER_TABLOID, // Tabloid, 11 by 17 inches + wxPAPER_LEDGER, // Ledger, 17 by 11 inches + wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches + wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches + wxPAPER_A3, // A3 sheet, 297 by 420 millimeters + wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters + wxPAPER_A5, // A5 sheet, 148 by 210 millimeters + wxPAPER_B4, // B4 sheet, 250 by 354 millimeters + wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper + wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper + wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper + wxPAPER_10X14, // 10-by-14-inch sheet + wxPAPER_11X17, // 11-by-17-inch sheet + wxPAPER_NOTE, // Note, 8 1/2 by 11 inches + wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches + wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches + wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches + wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches + wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches + wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters + wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters + wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters + wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters + wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters + wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters + wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters + wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters + wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters + wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters + wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches + wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches + wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches + wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches + wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches + + wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm + wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm + wxPAPER_9X11, // 9 x 11 in + wxPAPER_10X11, // 10 x 11 in + wxPAPER_15X11, // 15 x 11 in + wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm + wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in + wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in + wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in + wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in + wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in + wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm + wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in + wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm + wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm + wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in + wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm + wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm + wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm + wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm + wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm + wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm + wxPAPER_A2, // A2 420 x 594 mm + wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm + wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm + +} wxPaperSize ; + +/* Printing orientation */ +#ifndef wxPORTRAIT +#define wxPORTRAIT 1 +#define wxLANDSCAPE 2 +#endif + +/* Duplex printing modes + */ + +typedef enum { + wxDUPLEX_SIMPLEX, // Non-duplex + wxDUPLEX_HORIZONTAL, + wxDUPLEX_VERTICAL +} wxDuplexMode; + +/* Print quality. + */ + +#define wxPRINT_QUALITY_HIGH -1 +#define wxPRINT_QUALITY_MEDIUM -2 +#define wxPRINT_QUALITY_LOW -3 +#define wxPRINT_QUALITY_DRAFT -4 + +typedef int wxPrintQuality; + +/* Print mode (currently PostScript only) + */ + +typedef enum { + 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 +} wxPrintMode; + + #ifdef __WXMSW__ -/* Stand-ins for Windows types, to avoid - * #including all of windows.h */ +// Stand-ins for Windows types, to avoid #including all of windows.h typedef unsigned long WXHWND; typedef unsigned long WXHANDLE; typedef unsigned long WXHICON; @@ -979,18 +1293,21 @@ typedef void * WXMSG; typedef unsigned long WXHCONV; typedef unsigned long WXHKEY; typedef unsigned long WXHTREEITEM; + typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; -#ifdef __GNUWIN32__ -typedef int (*WXFARPROC)(); + +#if defined(__GNUWIN32__) || defined(__WXWINE__) + typedef int (*WXFARPROC)(); #elif defined(__WIN32__) -typedef int (__stdcall *WXFARPROC)(); + typedef int (__stdcall *WXFARPROC)(); #else -typedef int (*WXFARPROC)(); + typedef int (*WXFARPROC)(); #endif -#endif +typedef WXHWND WXWidget; +#endif // MSW #ifdef __WXMOTIF__ /* Stand-ins for X/Xt/Motif types */ @@ -1009,7 +1326,7 @@ typedef void* WXFont; typedef void* WXImage; typedef void* WXCursor; typedef void* WXFontList; -#endif +#endif // Motif #ifdef __WXGTK__ /* Stand-ins for GLIB types */ @@ -1029,18 +1346,23 @@ typedef struct _GdkWindow GdkBitmap; typedef struct _GdkWindow GdkPixmap; typedef struct _GdkCursor GdkCursor; typedef struct _GdkRegion GdkRegion; +typedef struct _GdkDragContext GdkDragContext; /* Stand-ins for GTK types */ -typedef struct _GtkWidget GtkWidget; -typedef struct _GtkStyle GtkStyle; -typedef struct _GtkAdjustment GtkAdjustment; -typedef struct _GtkList GtkList; -typedef struct _GtkToolbar GtkToolbar; -typedef struct _GtkTooltips GtkTooltips; -typedef struct _GtkNotebook GtkNotebook; -typedef struct _GtkNotebookPage GtkNotebookPage; - -#endif +typedef struct _GtkWidget GtkWidget; +typedef struct _GtkStyle GtkStyle; +typedef struct _GtkAdjustment GtkAdjustment; +typedef struct _GtkList GtkList; +typedef struct _GtkToolbar GtkToolbar; +typedef struct _GtkTooltips GtkTooltips; +typedef struct _GtkNotebook GtkNotebook; +typedef struct _GtkNotebookPage GtkNotebookPage; +typedef struct _GtkAccelGroup GtkAccelGroup; +typedef struct _GtkItemFactory GtkItemFactory; +typedef struct _GtkSelectionData GtkSelectionData; + +typedef GtkWidget *WXWidget; +#endif // GTK // This is required because of clashing macros in windows.h, which may be // included before or after wxWindows classes, and therefore must be @@ -1076,5 +1398,14 @@ typedef struct _GtkNotebookPage GtkNotebookPage; #endif // __WXMSW__ +// --------------------------------------------------------------------------- +// macro to define a class without copy ctor nor assignment operator +// --------------------------------------------------------------------------- + +#define DECLARE_NO_COPY_CLASS(classname) \ + private: \ + classname(const classname&); \ + classname& operator=(const classname&) + #endif // _WX_DEFS_H_