1 /** 2 * Name: wx/features.h 3 * Purpose: test macros for the features which might be available in some 4 * wxWidgets ports but not others 5 * Author: Vadim Zeitlin 6 * Modified by: Ryan Norton (Converted to C) 7 * Created: 18.03.02 8 * Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org> 9 * Licence: wxWindows licence 10 */ 11 12 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ 13 14 #ifndef _WX_FEATURES_H_ 15 #define _WX_FEATURES_H_ 16 17 /* radio menu items are currently not implemented in wxMotif, use this 18 symbol (kept for compatibility from the time when they were not implemented 19 under other platforms as well) to test for this */ 20 #if !defined(__WXMOTIF__) 21 #define wxHAS_RADIO_MENU_ITEMS 22 #else 23 #undef wxHAS_RADIO_MENU_ITEMS 24 #endif 25 26 /* the raw keyboard codes are generated under wxGTK and wxMSW only */ 27 #if defined(__WXGTK__) || defined(__WXMSW__) || defined(__WXMAC__) \ 28 || defined(__WXDFB__) 29 #define wxHAS_RAW_KEY_CODES 30 #else 31 #undef wxHAS_RAW_KEY_CODES 32 #endif 33 34 /* taskbar is implemented in the major ports */ 35 #if defined(__WXMSW__) || defined(__WXCOCOA__) \ 36 || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) \ 37 || defined(__WXOSX_MAC__) || defined(__WXCOCOA__) 38 #define wxHAS_TASK_BAR_ICON 39 #else 40 #undef wxUSE_TASKBARICON 41 #define wxUSE_TASKBARICON 0 42 #undef wxHAS_TASK_BAR_ICON 43 #endif 44 45 /* wxIconLocation appeared in the middle of 2.5.0 so it's handy to have a */ 46 /* separate define for it */ 47 #define wxHAS_ICON_LOCATION 48 49 /* same for wxCrashReport */ 50 #ifdef __WXMSW__ 51 #define wxHAS_CRASH_REPORT 52 #else 53 #undef wxHAS_CRASH_REPORT 54 #endif 55 56 /* wxRE_ADVANCED is not always available, depending on regex library used 57 * (it's unavailable only if compiling via configure against system library) */ 58 #ifndef WX_NO_REGEX_ADVANCED 59 #define wxHAS_REGEX_ADVANCED 60 #else 61 #undef wxHAS_REGEX_ADVANCED 62 #endif 63 64 /* Pango-based ports and wxDFB use UTF-8 for text and font encodings 65 * internally and so their fonts can handle any encodings: */ 66 #if wxUSE_PANGO || defined(__WXDFB__) 67 #define wxHAS_UTF8_FONTS 68 #endif 69 70 /* This is defined when the underlying toolkit handles tab traversal natively. 71 Otherwise we implement it ourselves in wxControlContainer. */ 72 #ifdef __WXGTK20__ 73 #define wxHAS_NATIVE_TAB_TRAVERSAL 74 #endif 75 76 /* This is defined when the compiler provides some type of extended locale 77 functions. Otherwise, we implement them ourselves to only support the 78 'C' locale */ 79 #if defined(HAVE_LOCALE_T) || \ 80 (wxCHECK_VISUALC_VERSION(8) && !defined(__WXWINCE__)) 81 #define wxHAS_XLOCALE_SUPPORT 82 #else 83 #undef wxHAS_XLOCALE_SUPPORT 84 #endif 85 86 /* Direct access to bitmap data is not implemented in all ports yet */ 87 #if defined(__WXGTK20__) || defined(__WXMAC__) || defined(__WXDFB__) || \ 88 defined(__WXMSW__) 89 90 /* 91 These compilers can't deal with templates in wx/rawbmp.h: 92 - HP aCC for PA-RISC 93 - Watcom < 1.8 94 */ 95 #if !wxONLY_WATCOM_EARLIER_THAN(1, 8) && \ 96 !(defined(__HP_aCC) && defined(__hppa)) 97 #define wxHAS_RAW_BITMAP 98 #endif 99 #endif 100 101 /* also define deprecated synonym which exists for compatibility only */ 102 #ifdef wxHAS_RAW_BITMAP 103 #define wxHAVE_RAW_BITMAP 104 #endif 105 106 /* 107 If this is defined, wxEvtHandler::Bind<>() is available (not all compilers 108 have the required template support for this and in particular under Windows 109 where only g++ and MSVC >= 7 currently support it. 110 111 Recent Sun CC versions support this but perhaps older ones can compile this 112 code too, adjust the version check if this is the case (unfortunately we 113 can't easily test for the things used in wx/event.h in configure so we have 114 to maintain these checks manually). The same applies to xlC 7: perhaps 115 earlier versions can compile this code too but they were not tested. 116 */ 117 #if wxCHECK_GCC_VERSION(3, 2) || wxCHECK_VISUALC_VERSION(7) \ 118 || (defined(__SUNCC__) && __SUNCC__ >= 0x5100) \ 119 || (defined(__xlC__) && __xlC__ >= 0x700) \ 120 || defined(__INTELC__) 121 #define wxHAS_EVENT_BIND 122 #endif 123 124 125 #endif /* _WX_FEATURES_H_ */ 126 127