]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/chkconf.h
Use enum for wxMouseEvent::m_wheelAxis instead of int.
[wxWidgets.git] / include / wx / msw / chkconf.h
CommitLineData
01ebf752
JS
1/*
2 * Name: wx/msw/chkconf.h
3 * Purpose: Compiler-specific configuration checking
4 * Author: Julian Smart
5 * Modified by:
6 * Created: 01/02/97
7 * RCS-ID: $Id$
8 * Copyright: (c) Julian Smart
65571936 9 * Licence: wxWindows licence
01ebf752
JS
10 */
11
34cbe514
RN
12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13
01ebf752
JS
14#ifndef _WX_MSW_CHKCONF_H_
15#define _WX_MSW_CHKCONF_H_
16
74987083 17/* ensure that MSW-specific settings are defined */
07b1232d
VZ
18#ifndef wxUSE_ACTIVEX
19# ifdef wxABORT_ON_CONFIG_ERROR
20# error "wxUSE_ACTIVEX must be defined."
21# else
22# define wxUSE_ACTIVEX 0
23# endif
24#endif /* !defined(wxUSE_ACTIVEX) */
25
26#ifndef wxUSE_CRASHREPORT
27# ifdef wxABORT_ON_CONFIG_ERROR
28# error "wxUSE_CRASHREPORT must be defined."
29# else
30# define wxUSE_CRASHREPORT 0
31# endif
32#endif /* !defined(wxUSE_CRASHREPORT) */
33
74987083
VZ
34#ifndef wxUSE_DC_CACHEING
35# ifdef wxABORT_ON_CONFIG_ERROR
36# error "wxUSE_DC_CACHEING must be defined"
37# else
38# define wxUSE_DC_CACHEING 1
39# endif
40#endif /* wxUSE_DC_CACHEING */
41
07b1232d
VZ
42#ifndef wxUSE_DIALUP_MANAGER
43# ifdef wxABORT_ON_CONFIG_ERROR
44# error "wxUSE_DIALUP_MANAGER must be defined."
45# else
46# define wxUSE_DIALUP_MANAGER 0
47# endif
48#endif /* !defined(wxUSE_DIALUP_MANAGER) */
74987083 49
07b1232d
VZ
50#ifndef wxUSE_MS_HTML_HELP
51# ifdef wxABORT_ON_CONFIG_ERROR
52# error "wxUSE_MS_HTML_HELP must be defined."
53# else
54# define wxUSE_MS_HTML_HELP 0
55# endif
56#endif /* !defined(wxUSE_MS_HTML_HELP) */
01ebf752 57
61873536
VZ
58#ifndef wxUSE_INICONF
59# ifdef wxABORT_ON_CONFIG_ERROR
60# error "wxUSE_INICONF must be defined."
61# else
62# define wxUSE_INICONF 0
63# endif
64#endif /* !defined(wxUSE_INICONF) */
65
07b1232d
VZ
66#ifndef wxUSE_OLE
67# ifdef wxABORT_ON_CONFIG_ERROR
68# error "wxUSE_OLE must be defined."
69# else
70# define wxUSE_OLE 0
71# endif
72#endif /* !defined(wxUSE_OLE) */
12bdd77c 73
07b1232d
VZ
74#ifndef wxUSE_OLE_AUTOMATION
75# ifdef wxABORT_ON_CONFIG_ERROR
76# error "wxUSE_OLE_AUTOMATION must be defined."
77# else
78# define wxUSE_OLE_AUTOMATION 0
79# endif
80#endif /* !defined(wxUSE_OLE_AUTOMATION) */
81
23bd008a
VZ
82#ifndef wxUSE_TASKBARICON_BALLOONS
83# ifdef wxABORT_ON_CONFIG_ERROR
84# error "wxUSE_TASKBARICON_BALLOONS must be defined."
85# else
86# define wxUSE_TASKBARICON_BALLOONS 0
87# endif
88#endif /* wxUSE_TASKBARICON_BALLOONS */
89
07b1232d
VZ
90#ifndef wxUSE_UNICODE_MSLU
91# ifdef wxABORT_ON_CONFIG_ERROR
92# error "wxUSE_UNICODE_MSLU must be defined."
93# else
94# define wxUSE_UNICODE_MSLU 0
95# endif
96#endif /* wxUSE_UNICODE_MSLU */
97
98#ifndef wxUSE_UXTHEME
99# ifdef wxABORT_ON_CONFIG_ERROR
100# error "wxUSE_UXTHEME must be defined."
101# else
102# define wxUSE_UXTHEME 0
103# endif
104#endif /* wxUSE_UXTHEME */
105
820a7a1b
VZ
106/*
107 * We don't want to give an error if wxUSE_UNICODE_MSLU is enabled but
108 * wxUSE_UNICODE is not as this would make it impossible to simply set the
109 * former in wx/setup.h as then the library wouldn't compile in non-Unicode
110 * configurations, so instead simply unset it silently when it doesn't make
111 * sense.
112 */
113#if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE
114# undef wxUSE_UNICODE_MSLU
115# define wxUSE_UNICODE_MSLU 0
219b657f
JS
116#endif
117
07b1232d 118
219b657f 119/*
07b1232d 120 * disable the settings which don't work for some compilers
219b657f
JS
121 */
122
07b1232d
VZ
123#ifndef wxUSE_NORLANDER_HEADERS
124# if ( wxCHECK_WATCOM_VERSION(1,0) || defined(__WINE__) ) || \
125 ((defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))))
126# define wxUSE_NORLANDER_HEADERS 1
127# else
128# define wxUSE_NORLANDER_HEADERS 0
129# endif
820a7a1b
VZ
130#endif
131
23bd008a
VZ
132/*
133 * See WINVER definition in wx/msw/wrapwin.h for the explanation of this test
134 * logic.
135 */
136#if (defined(__VISUALC__) && (__VISUALC__ < 1300)) && \
137 (!defined(WINVER) || WINVER < 0x0500)
138# undef wxUSE_TASKBARICON_BALLOONS
139# define wxUSE_TASKBARICON_BALLOONS 0
140#endif
141
b3dfbbc9 142/*
3e3a3e17
VZ
143 * All of the settings below require SEH support (__try/__catch) and can't work
144 * without it.
b3dfbbc9 145 */
3e3a3e17
VZ
146#if !defined(_MSC_VER) && \
147 (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550)
820a7a1b
VZ
148# undef wxUSE_ON_FATAL_EXCEPTION
149# define wxUSE_ON_FATAL_EXCEPTION 0
3e3a3e17 150
820a7a1b
VZ
151# undef wxUSE_CRASHREPORT
152# define wxUSE_CRASHREPORT 0
3e3a3e17 153
820a7a1b
VZ
154# undef wxUSE_STACKWALKER
155# define wxUSE_STACKWALKER 0
3b2b40b4 156#endif /* compiler doesn't support SEH */
b3dfbbc9 157
5e7f00a1 158/* wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior */
01ebf752 159#if defined(__MWERKS__)
820a7a1b
VZ
160# undef wxUSE_DEBUG_NEW_ALWAYS
161# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
162#endif
163
164#if defined(__GNUWIN32__)
5e7f00a1
VZ
165 /* These don't work as expected for mingw32 and cygwin32 */
166# undef wxUSE_MEMORY_TRACING
167# define wxUSE_MEMORY_TRACING 0
168
169# undef wxUSE_GLOBAL_MEMORY_OPERATORS
170# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
171
172# undef wxUSE_DEBUG_NEW_ALWAYS
173# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752 174
5e7f00a1
VZ
175/* some Cygwin versions don't have wcslen */
176# if defined(__CYGWIN__) || defined(__CYGWIN32__)
177# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
178# undef wxUSE_WCHAR_T
179# define wxUSE_WCHAR_T 0
180# endif
01ebf752 181#endif
5e7f00a1
VZ
182
183#endif /* __GNUWIN32__ */
01ebf752 184
16f10340
VZ
185/* wxUSE_MFC is not defined when using configure as it doesn't make sense for
186 gcc or mingw32 anyhow */
187#ifndef wxUSE_MFC
188 #define wxUSE_MFC 0
189#endif /* !defined(wxUSE_MFC) */
190
01ebf752
JS
191/* MFC duplicates these operators */
192#if wxUSE_MFC
5e7f00a1
VZ
193# undef wxUSE_GLOBAL_MEMORY_OPERATORS
194# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
01ebf752 195
5e7f00a1
VZ
196# undef wxUSE_DEBUG_NEW_ALWAYS
197# define wxUSE_DEBUG_NEW_ALWAYS 0
198#endif /* wxUSE_MFC */
01ebf752
JS
199
200#if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
820a7a1b
VZ
201 /* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
202# undef wxUSE_DRAG_AND_DROP
203# define wxUSE_DRAG_AND_DROP 0
01ebf752
JS
204#endif
205
d7bc7fec 206#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
820a7a1b
VZ
207# undef wxUSE_CHECKLISTBOX
208# define wxUSE_CHECKLISTBOX 0
01ebf752
JS
209#endif
210
0e871ad0
WS
211#if wxUSE_SPINCTRL
212# if !wxUSE_SPINBTN
213# ifdef wxABORT_ON_CONFIG_ERROR
214# error "wxSpinCtrl requires wxSpinButton on MSW"
215# else
216# undef wxUSE_SPINBTN
217# define wxUSE_SPINBTN 1
218# endif
219# endif
220#endif
221
da98e157
VZ
222/*
223 Win64-specific checks.
224 */
225#ifdef __WIN64__
226# if wxUSE_STACKWALKER
da98e157
VZ
227# undef wxUSE_CRASHREPORT
228# define wxUSE_CRASHREPORT 0
229# endif
230#endif /* __WIN64__ */
231
232
233/*
234 Compiler-specific checks.
235 */
1b5f8335 236
e78c47e3 237/* Borland */
1b5f8335
VZ
238#ifdef __BORLANDC__
239
240#if __BORLANDC__ < 0x500
5e7f00a1
VZ
241 /* BC++ 4.0 can't compile JPEG library */
242# undef wxUSE_LIBJPEG
243# define wxUSE_LIBJPEG 0
01ebf752
JS
244#endif
245
246/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
1b5f8335 247#if defined(WXMAKINGDLL) || defined(WXUSINGDLL)
5e7f00a1
VZ
248# undef wxUSE_DEBUG_NEW_ALWAYS
249# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
250#endif
251
1b5f8335
VZ
252#endif /* __BORLANDC__ */
253
90a752c2
JS
254/* DMC++ doesn't have definitions for date picker control, so use generic control
255 */
90a752c2 256#ifdef __DMC__
820a7a1b
VZ
257# if wxUSE_DATEPICKCTRL
258# undef wxUSE_DATEPICKCTRL_GENERIC
259# undef wxUSE_DATEPICKCTRL
260# endif
261# define wxUSE_DATEPICKCTRL 0
262# define wxUSE_DATEPICKCTRL_GENERIC 1
90a752c2
JS
263#endif
264
a1f48575 265
b55c3716 266
a1f48575
VZ
267/*
268 un/redefine the options which we can't compile (after checking that they're
269 defined
270 */
271#ifdef __WINE__
07b1232d
VZ
272# if wxUSE_ACTIVEX
273# undef wxUSE_ACTIVEX
274# define wxUSE_ACTIVEX 0
275# endif /* wxUSE_ACTIVEX */
276
277# if wxUSE_UNICODE_MSLU
278# undef wxUSE_UNICODE_MSLU
279# define wxUSE_UNICODE_MSLU 0
280# endif /* wxUSE_UNICODE_MSLU */
28efe654 281#endif /* __WINE__ */
a1f48575 282
b55c3716 283
ca5c6ac3 284/* check settings consistency for MSW-specific ones */
07b1232d
VZ
285#if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION
286# ifdef wxABORT_ON_CONFIG_ERROR
287# error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION"
288# else
289# undef wxUSE_CRASHREPORT
290# define wxUSE_CRASHREPORT 0
291# endif
292#endif /* wxUSE_CRASHREPORT */
293
ca5c6ac3 294#if !wxUSE_VARIANT
a1f48575
VZ
295# if wxUSE_ACTIVEX
296# ifdef wxABORT_ON_CONFIG_ERROR
297# error "wxActiveXContainer requires wxVariant"
298# else
299# undef wxUSE_ACTIVEX
300# define wxUSE_ACTIVEX 0
301# endif
302# endif
303
ca5c6ac3
VZ
304# if wxUSE_OLE_AUTOMATION
305# ifdef wxABORT_ON_CONFIG_ERROR
306# error "wxAutomationObject requires wxVariant"
307# else
308# undef wxUSE_OLE_AUTOMATION
309# define wxUSE_OLE_AUTOMATION 0
310# endif
311# endif
a1f48575 312#endif /* !wxUSE_VARIANT */
ca5c6ac3 313
b55c3716
VZ
314#if !wxUSE_DYNAMIC_LOADER
315# if wxUSE_MS_HTML_HELP
316# ifdef wxABORT_ON_CONFIG_ERROR
317# error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER."
318# else
63de3718 319# undef wxUSE_MS_HTML_HELP
285ba64d 320# define wxUSE_MS_HTML_HELP 0
b55c3716
VZ
321# endif
322# endif
323# if wxUSE_DIALUP_MANAGER
324# ifdef wxABORT_ON_CONFIG_ERROR
325# error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER."
326# else
6fbc7b59 327# undef wxUSE_DIALUP_MANAGER
285ba64d 328# define wxUSE_DIALUP_MANAGER 0
b55c3716
VZ
329# endif
330# endif
a1f48575 331#endif /* !wxUSE_DYNAMIC_LOADER */
b55c3716 332
64c288fa 333#if !wxUSE_DYNLIB_CLASS
e71508e1
VZ
334# if wxUSE_DC_TRANSFORM_MATRIX
335# ifdef wxABORT_ON_CONFIG_ERROR
336# error "wxUSE_DC_TRANSFORM_MATRIX requires wxUSE_DYNLIB_CLASS"
337# else
338# undef wxUSE_DC_TRANSFORM_MATRIX
339# define wxUSE_DC_TRANSFORM_MATRIX 0
340# endif
341# endif
64c288fa
JS
342# if wxUSE_UXTHEME
343# ifdef wxABORT_ON_CONFIG_ERROR
344# error "wxUSE_UXTHEME requires wxUSE_DYNLIB_CLASS"
345# else
346# undef wxUSE_UXTHEME
347# define wxUSE_UXTHEME 0
348# endif
349# endif
350# if wxUSE_MEDIACTRL
351# ifdef wxABORT_ON_CONFIG_ERROR
352# error "wxUSE_MEDIACTRL requires wxUSE_DYNLIB_CLASS"
353# else
354# undef wxUSE_MEDIACTRL
355# define wxUSE_MEDIACTRL 0
356# endif
357# endif
8ef51d67
JS
358# if wxUSE_INKEDIT
359# ifdef wxABORT_ON_CONFIG_ERROR
360# error "wxUSE_INKEDIT requires wxUSE_DYNLIB_CLASS"
361# else
362# undef wxUSE_INKEDIT
363# define wxUSE_INKEDIT 0
364# endif
365# endif
a1f48575 366#endif /* !wxUSE_DYNLIB_CLASS */
64c288fa 367
42ef5bda 368#if !wxUSE_OLE
a1f48575
VZ
369# if wxUSE_ACTIVEX
370# ifdef wxABORT_ON_CONFIG_ERROR
371# error "wxActiveXContainer requires wxUSE_OLE"
372# else
373# undef wxUSE_ACTIVEX
374# define wxUSE_ACTIVEX 0
375# endif
376# endif
377
42ef5bda
VZ
378# if wxUSE_DATAOBJ
379# ifdef wxABORT_ON_CONFIG_ERROR
380# error "wxUSE_DATAOBJ requires wxUSE_OLE"
381# else
382# undef wxUSE_DATAOBJ
383# define wxUSE_DATAOBJ 0
384# endif
385# endif
ca5c6ac3
VZ
386
387# if wxUSE_OLE_AUTOMATION
388# ifdef wxABORT_ON_CONFIG_ERROR
389# error "wxAutomationObject requires wxUSE_OLE"
390# else
391# undef wxUSE_OLE_AUTOMATION
392# define wxUSE_OLE_AUTOMATION 0
393# endif
394# endif
a1f48575
VZ
395#endif /* !wxUSE_OLE */
396
397#if !wxUSE_ACTIVEX
398# if wxUSE_MEDIACTRL
399# ifdef wxABORT_ON_CONFIG_ERROR
400# error "wxMediaCtl requires wxActiveXContainer"
401# else
402# undef wxUSE_MEDIACTRL
403# define wxUSE_MEDIACTRL 0
404# endif
405# endif
2724d84b
SL
406# if wxUSE_WEB
407# ifdef wxABORT_ON_CONFIG_ERROR
408# error "wxWebView requires wxActiveXContainer under MSW"
409# else
410# undef wxUSE_WEB
411# define wxUSE_WEB 0
412# endif
413# endif
a1f48575 414#endif /* !wxUSE_ACTIVEX */
42ef5bda 415
e7678d7d
VZ
416#if !wxUSE_THREADS
417# if wxUSE_FSWATCHER
418# ifdef wxABORT_ON_CONFIG_ERROR
419# error "wxFileSystemWatcher requires wxThread under MSW"
420# else
421# undef wxUSE_FSWATCHER
422# define wxUSE_FSWATCHER 0
423# endif
af9b2033 424# endif
e7678d7d
VZ
425#endif /* !wxUSE_THREADS */
426
2724d84b
SL
427
428#if !wxUSE_OLE_AUTOMATION
429# if wxUSE_WEB
430# ifdef wxABORT_ON_CONFIG_ERROR
431# error "wxWebView requires wxUSE_OLE_AUTOMATION under MSW"
432# else
433# undef wxUSE_WEB
434# define wxUSE_WEB 0
435# endif
436# endif
437#endif /* !wxUSE_OLE_AUTOMATION */
438
07b1232d
VZ
439#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
440# undef wxUSE_POSTSCRIPT
441# define wxUSE_POSTSCRIPT 1
442#endif
443
5e7f00a1 444#endif /* _WX_MSW_CHKCONF_H_ */