X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b78cd60dc9818cd6b13e1846a1d1a590b4b7893f..1e3eca9d3782d5eed5ba8d8019548c9f82523517:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 0a16399ebf..a61061304a 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -19,6 +19,14 @@ #include #include "wx/setup.h" + +#ifdef PACKAGE + #undef PACKAGE +#endif +#ifdef VERSION + #undef VERSION +#endif + #include "wx/version.h" // ---------------------------------------------------------------------------- @@ -28,7 +36,8 @@ // 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__ @@ -83,6 +92,11 @@ # 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:4134) // conversion between pointers to members of same class +# pragma warning(disable:4135) // conversion between different integral types +# pragma warning(disable:4769) // assignment of near pointer to long integer +#endif #endif // __VISUALC__ // suppress some Salford C++ warnings @@ -109,7 +123,7 @@ // Currently Only MS-Windows/NT, XView and Motif are supported // #if defined(__HPUX__) && !defined(__WXGTK__) - #ifndef __WXMOTIF__ + #ifndef __WXMOTIF__ #define __WXMOTIF__ #endif // __WXMOTIF__ #endif @@ -124,6 +138,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 @@ -181,6 +207,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 @@ -203,7 +235,6 @@ 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 @@ -341,8 +372,125 @@ 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) + typedef short signed wxInt16; + typedef short unsigned wxUint16; + typedef int signed wxInt32; + typedef int unsigned wxUint32; + #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) ( \ + (((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 + +// ---------------------------------------------------------------------------- +// 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. @@ -367,7 +515,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 @@ -388,10 +536,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 */ /* @@ -402,7 +558,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 @@ -426,7 +582,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 @@ -454,7 +610,13 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); */ // 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 + */ +#define wxMENU_TEAROFF 0x0001 /* * Apply to all panel items @@ -561,6 +723,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 */ @@ -605,6 +772,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 @@ -639,7 +808,15 @@ 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 +#define wxPD_ELAPSED_TIME 0x0008 +#define wxPD_ESTIMATED_TIME 0x0010 +#define wxPD_REMAINING_TIME 0x0020 /* * GDI descriptions @@ -742,15 +919,16 @@ typedef enum #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 wxNO_DEFAULT 0x0020 +#define wxYES_DEFAULT 0x0000 // has no effect +#define wxICON_EXCLAMATION 0x0040 +#define wxICON_HAND 0x0080 +#define wxICON_QUESTION 0x0100 +#define wxICON_INFORMATION 0x0200 #define wxICON_STOP wxICON_HAND #define wxICON_ASTERISK wxICON_INFORMATION -#define wxICON_MASK (0x0020|0x0040|0x0080|0x0100) +#define wxICON_MASK (0x0040|0x0080|0x0100|0x0200) #define wxCENTRE 0x0200 #define wxCENTER wxCENTRE @@ -771,9 +949,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 */ @@ -792,11 +968,10 @@ 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 @@ -815,6 +990,7 @@ enum wxKeyCode WXK_MBUTTON, WXK_CLEAR, WXK_SHIFT, + WXK_ALT, WXK_CONTROL, WXK_MENU, WXK_PAUSE, @@ -877,7 +1053,7 @@ enum wxKeyCode WXK_SCROLL, WXK_PAGEUP, WXK_PAGEDOWN, - + WXK_NUMPAD_SPACE, WXK_NUMPAD_TAB, WXK_NUMPAD_ENTER, @@ -1138,7 +1314,7 @@ typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; -#ifdef __GNUWIN32__ +#if defined(__GNUWIN32__) || defined(__WXWINE__) typedef int (*WXFARPROC)(); #elif defined(__WIN32__) typedef int (__stdcall *WXFARPROC)(); @@ -1166,6 +1342,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__