X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f430439851ee7893cdf3d375106cd58390ba18a..d7eee191c55687785a2be927fd387d10514cdf1b:/include/wx/defs.h?ds=inline diff --git a/include/wx/defs.h b/include/wx/defs.h index b850a396d0..8cb02a12d8 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -20,6 +20,67 @@ // compiler and OS identification // ---------------------------------------------------------------------------- +// first define Windows symbols if they're not defined on the command line: we +// can autodetect everything we need if _WIN32 is defined +#if defined(_WIN32) || defined(WIN32) || defined(__NT__) + #ifndef __WXMSW__ + #define __WXMSW__ + #endif + + #ifndef __WIN32__ + #define __WIN32__ + #endif + + // Win95 means Win95-style UI, i.e. Win9x/NT 4+ + #if !defined(__WIN95__) && defined(WINVER) && (WINVER >= 0x0400) + #define __WIN95__ + #endif +#endif // Win32 + +#if defined(__WXMSW__) || defined(__WIN32__) + #if !defined(__WINDOWS__) + #define __WINDOWS__ + #endif +#endif + +#ifdef __WXWINE__ + #ifndef __WIN32__ + #define __WIN32__ + #endif + #ifndef __WIN95__ + #define __WIN95__ + #endif + #ifndef STRICT + #define STRICT + #endif +#endif // WINE + +#if defined(TWIN32) && !defined(__TWIN32__) + #define __TWIN32__ +#endif // Twin32 + +#include "wx/setup.h" + +// old C++ headers (like ) declare classes in the global namespace +// while the new, standard ones (like ) do it in std:: namespace +// +// using this macro allows constuctions like "wxSTD iostream" to work in +// either case +#if !wxUSE_IOSTREAMH + #define wxSTD std:: +#else + #define wxSTD +#endif + +// just in case they were defined in setup.h +#ifdef PACKAGE +#undef PACKAGE +#endif + +#ifdef VERSION +#undef VERSION +#endif + // OS: first test for generic Unix defines, then for particular flavours and // finally for Unix-like systems #if defined(__UNIX__) || defined(__unix) || defined(__unix__) || \ @@ -52,8 +113,33 @@ #define OS2EMX_PLAIN_CHAR #endif -#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) ) - // MacOS + // define __HPUX__ for HP-UX where standard macro is __hpux + #if defined(__hpux) && !defined(__HPUX__) + #define __HPUX__ + #endif // HP-UX + + #if defined(__WXMAC__) && defined(__DARWIN__) + // Mac OS X + + // Some code has been added to workaround defects(?) in the + // bundled gcc compiler. These corrections are identified by: + // __DARWIN__ for corrections necessary for Darwin (wxMac, wxMotif) + + #include + #endif // __WXMAC__ && __DARWIN__ +#elif defined(applec) || \ + defined(THINK_C) || \ + (defined(__MWERKS__) && !defined(__INTEL__)) + // MacOS +#elif defined(__WXMAC__) && defined(__DARWIN__) + // Mac OS X + #define __UNIX_LIKE__ + + // Some code has been added to workaround defects(?) in the + // bundled gcc compiler. These corrections are identified by: + // __DARWIN__ for corrections necessary for Darwin (wxMac, wxMotif) + + #include #elif defined(__OS2__) #if defined(__IBMCPP__) #define __VISAGEAVER__ __IBMCPP__ @@ -70,11 +156,17 @@ // VisualAge is the only thing that understands _Optlink #define LINKAGEMODE _Optlink #endif + #define wxSIZE_T_IS_UINT #else // Windows #ifndef __WINDOWS__ #define __WINDOWS__ #endif // Windows + // to be changed for Win64! + #ifndef __WIN32__ + #define __WIN16__ + #endif + // define another standard symbol for Microsoft Visual C++: the standard one // (_MSC_VER) is also defined by Metrowerks compiler #if defined(_MSC_VER) && !defined(__MWERKS__) @@ -82,12 +174,23 @@ #elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) #define __BORLANDC__ #elif defined(__WATCOMC__) - //#define __WATCOMC__ #elif defined(__SC__) #define __SYMANTECC__ #endif // compiler + + // size_t is the same as unsigned int for all Windows compilers we know, + // so define it if it hadn't been done by configure yet + #if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) + #define wxSIZE_T_IS_UINT + #endif #endif // OS +// if we're on a Unix system 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 + // LINKAGEMODE mode is empty for everyting except OS/2 #ifndef LINKAGEMODE #define LINKAGEMODE @@ -111,6 +214,12 @@ #endif #endif // __VISUALC__ +// suppress some Watcom C++ warnings +#ifdef __WATCOMC__ +# pragma warning 849 9 // Disable 'virtual function hidden' +# pragma warning 549 9 // Disable 'operand contains compiler generated information' +#endif // __VISUALC__ + // suppress some Salford C++ warnings #ifdef __SALFORDC__ # pragma suppress 353 // Possible nested comments @@ -140,28 +249,15 @@ #define va_list __gnuc_va_list #endif // HP-UX -// Cygwin / Mingw32 with gcc >= 2.95 use new windows headers which -// are more ms-like (header author is Anders Norlander, hence the name) -#if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))) - #ifndef wxUSE_NORLANDER_HEADERS - #define wxUSE_NORLANDER_HEADERS 1 - #endif +// This macro can be used to check that the version of mingw32 compiler is +// at least maj.min +#if defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || defined( __CYGWIN__ ) + #include "wx/msw/gccpriv.h" #else - #ifndef wxUSE_NORLANDER_HEADERS - #define wxUSE_NORLANDER_HEADERS 0 - #endif + #undef wxCHECK_W32API_VERSION + #define wxCHECK_W32API_VERSION(maj, min) (0) #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(__GNUC__) && !wxUSE_NORLANDER_HEADERS - #define __GNUWIN32_OLD__ -#endif - -////////////////////////////////////////////////////////////////////////////////// -// Currently Only MS-Windows/NT, XView and Motif are supported -// #if defined(__HPUX__) && !defined(__WXGTK__) #ifndef __WXMOTIF__ #define __WXMOTIF__ @@ -172,78 +268,19 @@ #define __X__ #endif -#ifdef __WXMSW__ - -#if defined(_WIN32) || defined(WIN32) || defined(__NT__) - #ifndef __WIN32__ - #define __WIN32__ - #endif -#endif - -#ifdef __WXWINE__ - #ifndef __WIN32__ - #define __WIN32__ - #endif - #ifndef __WIN95__ - #define __WIN95__ - #endif - #ifndef STRICT - #define STRICT - #endif -#endif - -#ifndef __WIN32__ -#define __WIN16__ -#endif - -#if !defined(__WIN95__) && (WINVER >= 0x0400) -#define __WIN95__ -#endif - -#if defined(TWIN32) && !defined(__TWIN32__) -#define __TWIN32__ -#endif - -#endif // wxMSW - // 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__) && \ !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 -#ifdef PACKAGE -#undef PACKAGE + !defined(__WXQT__) && !defined(__WXMGL__) && wxUSE_GUI + #ifdef __UNIX__ + #error "No Target! You should use wx-config program for compilation flags!" + #else // !Unix + #error "No Target! You should use supplied makefiles for compilation!" + #endif // Unix/!Unix #endif -#ifdef VERSION -#undef VERSION -#endif - -// 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 Unix system 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" // ---------------------------------------------------------------------------- @@ -254,7 +291,10 @@ // compatibility code #if !wxUSE_GUI #undef WXWIN_COMPATIBILITY_2 + #undef WXWIN_COMPATIBILITY_2_2 + #define WXWIN_COMPATIBILITY_2 0 + #define WXWIN_COMPATIBILITY_2_2 0 #endif // !GUI // ============================================================================ @@ -363,7 +403,7 @@ typedef int wxWindowID; // wxCALLBACK should be used for the functions which are called back by // Windows (such as compare function for wxListCtrl) -#if defined(__WIN32__) +#if defined(__WIN32__) && !defined(__WXMICROWIN__) #define wxCALLBACK wxSTDCALL #else // no stdcall under Unix nor Win16 @@ -389,8 +429,8 @@ typedef int wxWindowID; #if defined(__WXMSW__) -// __declspec works in BC++ 5 and later, as well as VC++ and gcc -#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__) +// __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well as VC++ and gcc +#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__) || defined(__WATCOMC__) # ifdef WXMAKINGDLL # define WXDLLEXPORT __declspec( dllexport ) # define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type @@ -452,8 +492,10 @@ typedef int wxWindowID; # define WXDLLIMPORT #endif +#ifdef __cplusplus class WXDLLEXPORT wxObject; class WXDLLEXPORT wxEvent; +#endif /** symbolic constant used by all Find()-like functions returning positive integer on success as failure indicator */ @@ -464,7 +506,12 @@ class WXDLLEXPORT wxEvent; // ---------------------------------------------------------------------------- // everybody gets the assert and other debug macros +#ifdef __cplusplus #include "wx/debug.h" +#endif + +// NULL declaration +#include //@{ /// delete pointer if it is not NULL and NULL it afterwards @@ -533,7 +580,9 @@ class WXDLLEXPORT wxEvent; #endif // Callback function type definition +#ifdef __cplusplus typedef void (*wxFunction) (wxObject&, wxEvent&); +#endif // ---------------------------------------------------------------------------- // OS mnemonics -- Identify the running OS (useful for Windows) @@ -810,7 +859,10 @@ enum wxAlignment wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), - wxALIGN_CENTRE = wxALIGN_CENTER + wxALIGN_CENTRE = wxALIGN_CENTER, + + // a mask to extract alignment from the combination of flags + wxALIGN_MASK = 0x0f00 }; enum wxStretch @@ -819,7 +871,27 @@ enum wxStretch wxSHRINK = 0x1000, wxGROW = 0x2000, wxEXPAND = wxGROW, - wxSHAPED = 0x4000 + wxSHAPED = 0x4000, + wxADJUST_MINSIZE = 0x8000, + wxTILE = 0xc000 +}; + +// border flags: the values are chosen for backwards compatibility +enum wxBorder +{ + // this is different from wxBORDER_NONE as by default the controls do have + // border + wxBORDER_DEFAULT = 0, + + wxBORDER_NONE = 0x00200000, + wxBORDER_STATIC = 0x01000000, + wxBORDER_SIMPLE = 0x02000000, + wxBORDER_RAISED = 0x04000000, + wxBORDER_SUNKEN = 0x08000000, + wxBORDER_DOUBLE = 0x10000000, + + // a mask to extract border style from the combination of flags + wxBORDER_MASK = 0x1f200000 }; // ---------------------------------------------------------------------------- @@ -846,31 +918,41 @@ enum wxStretch #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 wxBORDER -#define wxSTATIC_BORDER 0x01000000 -#define wxTRANSPARENT_WINDOW 0x00100000 -#define wxNO_BORDER 0x00200000 +// New styles (border styles are now in their own enum) +#define wxDOUBLE_BORDER wxBORDER_DOUBLE +#define wxSUNKEN_BORDER wxBORDER_SUNKEN +#define wxRAISED_BORDER wxBORDER_RAISED +#define wxBORDER wxBORDER_SIMPLE +#define wxSIMPLE_BORDER wxBORDER_SIMPLE +#define wxSTATIC_BORDER wxBORDER_STATIC +#define wxNO_BORDER wxBORDER_NONE // Override CTL3D etc. control colour processing to allow own background // colour. -// OBSOLETE - use wxNO_3D instead -#define wxUSER_COLOURS 0x00800000 // Override CTL3D or native 3D styles for children #define wxNO_3D 0x00800000 +// OBSOLETE - use wxNO_3D instead +#define wxUSER_COLOURS wxNO_3D + +// wxALWAYS_SHOW_SB: instead of hiding the scrollbar when it is not needed, +// disable it - but still show (see also wxLB_ALWAYS_SB style) +// +// NB: as this style is only supported by wxUniversal so far as it doesn't use +// wxUSER_COLOURS/wxNO_3D, we reuse the same style value +#define wxALWAYS_SHOW_SB 0x00800000 + // 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 paints the background for it) #define wxCLIP_CHILDREN 0x00400000 + // Note we're reusing the wxCAPTION style because we won't need captions // for subwindows/controls #define wxCLIP_SIBLINGS 0x20000000 +#define wxTRANSPARENT_WINDOW 0x00100000 + // Add this style to a panel to get tab traversal working outside of dialogs // (on by default for wxPanel, wxDialog, wxScrolledWindow) #define wxTAB_TRAVERSAL 0x00080000 @@ -879,10 +961,15 @@ enum wxStretch // Windows, it won't normally get the dialog navigation key events) #define wxWANTS_CHARS 0x00040000 -// Make window retained (mostly Motif, I think) +// Make window retained (mostly Motif, I think) -- obsolete (VZ)? #define wxRETAINED 0x00020000 #define wxBACKINGSTORE wxRETAINED +// set this flag to create a special popup window: it will be always shown on +// top of other windows, will capture the mouse and will be dismissed when the +// mouse is clicked outside of it or if it loses focus in any other way +#define wxPOPUP_WINDOW 0x00020000 + // 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 @@ -912,15 +999,20 @@ enum wxStretch #define wxTINY_CAPTION_VERT 0x0080 #define wxRESIZE_BORDER 0x0040 +#define wxDIALOG_NO_PARENT 0x0001 // Don't make owned by apps top window +#define wxFRAME_NO_TASKBAR 0x0002 // No taskbar button (MSW only) +#define wxFRAME_TOOL_WINDOW 0x0004 // No taskbar button, no system menu + // deprecated versions defined for compatibility reasons #define wxRESIZE_BOX wxMAXIMIZE_BOX #define wxTHICK_FRAME wxRESIZE_BORDER +// obsolete styles, unused any more #define wxDIALOG_MODAL 0x0020 #define wxDIALOG_MODELESS 0x0000 -// Add for normal Windows frame behaviour -#define wxFRAME_FLOAT_ON_PARENT 0x0020 +// deprecated flag, don't use any more, defined for compatibility only +#define wxFRAME_FLOAT_ON_PARENT 0 // Context-sensitive help #define wxFRAME_EX_CONTEXTHELP 0x00000004 @@ -1004,25 +1096,18 @@ enum wxStretch #define wxLB_NEEDED_SB 0x0200 #define wxLB_ALWAYS_SB 0x0400 #define wxLB_HSCROLL wxHSCROLL +// always show an entire number of rows +#define wxLB_INT_HEIGHT 0x0800 -/* - * wxTextCtrl style flags - */ -// the flag bits 0x0001, 2, 4 and 8 are free but should be used only for the -// things which don't make sense for a text control used by wxTextEntryDialog -// because they would otherwise conflict with wxOK, wxCANCEL, wxCENTRE -#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 -#define wxPROCESS_ENTER 0x0400 -#define wxPASSWORD 0x0800 -#define wxTE_PROCESS_ENTER wxPROCESS_ENTER -#define wxTE_PASSWORD wxPASSWORD +// use wxHSCROLL to not wrap text at all, wxTE_LINEWRAP to wrap it at any +// position and wxTE_WORDWRAP to wrap at words boundary +#define wxTE_DONTWRAP wxHSCROLL +#define wxTE_LINEWRAP 0x0800 +#define wxTE_WORDWRAP 0x0000 // it's just == !wxHSCROLL + +// deprecated synonyms +#define wxPROCESS_ENTER wxTE_PROCESS_ENTER +#define wxPASSWORD wxTE_PASSWORD /* * wxComboBox style flags @@ -1035,9 +1120,15 @@ enum wxStretch /* * wxRadioBox style flags */ +// should we number the items from left to right or from top to bottom in a 2d +// radiobox? +#define wxRA_LEFTTORIGHT 0x0001 +#define wxRA_TOPTOBOTTOM 0x0002 + // New, more intuitive names to specify majorDim argument #define wxRA_SPECIFY_COLS wxHORIZONTAL #define wxRA_SPECIFY_ROWS wxVERTICAL + // Old names for compatibility #define wxRA_HORIZONTAL wxHORIZONTAL #define wxRA_VERTICAL wxVERTICAL @@ -1063,8 +1154,8 @@ enum wxStretch #define wxSL_VERTICAL wxVERTICAL // 8 // The next one is obsolete - use scroll events instead #define wxSL_NOTIFY_DRAG 0x0000 -#define wxSL_AUTOTICKS 0x0010 -// #define wxSL_MANUALTICKS 0x0010 +#define wxSL_TICKS 0x0010 +#define wxSL_AUTOTICKS wxSL_TICKS // we don't support manual ticks #define wxSL_LABELS 0x0020 #define wxSL_LEFT 0x0040 #define wxSL_TOP 0x0080 @@ -1079,16 +1170,6 @@ enum wxStretch #define wxSB_HORIZONTAL wxHORIZONTAL #define wxSB_VERTICAL wxVERTICAL -/* - * wxButton flags (Win32 only) - */ -#define wxBU_AUTODRAW 0x0004 -#define wxBU_NOAUTODRAW 0x0000 -#define wxBU_LEFT 0x0040 -#define wxBU_TOP 0x0080 -#define wxBU_RIGHT 0x0100 -#define wxBU_BOTTOM 0x0200 - /* * wxTreeCtrl flags */ @@ -1101,36 +1182,8 @@ enum wxStretch #define wxTR_EXTENDED 0x0040 #define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080 #define wxTR_NO_LINES 0x0100 - -/* - * wxListCtrl flags - */ -#define wxLC_VRULES 0x0001 -#define wxLC_HRULES 0x0002 -#define wxLC_ICON 0x0004 -#define wxLC_SMALL_ICON 0x0008 -#define wxLC_LIST 0x0010 -#define wxLC_REPORT 0x0020 -#define wxLC_ALIGN_TOP 0x0040 -#define wxLC_ALIGN_LEFT 0x0080 -#define wxLC_AUTOARRANGE 0x0100 -#define wxLC_USER_TEXT 0x0200 -#define wxLC_EDIT_LABELS 0x0400 -#define wxLC_NO_HEADER 0x0800 -#define wxLC_NO_SORT_HEADER 0x1000 -#define wxLC_SINGLE_SEL 0x2000 -#define wxLC_SORT_ASCENDING 0x4000 -#define wxLC_SORT_DESCENDING 0x8000 - -#define wxLC_MASK_TYPE (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT) -#define wxLC_MASK_ALIGN (wxLC_ALIGN_TOP | wxLC_ALIGN_LEFT) -#define wxLC_MASK_SORT (wxLC_SORT_ASCENDING | wxLC_SORT_DESCENDING) - -// Omitted because (a) too much detail (b) not enough style flags -// #define wxLC_NO_SCROLL -// #define wxLC_NO_LABEL_WRAP -// #define wxLC_OWNERDRAW_FIXED -// #define wxLC_SHOW_SEL_ALWAYS +#define wxTR_MAC_BUTTONS 0x0200 +#define wxTR_ROW_LINES 0x0400 /* * wxSpinButton flags. @@ -1157,26 +1210,22 @@ enum wxStretch #define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH) /* - * wxFrame extra flags + * wxNotebook flags */ -// No title on taskbar -#define wxFRAME_TOOL_WINDOW 0x0004 +#define wxNB_FIXEDWIDTH 0x0010 +#define wxNB_TOP 0x0000 // default +#define wxNB_LEFT 0x0020 +#define wxNB_RIGHT 0x0040 +#define wxNB_BOTTOM 0x0080 +#define wxNB_MULTILINE 0x0100 /* * wxTabCtrl flags */ -#define wxTC_MULTILINE 0x0000 #define wxTC_RIGHTJUSTIFY 0x0010 #define wxTC_FIXEDWIDTH 0x0020 #define wxTC_OWNERDRAW 0x0040 - -/* - * wxNotebook flags - */ -#define wxNB_FIXEDWIDTH 0x0010 -#define wxNB_LEFT 0x0020 -#define wxNB_RIGHT 0x0040 -#define wxNB_BOTTOM 0x0080 +#define wxTC_MULTILINE wxNB_MULTILINE /* * wxStatusBar95 flags @@ -1188,6 +1237,11 @@ enum wxStretch */ #define wxST_NO_AUTORESIZE 0x0001 +/* + * wxStaticBitmap flags + */ +#define wxBI_EXPAND wxEXPAND + /* * wxStaticLine flags */ @@ -1326,6 +1380,36 @@ enum wxStretch #define wxID_FILEDLGG 5900 #define wxID_HIGHEST 5999 +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// hit test results +enum wxHitTest +{ + wxHT_NOWHERE, + + // scrollbar + wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE, + wxHT_SCROLLBAR_ARROW_LINE_1, // left or upper arrow to scroll by line + wxHT_SCROLLBAR_ARROW_LINE_2, // right or down + wxHT_SCROLLBAR_ARROW_PAGE_1, // left or upper arrow to scroll by page + wxHT_SCROLLBAR_ARROW_PAGE_2, // right or down + wxHT_SCROLLBAR_THUMB, // on the thumb + wxHT_SCROLLBAR_BAR_1, // bar to the left/above the thumb + wxHT_SCROLLBAR_BAR_2, // bar to the right/below the thumb + wxHT_SCROLLBAR_LAST, + + // window + wxHT_WINDOW_OUTSIDE, // not in this window at all + wxHT_WINDOW_INSIDE, // in the client area + wxHT_WINDOW_VERT_SCROLLBAR, // on the vertical scrollbar + wxHT_WINDOW_HORZ_SCROLLBAR, // on the horizontal scrollbar + wxHT_WINDOW_CORNER, // on the corner between 2 scrollbars + + wxHT_MAX +}; + // ---------------------------------------------------------------------------- // Possible SetSize flags // ---------------------------------------------------------------------------- @@ -1698,9 +1782,16 @@ typedef enum { wxPRINT_MODE_PRINTER = 3 // Send to printer } wxPrintMode; -// --------------------------------------------------------------------------- -// Macro to specify "All Files" on different platforms -// --------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// miscellaneous +// ---------------------------------------------------------------------------- + +// define this macro if font handling is done using the X font names +#if defined(__WXGTK__) || defined(__X__) + #define _WX_X_FONTLIKE +#endif + +// macro to specify "All Files" on different platforms #if defined(__WXMSW__) # define wxALL_FILES_PATTERN "*.*" # define wxALL_FILES gettext_noop("All files (*.*)|*.*") @@ -1708,6 +1799,7 @@ typedef enum { # 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 @@ -1832,7 +1924,7 @@ typedef unsigned short WORD; // WIN32 graphics types for OS/2 GPI // RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def -#define OS2RGB(r,g,b) ((DWORD ((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(b)) << 16))) +#define OS2RGB(r,g,b) ((DWORD ((BYTE) (b) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(r)) << 16))) typedef unsigned long COLORREF; #define GetBValue(rgb) ((BYTE)((rgb) >> 16)) @@ -1856,7 +1948,7 @@ typedef struct tagLOGPALETTE } LOGPALETTE; #endif //__WXPM__ -#if defined(__GNUWIN32__) || defined(__WXWINE__) +#if defined(__GNUWIN32__) || defined(__WXWINE__) || defined(__WXMICROWIN__) typedef int (*WXFARPROC)(); #elif defined(__WIN32__) typedef int (__stdcall *WXFARPROC)(); @@ -1899,7 +1991,6 @@ typedef void* WXGC; typedef void* WXRegion; typedef void* WXFont; typedef void* WXImage; -typedef void* WXCursor; typedef void* WXFontList; typedef unsigned long Atom; /* this might fail on a few architectures */ @@ -1967,6 +2058,10 @@ typedef struct _PangoFontDescription PangoFontDescription; #endif #endif // GTK +#ifdef __WXMGL__ +typedef void *WXWidget; // FIXME_MGL - type-safe +#endif // MGL + // This is required because of clashing macros in windows.h, which may be // included before or after wxWindows classes, and therefore must be // disabled here before any significant wxWindows headers are included. @@ -2008,7 +2103,7 @@ typedef struct _PangoFontDescription PangoFontDescription; #define DECLARE_NO_COPY_CLASS(classname) \ private: \ classname(const classname&); \ - classname& operator=(const classname&) + classname& operator=(const classname&); #endif // _WX_DEFS_H_