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