X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f2aa588ba5c2e316d87105da86e0ebe8bbeac5df..0fb731b8bf830e2b495b2038200ab1d2444d748d:/include/wx/features.h diff --git a/include/wx/features.h b/include/wx/features.h index d4a19c9748..d276ee8502 100644 --- a/include/wx/features.h +++ b/include/wx/features.h @@ -1,12 +1,12 @@ /** * Name: wx/features.h * Purpose: test macros for the features which might be available in some -* wxWindows ports but not others +* wxWidgets ports but not others * Author: Vadim Zeitlin * Modified by: Ryan Norton (Converted to C) * Created: 18.03.02 * RCS-ID: $Id$ -* Copyright: (c) 2002 Vadim Zeitlin +* Copyright: (c) 2002 Vadim Zeitlin * Licence: wxWindows licence */ @@ -15,25 +15,31 @@ #ifndef _WX_FEATURES_H_ #define _WX_FEATURES_H_ -/* radio menu items are currently only implemented in wxGTK and wxMSW */ -#if defined(__WXGTK__) || defined(__WXMSW__) +/* radio menu items are currently not implemented in wxMotif, use this + symbol (kept for compatibility from the time when they were not implemented + under other platforms as well) to test for this */ +#if !defined(__WXMOTIF__) #define wxHAS_RADIO_MENU_ITEMS #else #undef wxHAS_RADIO_MENU_ITEMS #endif /* the raw keyboard codes are generated under wxGTK and wxMSW only */ -#if defined(__WXGTK__) || defined(__WXMSW__) +#if defined(__WXGTK__) || defined(__WXMSW__) || defined(__WXMAC__) \ + || defined(__WXDFB__) #define wxHAS_RAW_KEY_CODES #else #undef wxHAS_RAW_KEY_CODES #endif -/* taskbar is only implemented in wxMSW and X11 ports */ -#if defined(__WXMSW__) || \ - defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) +/* taskbar is implemented in the major ports */ +#if defined(__WXMSW__) || defined(__WXCOCOA__) \ + || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) \ + || defined(__WXOSX_MAC__) || defined(__WXCOCOA__) #define wxHAS_TASK_BAR_ICON #else + #undef wxUSE_TASKBARICON + #define wxUSE_TASKBARICON 0 #undef wxHAS_TASK_BAR_ICON #endif @@ -56,5 +62,65 @@ #undef wxHAS_REGEX_ADVANCED #endif +/* Pango-based ports and wxDFB use UTF-8 for text and font encodings + * internally and so their fonts can handle any encodings: */ +#if wxUSE_PANGO || defined(__WXDFB__) + #define wxHAS_UTF8_FONTS +#endif + +/* This is defined when the underlying toolkit handles tab traversal natively. + Otherwise we implement it ourselves in wxControlContainer. */ +#ifdef __WXGTK20__ + #define wxHAS_NATIVE_TAB_TRAVERSAL +#endif + +/* This is defined when the compiler provides some type of extended locale + functions. Otherwise, we implement them ourselves to only support the + 'C' locale */ +#if defined(HAVE_LOCALE_T) || \ + (wxCHECK_VISUALC_VERSION(8) && !defined(__WXWINCE__)) + #define wxHAS_XLOCALE_SUPPORT +#else + #undef wxHAS_XLOCALE_SUPPORT +#endif + +/* Direct access to bitmap data is not implemented in all ports yet */ +#if defined(__WXGTK20__) || defined(__WXMAC__) || defined(__WXDFB__) || \ + defined(__WXMSW__) + + /* + These compilers can't deal with templates in wx/rawbmp.h: + - HP aCC for PA-RISC + - Watcom < 1.8 + */ + #if !wxONLY_WATCOM_EARLIER_THAN(1, 8) && \ + !(defined(__HP_aCC) && defined(__hppa)) + #define wxHAS_RAW_BITMAP + #endif +#endif + +/* also define deprecated synonym which exists for compatibility only */ +#ifdef wxHAS_RAW_BITMAP + #define wxHAVE_RAW_BITMAP +#endif + +/* + If this is defined, wxEvtHandler::Bind<>() is available (not all compilers + have the required template support for this and in particular under Windows + where only g++ and MSVC >= 7 currently support it. + + Recent Sun CC versions support this but perhaps older ones can compile this + code too, adjust the version check if this is the case (unfortunately we + can't easily test for the things used in wx/event.h in configure so we have + to maintain these checks manually). The same applies to xlC 7: perhaps + earlier versions can compile this code too but they were not tested. + */ +#if wxCHECK_GCC_VERSION(3, 2) || wxCHECK_VISUALC_VERSION(7) \ + || (defined(__SUNCC__) && __SUNCC__ >= 0x5100) \ + || (defined(__xlC__) && __xlC__ >= 0x700) + #define wxHAS_EVENT_BIND +#endif + + #endif /* _WX_FEATURES_H_ */