X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b0351fc91ec11f36961b24440056660dc17b8718..953ccd3da935af4f03732ef87a0dba214c802e65:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 127a3da550..0f823ffd11 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -53,7 +53,7 @@ #endif #endif // Sun - #ifdef __hpux + #if defined(__hpux) && !defined(__HPUX__) #define __HPUX__ #endif // HP-UX @@ -81,6 +81,8 @@ #ifdef __VISUALC__ # 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 #endif // __VISUALC__ // suppress some Salford C++ warnings @@ -106,11 +108,14 @@ ////////////////////////////////////////////////////////////////////////////////// // 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__ @@ -176,6 +181,12 @@ // 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 @@ -185,6 +196,9 @@ #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 @@ -195,8 +209,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. @@ -327,8 +346,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. @@ -353,7 +497,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 @@ -374,10 +518,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 */ /* @@ -388,7 +540,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 @@ -412,7 +564,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 @@ -547,6 +699,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_HIGHT 0x0080 + /* * wxListCtrl flags */ @@ -591,6 +748,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 @@ -625,7 +784,12 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #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 @@ -757,9 +921,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 */ @@ -778,91 +940,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) @@ -1063,8 +1253,7 @@ typedef enum { #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; @@ -1092,18 +1281,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)(); + 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 */ @@ -1122,7 +1314,7 @@ typedef void* WXFont; typedef void* WXImage; typedef void* WXCursor; typedef void* WXFontList; -#endif +#endif // Motif #ifdef __WXGTK__ /* Stand-ins for GLIB types */ @@ -1157,7 +1349,8 @@ typedef struct _GtkAccelGroup GtkAccelGroup; typedef struct _GtkItemFactory GtkItemFactory; typedef struct _GtkSelectionData GtkSelectionData; -#endif +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 @@ -1193,5 +1386,14 @@ typedef struct _GtkSelectionData GtkSelectionData; #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_