]> git.saurik.com Git - wxWidgets.git/blame - include/wx/chkconf.h
define wxUSE_LINE_IN_LISTBOOK to avoid -Wundef warnings (but define it as 0 so thje...
[wxWidgets.git] / include / wx / chkconf.h
CommitLineData
b45f79ec
VZ
1/*
2 * Name: wx/chkconf.h
3 * Purpose: check the config settings for consistency
4 * Author: Vadim Zeitlin
5 * Modified by:
6 * Created: 09.08.00
7 * RCS-ID: $Id$
8 * Copyright: (c) 2000 Vadim Zeitlin <vadim@wxwidgets.org>
9 * Licence: wxWindows licence
10 */
1e6feb95
VZ
11
12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13
01ebf752 14/*
b55c3716 15 Platform-specific checking.
01ebf752
JS
16 */
17
4055ed82 18#if defined(__WXPALMOS__)
ffecfa5a 19# include "wx/palmos/chkconf.h"
69dada2e
VZ
20#elif defined(__WXWINCE__)
21# include "wx/msw/wince/chkconf.h"
ffecfa5a 22#elif defined(__WXMSW__)
01ebf752
JS
23# include "wx/msw/chkconf.h"
24#elif defined(__WXMAC__)
25# include "wx/mac/chkconf.h"
b45f79ec 26#elif defined(__WXMOTIF__)
5c7c67fd 27# include "wx/motif/chkconf.h"
01ebf752
JS
28#endif
29
1e6feb95 30/*
730dfeb4 31 this global setting determines what should we do if the setting FOO
1e6feb95
VZ
32 requires BAR and BAR is not set: we can either silently define BAR
33 (default, recommended) or give an error and abort (mainly useful for
730dfeb4 34 developers only)
1e6feb95
VZ
35 */
36#define wxABORT_ON_CONFIG_ERROR
37
6962f34e
VZ
38/*
39 global features
40 */
41
42/* GUI build by default */
43#if !defined(wxUSE_GUI)
44# define wxUSE_GUI 1
45#endif /* !defined(wxUSE_GUI) */
46
1bbcb0d5
VZ
47/*
48 If we're compiling without support for threads/exceptions we have to
49 disable the corresponding features.
50 */
51#ifdef wxNO_THREADS
52# undef wxUSE_THREADS
53# define wxUSE_THREADS 0
54#endif /* wxNO_THREADS */
55
56#ifdef wxNO_EXCEPTIONS
57# undef wxUSE_EXCEPTIONS
58# define wxUSE_EXCEPTIONS 0
59#endif /* wxNO_EXCEPTIONS */
60
4652511f
VZ
61/* we also must disable exceptions if compiler doesn't support them */
62#if defined(_MSC_VER) && !defined(_CPPUNWIND)
63# undef wxUSE_EXCEPTIONS
64# define wxUSE_EXCEPTIONS 0
65#endif /* VC++ without exceptions support */
66
1bbcb0d5 67
1e6feb95 68/*
03169422
RL
69 tests for non GUI features
70 */
71
0c46d866 72#ifndef wxUSE_CRASHREPORT
7e0aee72
VZ
73 /* this one is special: as currently it is Windows-only, don't force it
74 to be defined on other platforms */
75# if defined(wxABORT_ON_CONFIG_ERROR) && defined(__WXMSW__)
0c46d866
VZ
76# error "wxUSE_CRASHREPORT must be defined."
77# else
78# define wxUSE_CRASHREPORT 0
79# endif
80#endif /* !defined(wxUSE_CRASHREPORT) */
81
03169422
RL
82#ifndef wxUSE_DYNLIB_CLASS
83# ifdef wxABORT_ON_CONFIG_ERROR
84# error "wxUSE_DYNLIB_CLASS must be defined."
85# else
86# define wxUSE_DYNLIB_CLASS 0
87# endif
88#endif /* !defined(wxUSE_DYNLIB_CLASS) */
89
4199367e
VZ
90#ifndef wxUSE_EXCEPTIONS
91# ifdef wxABORT_ON_CONFIG_ERROR
92# error "wxUSE_EXCEPTIONS must be defined."
93# else
94# define wxUSE_EXCEPTIONS 0
95# endif
96#endif /* !defined(wxUSE_EXCEPTIONS) */
97
c7f3eecc
VZ
98#ifndef wxUSE_FILESYSTEM
99# ifdef wxABORT_ON_CONFIG_ERROR
100# error "wxUSE_FILESYSTEM must be defined."
101# else
102# define wxUSE_FILESYSTEM 0
103# endif
104#endif /* !defined(wxUSE_FILESYSTEM) */
105
6fb17fd5 106/* don't give an error about this one yet, it's not fully implemented */
05815ab3 107#ifndef wxUSE_FSVOLUME
6fb17fd5 108# define wxUSE_FSVOLUME 0
05815ab3
VZ
109#endif /* !defined(wxUSE_FSVOLUME) */
110
03169422
RL
111#ifndef wxUSE_DYNAMIC_LOADER
112# ifdef wxABORT_ON_CONFIG_ERROR
113# error "wxUSE_DYNAMIC_LOADER must be defined."
114# else
115# define wxUSE_DYNAMIC_LOADER 0
116# endif
117#endif /* !defined(wxUSE_DYNAMIC_LOADER) */
118
a5d46b73
VZ
119#ifndef wxUSE_LOG
120# ifdef wxABORT_ON_CONFIG_ERROR
121# error "wxUSE_LOG must be defined."
122# else
123# define wxUSE_LOG 0
124# endif
125#endif /* !defined(wxUSE_LOG) */
126
127#ifndef wxUSE_LONGLONG
128# ifdef wxABORT_ON_CONFIG_ERROR
129# error "wxUSE_LONGLONG must be defined."
130# else
131# define wxUSE_LONGLONG 0
132# endif
133#endif /* !defined(wxUSE_LONGLONG) */
134
135#ifndef wxUSE_MIMETYPE
136# ifdef wxABORT_ON_CONFIG_ERROR
137# error "wxUSE_MIMETYPE must be defined."
138# else
139# define wxUSE_MIMETYPE 0
140# endif
141#endif /* !defined(wxUSE_MIMETYPE) */
142
0c46d866
VZ
143#ifndef wxUSE_ON_FATAL_EXCEPTION
144# ifdef wxABORT_ON_CONFIG_ERROR
145# error "wxUSE_ON_FATAL_EXCEPTION must be defined."
146# else
147# define wxUSE_ON_FATAL_EXCEPTION 0
148# endif
149#endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */
150
a5d46b73
VZ
151#ifndef wxUSE_PROTOCOL
152# ifdef wxABORT_ON_CONFIG_ERROR
153# error "wxUSE_PROTOCOL must be defined."
154# else
155# define wxUSE_PROTOCOL 0
156# endif
157#endif /* !defined(wxUSE_PROTOCOL) */
158
159/* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */
160#if !wxUSE_PROTOCOL
161# undef wxUSE_PROTOCOL_HTTP
162# undef wxUSE_PROTOCOL_FTP
163# undef wxUSE_PROTOCOL_FILE
164# define wxUSE_PROTOCOL_HTTP 0
165# define wxUSE_PROTOCOL_FTP 0
166# define wxUSE_PROTOCOL_FILE 0
167#endif /* wxUSE_PROTOCOL */
168
169#ifndef wxUSE_PROTOCOL_HTTP
170# ifdef wxABORT_ON_CONFIG_ERROR
171# error "wxUSE_PROTOCOL_HTTP must be defined."
172# else
173# define wxUSE_PROTOCOL_HTTP 0
174# endif
175#endif /* !defined(wxUSE_PROTOCOL_HTTP) */
176
177#ifndef wxUSE_PROTOCOL_FTP
178# ifdef wxABORT_ON_CONFIG_ERROR
179# error "wxUSE_PROTOCOL_FTP must be defined."
180# else
181# define wxUSE_PROTOCOL_FTP 0
182# endif
183#endif /* !defined(wxUSE_PROTOCOL_FTP) */
184
185#ifndef wxUSE_PROTOCOL_FILE
186# ifdef wxABORT_ON_CONFIG_ERROR
187# error "wxUSE_PROTOCOL_FILE must be defined."
188# else
189# define wxUSE_PROTOCOL_FILE 0
190# endif
191#endif /* !defined(wxUSE_PROTOCOL_FILE) */
192
193#ifndef wxUSE_REGEX
194# ifdef wxABORT_ON_CONFIG_ERROR
195# error "wxUSE_REGEX must be defined."
196# else
197# define wxUSE_REGEX 0
198# endif
199#endif /* !defined(wxUSE_REGEX) */
200
07158944
VZ
201#ifndef wxUSE_STDPATHS
202# ifdef wxABORT_ON_CONFIG_ERROR
203# error "wxUSE_STDPATHS must be defined."
204# else
205# define wxUSE_STDPATHS 1
206# endif
207#endif /* !defined(wxUSE_STDPATHS) */
208
27b0c286
VS
209#ifndef wxUSE_XML
210# ifdef wxABORT_ON_CONFIG_ERROR
211# error "wxUSE_XML must be defined."
212# else
213# define wxUSE_XML 0
214# endif
215#endif /* !defined(wxUSE_XML) */
216
a5d46b73
VZ
217#ifndef wxUSE_SOCKETS
218# ifdef wxABORT_ON_CONFIG_ERROR
219# error "wxUSE_SOCKETS must be defined."
220# else
221# define wxUSE_SOCKETS 0
222# endif
223#endif /* !defined(wxUSE_SOCKETS) */
224
225#ifndef wxUSE_STREAMS
226# ifdef wxABORT_ON_CONFIG_ERROR
227# error "wxUSE_STREAMS must be defined."
228# else
229# define wxUSE_STREAMS 0
230# endif
231#endif /* !defined(wxUSE_STREAMS) */
232
233#ifndef wxUSE_STOPWATCH
234# ifdef wxABORT_ON_CONFIG_ERROR
235# error "wxUSE_STOPWATCH must be defined."
236# else
237# define wxUSE_STOPWATCH 0
238# endif
239#endif /* !defined(wxUSE_STOPWATCH) */
240
241#ifndef wxUSE_TEXTBUFFER
242# ifdef wxABORT_ON_CONFIG_ERROR
243# error "wxUSE_TEXTBUFFER must be defined."
244# else
245# define wxUSE_TEXTBUFFER 0
246# endif
247#endif /* !defined(wxUSE_TEXTBUFFER) */
248
249#ifndef wxUSE_TEXTFILE
250# ifdef wxABORT_ON_CONFIG_ERROR
251# error "wxUSE_TEXTFILE must be defined."
252# else
253# define wxUSE_TEXTFILE 0
254# endif
255#endif /* !defined(wxUSE_TEXTFILE) */
256
257#ifndef wxUSE_UNICODE
258# ifdef wxABORT_ON_CONFIG_ERROR
259# error "wxUSE_UNICODE must be defined."
260# else
261# define wxUSE_UNICODE 0
262# endif
263#endif /* !defined(wxUSE_UNICODE) */
264
265#ifndef wxUSE_URL
266# ifdef wxABORT_ON_CONFIG_ERROR
267# error "wxUSE_URL must be defined."
268# else
269# define wxUSE_URL 0
270# endif
271#endif /* !defined(wxUSE_URL) */
272
03169422
RL
273/*
274 all these tests are for GUI only
1e6feb95
VZ
275 */
276#if wxUSE_GUI
277
278/*
279 all of the settings tested below must be defined or we'd get an error from
280 preprocessor about invalid integer expression
281 */
282
283#ifndef wxUSE_ACCEL
284# ifdef wxABORT_ON_CONFIG_ERROR
285# error "wxUSE_ACCEL must be defined."
286# else
287# define wxUSE_ACCEL 0
288# endif
289#endif /* !defined(wxUSE_ACCEL) */
290
291#ifndef wxUSE_BMPBUTTON
292# ifdef wxABORT_ON_CONFIG_ERROR
293# error "wxUSE_BMPBUTTON must be defined."
294# else
295# define wxUSE_BMPBUTTON 0
296# endif
297#endif /* !defined(wxUSE_BMPBUTTON) */
298
299#ifndef wxUSE_BUTTON
300# ifdef wxABORT_ON_CONFIG_ERROR
301# error "wxUSE_BUTTON must be defined."
302# else
303# define wxUSE_BUTTON 0
304# endif
305#endif /* !defined(wxUSE_BUTTON) */
306
307#ifndef wxUSE_CALENDARCTRL
308# ifdef wxABORT_ON_CONFIG_ERROR
309# error "wxUSE_CALENDARCTRL must be defined."
310# else
311# define wxUSE_CALENDARCTRL 0
312# endif
313#endif /* !defined(wxUSE_CALENDARCTRL) */
314
315#ifndef wxUSE_CARET
316# ifdef wxABORT_ON_CONFIG_ERROR
317# error "wxUSE_CARET must be defined."
318# else
319# define wxUSE_CARET 0
320# endif
321#endif /* !defined(wxUSE_CARET) */
322
323#ifndef wxUSE_CHECKBOX
324# ifdef wxABORT_ON_CONFIG_ERROR
325# error "wxUSE_CHECKBOX must be defined."
326# else
327# define wxUSE_CHECKBOX 0
328# endif
329#endif /* !defined(wxUSE_CHECKBOX) */
330
331#ifndef wxUSE_CHECKLISTBOX
332# ifdef wxABORT_ON_CONFIG_ERROR
333# error "wxUSE_CHECKLISTBOX must be defined."
334# else
335# define wxUSE_CHECKLISTBOX 0
336# endif
337#endif /* !defined(wxUSE_CHECKLISTBOX) */
338
339#ifndef wxUSE_CHOICE
340# ifdef wxABORT_ON_CONFIG_ERROR
341# error "wxUSE_CHOICE must be defined."
342# else
343# define wxUSE_CHOICE 0
344# endif
345#endif /* !defined(wxUSE_CHOICE) */
346
f5e0b4bc
WS
347#ifndef wxUSE_CHOICEBOOK
348# ifdef wxABORT_ON_CONFIG_ERROR
349# error "wxUSE_CHOICEBOOK must be defined."
350# else
351# define wxUSE_CHOICEBOOK 0
352# endif
353#endif /* !defined(wxUSE_CHOICEBOOK) */
354
3379ed37
VZ
355#ifndef wxUSE_CHOICEDLG
356# ifdef wxABORT_ON_CONFIG_ERROR
357# error "wxUSE_CHOICEDLG must be defined."
358# else
359# define wxUSE_CHOICEDLG 0
360# endif
361#endif /* !defined(wxUSE_CHOICEDLG) */
362
1e6feb95
VZ
363#ifndef wxUSE_CLIPBOARD
364# ifdef wxABORT_ON_CONFIG_ERROR
365# error "wxUSE_CLIPBOARD must be defined."
366# else
367# define wxUSE_CLIPBOARD 0
368# endif
369#endif /* !defined(wxUSE_CLIPBOARD) */
370
a2c0a9c5
VZ
371#ifndef wxUSE_COLOURDLG
372# ifdef wxABORT_ON_CONFIG_ERROR
373# error "wxUSE_COLOURDLG must be defined."
374# else
375# define wxUSE_COLOURDLG 0
376# endif
377#endif /* !defined(wxUSE_COLOURDLG) */
378
1e6feb95
VZ
379#ifndef wxUSE_COMBOBOX
380# ifdef wxABORT_ON_CONFIG_ERROR
381# error "wxUSE_COMBOBOX must be defined."
382# else
383# define wxUSE_COMBOBOX 0
384# endif
385#endif /* !defined(wxUSE_COMBOBOX) */
386
387#ifndef wxUSE_DATAOBJ
388# ifdef wxABORT_ON_CONFIG_ERROR
389# error "wxUSE_DATAOBJ must be defined."
390# else
391# define wxUSE_DATAOBJ 0
392# endif
393#endif /* !defined(wxUSE_DATAOBJ) */
394
337dc4c1
WS
395#ifndef wxUSE_DATEPICKCTRL
396# ifdef wxABORT_ON_CONFIG_ERROR
397# error "wxUSE_DATEPICKCTRL must be defined."
398# else
399# define wxUSE_DATEPICKCTRL 0
400# endif
401#endif /* !defined(wxUSE_DATEPICKCTRL) */
402
f8ba082e
VZ
403#ifndef wxUSE_DISPLAY
404# ifdef wxABORT_ON_CONFIG_ERROR
405# error "wxUSE_DISPLAY must be defined."
406# else
407# define wxUSE_DISPLAY 0
408# endif
409#endif /* !defined(wxUSE_DISPLAY) */
410
3379ed37
VZ
411#ifndef wxUSE_DOC_VIEW_ARCHITECTURE
412# ifdef wxABORT_ON_CONFIG_ERROR
413# error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined."
414# else
415# define wxUSE_DOC_VIEW_ARCHITECTURE 0
416# endif
417#endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */
418
1e6feb95
VZ
419#ifndef wxUSE_FILEDLG
420# ifdef wxABORT_ON_CONFIG_ERROR
421# error "wxUSE_FILEDLG must be defined."
422# else
423# define wxUSE_FILEDLG 0
424# endif
425#endif /* !defined(wxUSE_FILEDLG) */
426
427#ifndef wxUSE_FONTDLG
428# ifdef wxABORT_ON_CONFIG_ERROR
429# error "wxUSE_FONTDLG must be defined."
430# else
431# define wxUSE_FONTDLG 0
432# endif
433#endif /* !defined(wxUSE_FONTDLG) */
434
435#ifndef wxUSE_FONTMAP
436# ifdef wxABORT_ON_CONFIG_ERROR
437# error "wxUSE_FONTMAP must be defined."
438# else
439# define wxUSE_FONTMAP 0
440# endif
441#endif /* !defined(wxUSE_FONTMAP) */
442
443#ifndef wxUSE_GAUGE
444# ifdef wxABORT_ON_CONFIG_ERROR
445# error "wxUSE_GAUGE must be defined."
446# else
447# define wxUSE_GAUGE 0
448# endif
449#endif /* !defined(wxUSE_GAUGE) */
450
451#ifndef wxUSE_GRID
452# ifdef wxABORT_ON_CONFIG_ERROR
453# error "wxUSE_GRID must be defined."
454# else
455# define wxUSE_GRID 0
456# endif
457#endif /* !defined(wxUSE_GRID) */
458
3379ed37
VZ
459#ifndef wxUSE_HELP
460# ifdef wxABORT_ON_CONFIG_ERROR
461# error "wxUSE_HELP must be defined."
462# else
463# define wxUSE_HELP 0
464# endif
465#endif /* !defined(wxUSE_HELP) */
466
05dcbb8e
VZ
467#ifndef wxUSE_HTML
468# ifdef wxABORT_ON_CONFIG_ERROR
469# error "wxUSE_HTML must be defined."
470# else
471# define wxUSE_HTML 0
472# endif
473#endif /* !defined(wxUSE_HTML) */
474
d2ebf0b7
VS
475#ifndef wxUSE_XRC
476# ifdef wxABORT_ON_CONFIG_ERROR
477# error "wxUSE_XRC must be defined."
478# else
479# define wxUSE_XRC 0
480# endif
481#endif /* !defined(wxUSE_XRC) */
482
c839485c
VS
483#ifndef wxUSE_LIBMSPACK
484# ifndef __UNIX__
485 /* set to 0 on platforms that don't have libmspack */
486# define wxUSE_LIBMSPACK 0
487# else
488# ifdef wxABORT_ON_CONFIG_ERROR
489# error "wxUSE_LIBMSPACK must be defined."
490# else
491# define wxUSE_LIBMSPACK 0
492# endif
493# endif
494#endif /* !defined(wxUSE_LIBMSPACK) */
495
658974ae
VS
496#ifndef wxUSE_ICO_CUR
497# ifdef wxABORT_ON_CONFIG_ERROR
498# error "wxUSE_ICO_CUR must be defined."
499# else
500# define wxUSE_ICO_CUR 0
501# endif
502#endif /* !defined(wxUSE_ICO_CUR) */
503
1663afc0
VS
504#ifndef wxUSE_IFF
505# ifdef wxABORT_ON_CONFIG_ERROR
506# error "wxUSE_IFF must be defined."
507# else
508# define wxUSE_IFF 0
509# endif
510#endif /* !defined(wxUSE_IFF) */
511
1e6feb95
VZ
512#ifndef wxUSE_IMAGLIST
513# ifdef wxABORT_ON_CONFIG_ERROR
514# error "wxUSE_IMAGLIST must be defined."
515# else
516# define wxUSE_IMAGLIST 0
517# endif
518#endif /* !defined(wxUSE_IMAGLIST) */
519
2131b89d
VZ
520#ifndef wxUSE_JOYSTICK
521# ifdef wxABORT_ON_CONFIG_ERROR
522# error "wxUSE_JOYSTICK must be defined."
523# else
524# define wxUSE_JOYSTICK 0
525# endif
526#endif /* !defined(wxUSE_JOYSTICK) */
527
5b5e4f32
VZ
528#ifndef wxUSE_LISTBOOK
529# ifdef wxABORT_ON_CONFIG_ERROR
530# error "wxUSE_LISTBOOK must be defined."
531# else
532# define wxUSE_LISTBOOK 0
533# endif
534#endif /* !defined(wxUSE_LISTBOOK) */
535
1e6feb95
VZ
536#ifndef wxUSE_LISTBOX
537# ifdef wxABORT_ON_CONFIG_ERROR
538# error "wxUSE_LISTBOX must be defined."
539# else
540# define wxUSE_LISTBOX 0
541# endif
542#endif /* !defined(wxUSE_LISTBOX) */
543
544#ifndef wxUSE_LISTCTRL
545# ifdef wxABORT_ON_CONFIG_ERROR
546# error "wxUSE_LISTCTRL must be defined."
547# else
548# define wxUSE_LISTCTRL 0
549# endif
550#endif /* !defined(wxUSE_LISTCTRL) */
551
3379ed37
VZ
552#ifndef wxUSE_LOGGUI
553# ifdef wxABORT_ON_CONFIG_ERROR
554# error "wxUSE_LOGGUI must be defined."
555# else
556# define wxUSE_LOGGUI 0
557# endif
558#endif /* !defined(wxUSE_LOGGUI) */
559
560#ifndef wxUSE_LOGWINDOW
561# ifdef wxABORT_ON_CONFIG_ERROR
562# error "wxUSE_LOGWINDOW must be defined."
563# else
564# define wxUSE_LOGWINDOW 0
565# endif
566#endif /* !defined(wxUSE_LOGWINDOW) */
e421922f 567
3e6e2754
JS
568#ifndef wxUSE_LOG_DIALOG
569# ifdef wxABORT_ON_CONFIG_ERROR
570# error "wxUSE_LOG_DIALOG must be defined."
571# else
572# define wxUSE_LOG_DIALOG 0
573# endif
71908213 574#endif /* !defined(wxUSE_LOG_DIALOG) */
3e6e2754 575
efd17a1d
VZ
576#ifndef wxUSE_MDI
577# ifdef wxABORT_ON_CONFIG_ERROR
578# error "wxUSE_MDI must be defined."
579# else
580# define wxUSE_MDI 0
581# endif
582#endif /* !defined(wxUSE_MDI) */
583
1e6feb95
VZ
584#ifndef wxUSE_MDI_ARCHITECTURE
585# ifdef wxABORT_ON_CONFIG_ERROR
586# error "wxUSE_MDI_ARCHITECTURE must be defined."
587# else
588# define wxUSE_MDI_ARCHITECTURE 0
589# endif
590#endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
591
592#ifndef wxUSE_MENUS
593# ifdef wxABORT_ON_CONFIG_ERROR
594# error "wxUSE_MENUS must be defined."
595# else
596# define wxUSE_MENUS 0
597# endif
598#endif /* !defined(wxUSE_MENUS) */
599
3379ed37
VZ
600#ifndef wxUSE_MSGDLG
601# ifdef wxABORT_ON_CONFIG_ERROR
602# error "wxUSE_MSGDLG must be defined."
603# else
604# define wxUSE_MSGDLG 0
605# endif
606#endif /* !defined(wxUSE_MSGDLG) */
607
1e6feb95
VZ
608#ifndef wxUSE_NOTEBOOK
609# ifdef wxABORT_ON_CONFIG_ERROR
610# error "wxUSE_NOTEBOOK must be defined."
611# else
612# define wxUSE_NOTEBOOK 0
613# endif
614#endif /* !defined(wxUSE_NOTEBOOK) */
615
d275c7eb
VZ
616#ifndef wxUSE_PALETTE
617# ifdef wxABORT_ON_CONFIG_ERROR
618# error "wxUSE_PALETTE must be defined."
619# else
620# define wxUSE_PALETTE 0
621# endif
622#endif /* !defined(wxUSE_PALETTE) */
623
1e6feb95
VZ
624#ifndef wxUSE_POPUPWIN
625# ifdef wxABORT_ON_CONFIG_ERROR
626# error "wxUSE_POPUPWIN must be defined."
627# else
628# define wxUSE_POPUPWIN 0
629# endif
630#endif /* !defined(wxUSE_POPUPWIN) */
631
3379ed37
VZ
632#ifndef wxUSE_PRINTING_ARCHITECTURE
633# ifdef wxABORT_ON_CONFIG_ERROR
634# error "wxUSE_PRINTING_ARCHITECTURE must be defined."
635# else
636# define wxUSE_PRINTING_ARCHITECTURE 0
637# endif
638#endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */
639
1e6feb95
VZ
640#ifndef wxUSE_RADIOBOX
641# ifdef wxABORT_ON_CONFIG_ERROR
642# error "wxUSE_RADIOBOX must be defined."
643# else
644# define wxUSE_RADIOBOX 0
645# endif
646#endif /* !defined(wxUSE_RADIOBOX) */
647
648#ifndef wxUSE_RADIOBTN
649# ifdef wxABORT_ON_CONFIG_ERROR
650# error "wxUSE_RADIOBTN must be defined."
651# else
652# define wxUSE_RADIOBTN 0
653# endif
654#endif /* !defined(wxUSE_RADIOBTN) */
655
656#ifndef wxUSE_SASH
657# ifdef wxABORT_ON_CONFIG_ERROR
658# error "wxUSE_SASH must be defined."
659# else
660# define wxUSE_SASH 0
661# endif
662#endif /* !defined(wxUSE_SASH) */
663
664#ifndef wxUSE_SCROLLBAR
665# ifdef wxABORT_ON_CONFIG_ERROR
666# error "wxUSE_SCROLLBAR must be defined."
667# else
668# define wxUSE_SCROLLBAR 0
669# endif
670#endif /* !defined(wxUSE_SCROLLBAR) */
671
672#ifndef wxUSE_SLIDER
673# ifdef wxABORT_ON_CONFIG_ERROR
674# error "wxUSE_SLIDER must be defined."
675# else
676# define wxUSE_SLIDER 0
677# endif
678#endif /* !defined(wxUSE_SLIDER) */
679
cad1a197
VS
680#ifndef wxUSE_SOUND
681# ifdef wxABORT_ON_CONFIG_ERROR
682# error "wxUSE_SOUND must be defined."
683# else
684# define wxUSE_SOUND 0
685# endif
686#endif /* !defined(wxUSE_SOUND) */
687
1e6feb95
VZ
688#ifndef wxUSE_SPINBTN
689# ifdef wxABORT_ON_CONFIG_ERROR
690# error "wxUSE_SPINBTN must be defined."
691# else
692# define wxUSE_SPINBTN 0
693# endif
694#endif /* !defined(wxUSE_SPINBTN) */
695
696#ifndef wxUSE_SPINCTRL
697# ifdef wxABORT_ON_CONFIG_ERROR
698# error "wxUSE_SPINCTRL must be defined."
699# else
700# define wxUSE_SPINCTRL 0
701# endif
702#endif /* !defined(wxUSE_SPINCTRL) */
703
2654a046
MB
704#ifndef wxUSE_SPLASH
705# ifdef wxABORT_ON_CONFIG_ERROR
706# error "wxUSE_SPLASH must be defined."
707# else
708# define wxUSE_SPLASH 0
709# endif
710#endif /* !defined(wxUSE_SPLASH) */
711
1e6feb95
VZ
712#ifndef wxUSE_SPLITTER
713# ifdef wxABORT_ON_CONFIG_ERROR
714# error "wxUSE_SPLITTER must be defined."
715# else
716# define wxUSE_SPLITTER 0
717# endif
718#endif /* !defined(wxUSE_SPLITTER) */
719
720#ifndef wxUSE_STATBMP
721# ifdef wxABORT_ON_CONFIG_ERROR
722# error "wxUSE_STATBMP must be defined."
723# else
724# define wxUSE_STATBMP 0
725# endif
726#endif /* !defined(wxUSE_STATBMP) */
727
728#ifndef wxUSE_STATBOX
729# ifdef wxABORT_ON_CONFIG_ERROR
730# error "wxUSE_STATBOX must be defined."
731# else
732# define wxUSE_STATBOX 0
733# endif
734#endif /* !defined(wxUSE_STATBOX) */
735
736#ifndef wxUSE_STATLINE
737# ifdef wxABORT_ON_CONFIG_ERROR
738# error "wxUSE_STATLINE must be defined."
739# else
740# define wxUSE_STATLINE 0
741# endif
742#endif /* !defined(wxUSE_STATLINE) */
743
3379ed37
VZ
744#ifndef wxUSE_STATTEXT
745# ifdef wxABORT_ON_CONFIG_ERROR
746# error "wxUSE_STATTEXT must be defined."
747# else
748# define wxUSE_STATTEXT 0
749# endif
750#endif /* !defined(wxUSE_STATTEXT) */
751
1e6feb95
VZ
752#ifndef wxUSE_STATUSBAR
753# ifdef wxABORT_ON_CONFIG_ERROR
754# error "wxUSE_STATUSBAR must be defined."
755# else
756# define wxUSE_STATUSBAR 0
757# endif
758#endif /* !defined(wxUSE_STATUSBAR) */
759
1e6feb95
VZ
760#ifndef wxUSE_TAB_DIALOG
761# ifdef wxABORT_ON_CONFIG_ERROR
762# error "wxUSE_TAB_DIALOG must be defined."
763# else
764# define wxUSE_TAB_DIALOG 0
765# endif
766#endif /* !defined(wxUSE_TAB_DIALOG) */
767
768#ifndef wxUSE_TEXTCTRL
769# ifdef wxABORT_ON_CONFIG_ERROR
770# error "wxUSE_TEXTCTRL must be defined."
771# else
772# define wxUSE_TEXTCTRL 0
773# endif
774#endif /* !defined(wxUSE_TEXTCTRL) */
775
f38bcae5
VZ
776#ifndef wxUSE_TIPWINDOW
777# ifdef wxABORT_ON_CONFIG_ERROR
778# error "wxUSE_TIPWINDOW must be defined."
779# else
780# define wxUSE_TIPWINDOW 0
781# endif
782#endif /* !defined(wxUSE_TIPWINDOW) */
783
1e6feb95
VZ
784#ifndef wxUSE_TOOLBAR
785# ifdef wxABORT_ON_CONFIG_ERROR
786# error "wxUSE_TOOLBAR must be defined."
787# else
788# define wxUSE_TOOLBAR 0
789# endif
790#endif /* !defined(wxUSE_TOOLBAR) */
791
792#ifndef wxUSE_TOOLTIPS
793# ifdef wxABORT_ON_CONFIG_ERROR
794# error "wxUSE_TOOLTIPS must be defined."
795# else
796# define wxUSE_TOOLTIPS 0
797# endif
798#endif /* !defined(wxUSE_TOOLTIPS) */
799
800#ifndef wxUSE_TREECTRL
801# ifdef wxABORT_ON_CONFIG_ERROR
802# error "wxUSE_TREECTRL must be defined."
803# else
804# define wxUSE_TREECTRL 0
805# endif
806#endif /* !defined(wxUSE_TREECTRL) */
807
f8ba082e 808#ifndef wxUSE_VALIDATORS
12491c1f 809# ifdef wxABORT_ON_CONFIG_ERROR
f8ba082e 810# error "wxUSE_VALIDATORS must be defined."
12491c1f 811# else
f8ba082e 812# define wxUSE_VALIDATORS 0
12491c1f 813# endif
f8ba082e 814#endif /* !defined(wxUSE_VALIDATORS) */
12491c1f 815
3379ed37
VZ
816#ifndef wxUSE_WXHTML_HELP
817# ifdef wxABORT_ON_CONFIG_ERROR
818# error "wxUSE_WXHTML_HELP must be defined."
819# else
820# define wxUSE_WXHTML_HELP 0
821# endif
822#endif /* !defined(wxUSE_WXHTML_HELP) */
823
a5d46b73 824#endif /* wxUSE_GUI */
c4d596ea 825
1e6feb95
VZ
826/*
827 check consistency of the settings
828 */
a5d46b73 829
0c46d866
VZ
830#if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION
831# ifdef wxABORT_ON_CONFIG_ERROR
832# error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION"
833# else
834# undef wxUSE_CRASHREPORT
835# define wxUSE_CRASHREPORT 0
836# endif
837#endif /* wxUSE_CRASHREPORT */
838
a5d46b73
VZ
839#if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP
840# if !wxUSE_PROTOCOL
841# ifdef wxABORT_ON_CONFIG_ERROR
842# error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL"
843# else
844# undef wxUSE_PROTOCOL
845# define wxUSE_PROTOCOL 1
846# endif
847# endif
848#endif /* wxUSE_PROTOCOL_XXX */
849
850#if wxUSE_URL
851# if !wxUSE_PROTOCOL
852# ifdef wxABORT_ON_CONFIG_ERROR
853# error "wxUSE_URL requires wxUSE_PROTOCOL"
854# else
855# undef wxUSE_PROTOCOL
856# define wxUSE_PROTOCOL 1
857# endif
858# endif
859#endif /* wxUSE_URL */
860
861#if wxUSE_PROTOCOL
862# if !wxUSE_SOCKETS
863# if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP
864# ifdef wxABORT_ON_CONFIG_ERROR
865# error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS"
866# else
867# undef wxUSE_SOCKETS
868# define wxUSE_SOCKETS 1
869# endif
870# endif
871# endif
872
873# if !wxUSE_STREAMS
874# ifdef wxABORT_ON_CONFIG_ERROR
875# error "wxUSE_PROTOCOL requires wxUSE_STREAMS"
876# else
877# undef wxUSE_STREAMS
878# define wxUSE_STREAMS 1
879# endif
880# endif
881#endif /* wxUSE_PROTOCOL */
882
c7f3eecc
VZ
883/* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */
884#if wxUSE_HTML
885# if !wxUSE_FILESYSTEM
886# ifdef wxABORT_ON_CONFIG_ERROR
887# error "wxHTML requires wxFileSystem"
888# else
889# undef wxUSE_FILESYSTEM
890# define wxUSE_FILESYSTEM 1
891# endif
892# endif
893#endif /* wxUSE_HTML */
894
895#if wxUSE_FILESYSTEM
896# if !wxUSE_STREAMS
897# ifdef wxABORT_ON_CONFIG_ERROR
898# error "wxUSE_FILESYSTEM requires wxUSE_STREAMS"
899# else
900# undef wxUSE_STREAMS
901# define wxUSE_STREAMS 1
902# endif
903# endif
904#endif /* wxUSE_FILESYSTEM */
905
ce73e654
VS
906#if wxUSE_FS_INET
907# if !wxUSE_PROTOCOL
908# ifdef wxABORT_ON_CONFIG_ERROR
909# error "wxUSE_FS_INET requires wxUSE_PROTOCOL"
910# else
911# undef wxUSE_PROTOCOL
912# define wxUSE_PROTOCOL 1
913# endif
914# endif
915#endif /* wxUSE_FS_INET */
916
c7f3eecc 917#if wxUSE_STOPWATCH || wxUSE_DATETIME
a5d46b73
VZ
918# if !wxUSE_LONGLONG
919# ifdef wxABORT_ON_CONFIG_ERROR
c7f3eecc 920# error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG"
a5d46b73
VZ
921# else
922# undef wxUSE_LONGLONG
923# define wxUSE_LONGLONG 1
924# endif
925# endif
926#endif /* wxUSE_STOPWATCH */
927
928#if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
929# ifdef wxABORT_ON_CONFIG_ERROR
930# error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
931# else
932# undef wxUSE_TEXTFILE
933# define wxUSE_TEXTFILE 1
934# endif
935#endif /* wxUSE_MIMETYPE */
936
937#if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER
938# ifdef wxABORT_ON_CONFIG_ERROR
939# error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER"
940# else
941# undef wxUSE_TEXTBUFFER
942# define wxUSE_TEXTBUFFER 1
943# endif
944#endif /* wxUSE_TEXTFILE */
945
946#if wxUSE_TEXTFILE && !wxUSE_FILE
947# ifdef wxABORT_ON_CONFIG_ERROR
948# error "wxUSE_TEXTFILE requires wxUSE_FILE"
949# else
950# undef wxUSE_FILE
951# define wxUSE_FILE 1
952# endif
953#endif /* wxUSE_TEXTFILE */
954
7f799744
VS
955#if wxUSE_XML && !wxUSE_WCHAR_T
956# ifdef wxABORT_ON_CONFIG_ERROR
957# error "wxUSE_XML requires wxUSE_WCHAR_T"
958# else
959# undef wxUSE_XML
960# define wxUSE_XML 0
961# endif
36a22fa3 962#endif /* wxUSE_XML */
7f799744 963
1948bb32
VS
964#if !wxUSE_DYNLIB_CLASS
965# if wxUSE_DYNAMIC_LOADER
966# ifdef wxABORT_ON_CONFIG_ERROR
967# error "wxUSE_DYNAMIC_LOADER requires wxUSE_DYNLIB_CLASS."
968# else
969# define wxUSE_DYNLIB_CLASS 1
970# endif
971# endif
972#endif /* wxUSE_DYNLIB_CLASS */
973
81f90336
MW
974#if wxUSE_ZIPSTREAM
975# if !wxUSE_ZLIB
976# ifdef wxABORT_ON_CONFIG_ERROR
977# error "wxZip requires wxZlib"
978# else
979# undef wxUSE_ZLIB
980# define wxUSE_ZLIB 1
981# endif
982# endif
9e8e867f 983# if !wxUSE_ARCHIVE_STREAMS
81f90336
MW
984# ifdef wxABORT_ON_CONFIG_ERROR
985# error "wxZip requires wxArchive"
986# else
9e8e867f
MW
987# undef wxUSE_ARCHIVE_STREAMS
988# define wxUSE_ARCHIVE_STREAMS 1
81f90336
MW
989# endif
990# endif
991#endif /* wxUSE_ZIPSTREAM */
992
a5d46b73
VZ
993/* the rest of the tests is for the GUI settings only */
994#if wxUSE_GUI
995
1e6feb95
VZ
996#if wxUSE_BUTTON || \
997 wxUSE_CALENDARCTRL || \
998 wxUSE_CARET || \
999 wxUSE_COMBOBOX || \
1000 wxUSE_BMPBUTTON || \
1001 wxUSE_CHECKBOX || \
1002 wxUSE_CHECKLISTBOX || \
1003 wxUSE_CHOICE || \
1004 wxUSE_GAUGE || \
1005 wxUSE_GRID || \
1e6feb95
VZ
1006 wxUSE_LISTBOX || \
1007 wxUSE_LISTCTRL || \
1008 wxUSE_NOTEBOOK || \
1009 wxUSE_RADIOBOX || \
1010 wxUSE_RADIOBTN || \
1011 wxUSE_SCROLLBAR || \
1012 wxUSE_SLIDER || \
1013 wxUSE_SPINBTN || \
1014 wxUSE_SPINCTRL || \
1015 wxUSE_STATBMP || \
1016 wxUSE_STATBOX || \
1017 wxUSE_STATLINE || \
3379ed37 1018 wxUSE_STATTEXT || \
1e6feb95
VZ
1019 wxUSE_STATUSBAR || \
1020 wxUSE_TEXTCTRL || \
1021 wxUSE_TOOLBAR || \
1022 wxUSE_TREECTRL
1023# if !wxUSE_CONTROLS
1024# ifdef wxABORT_ON_CONFIG_ERROR
1025# error "wxUSE_CONTROLS unset but some controls used"
1026# else
1027# undef wxUSE_CONTROLS
1028# define wxUSE_CONTROLS 1
1029# endif
1030# endif
1031#endif /* controls */
1032
0b4f47a3
DS
1033#if wxUSE_BMPBUTTON
1034# if !wxUSE_BUTTON
1035# ifdef wxABORT_ON_CONFIG_ERROR
1036# error "wxUSE_BMPBUTTON requires wxUSE_BUTTON"
1037# else
1038# undef wxUSE_BUTTON
1039# define wxUSE_BUTTON 1
1040# endif
1041# endif
1042#endif /* wxUSE_BMPBUTTON */
1043
f5e0b4bc 1044#if wxUSE_NOTEBOOK || wxUSE_LISTBOOK || wxUSE_CHOICEBOOK
15aad3b9
VZ
1045# if defined(wxUSE_BOOKCTRL) && !wxUSE_BOOKCTRL
1046# ifdef wxABORT_ON_CONFIG_ERROR
1047# error "wxUSE_BOOKCTRL must be set."
1048# else
1049# undef wxUSE_BOOKCTRL
1050# endif
1051# endif
1052
1053# ifndef wxUSE_BOOKCTRL
1054# define wxUSE_BOOKCTRL 1
1055# endif
1056#endif /* wxUSE_NOTEBOOK */
1057
5b5e4f32
VZ
1058#if wxUSE_LISTBOOK
1059# if !wxUSE_LISTCTRL
1060# ifdef wxABORT_ON_CONFIG_ERROR
1061# error "wxListbook requires wxListCtrl"
1062# else
1063# undef wxUSE_LISTCTRL
1064# define wxUSE_LISTCTRL 1
1065# endif
1066# endif
1067#endif /* wxUSE_LISTBOOK */
1068
f5e0b4bc
WS
1069#if wxUSE_CHOICEBOOK
1070# if !wxUSE_CHOICE
1071# ifdef wxABORT_ON_CONFIG_ERROR
1072# error "wxChoicebook requires wxChoice"
1073# else
1074# undef wxUSE_CHOICE
1075# define wxUSE_CHOICE 1
1076# endif
1077# endif
1078#endif /* wxUSE_CHOICEBOOK */
1079
da4486fb
VZ
1080/* don't attempt to use native status bar on the platforms not having it */
1081#ifndef wxUSE_NATIVE_STATUSBAR
1082# define wxUSE_NATIVE_STATUSBAR 0
1083#elif wxUSE_NATIVE_STATUSBAR
b08cd3bf
WS
1084# if defined(__WXUNIVERSAL__) || !( defined(__WXMSW__) || \
1085 defined(__WXMAC__) || \
1086 defined(__WXPALMOS__) )
da4486fb
VZ
1087# undef wxUSE_NATIVE_STATUSBAR
1088# define wxUSE_NATIVE_STATUSBAR 0
1089# endif
1090#endif
1091
3379ed37
VZ
1092/* wxUniv-specific dependencies */
1093#if defined(__WXUNIVERSAL__)
1094# if (wxUSE_COMBOBOX || wxUSE_MENUS) && !wxUSE_POPUPWIN
1095# ifdef wxABORT_ON_CONFIG_ERROR
1096# error "wxUSE_POPUPWIN must be defined to use comboboxes/menus"
1097# else
1098# undef wxUSE_POPUPWIN
1099# define wxUSE_POPUPWIN 1
1100# endif
1101# endif
1102
1103# if wxUSE_COMBOBOX
1104# if !wxUSE_LISTBOX
1105# ifdef wxABORT_ON_CONFIG_ERROR
1106# error "wxComboBox requires wxListBox in wxUniversal"
1107# else
1108# undef wxUSE_LISTBOX
1109# define wxUSE_LISTBOX 1
1110# endif
1111# endif
1112# endif /* wxUSE_COMBOBOX */
1113
1114# if wxUSE_RADIOBTN
1115# if !wxUSE_CHECKBOX
1116# ifdef wxABORT_ON_CONFIG_ERROR
1117# error "wxUSE_RADIOBTN requires wxUSE_CHECKBOX in wxUniversal"
1118# else
1119# undef wxUSE_CHECKBOX
1120# define wxUSE_CHECKBOX 1
1121# endif
1122# endif
1123# endif /* wxUSE_RADIOBTN */
1124
1125# if wxUSE_TEXTCTRL
1126# if !wxUSE_CARET
1127# ifdef wxABORT_ON_CONFIG_ERROR
1128# error "wxTextCtrl requires wxCaret in wxUniversal"
1129# else
1130# undef wxUSE_CARET
1131# define wxUSE_CARET 1
1132# endif
1133# endif /* wxUSE_CARET */
1134
1135# if !wxUSE_SCROLLBAR
1136# ifdef wxABORT_ON_CONFIG_ERROR
1137# error "wxTextCtrl requires wxScrollBar in wxUniversal"
1138# else
1139# undef wxUSE_SCROLLBAR
1140# define wxUSE_SCROLLBAR 1
1141# endif
1142# endif /* wxUSE_SCROLLBAR */
1143# endif /* wxUSE_TEXTCTRL */
1144#endif /* __WXUNIVERSAL__ */
1145
1146/* wxGTK-specific dependencies */
2131b89d
VZ
1147#ifdef __WXGTK__
1148# ifndef __WXUNIVERSAL__
1149# if wxUSE_MDI_ARCHITECTURE && !wxUSE_MENUS
1150# ifdef wxABORT_ON_CONFIG_ERROR
1151# error "MDI requires wxUSE_MENUS in wxGTK"
1152# else
1153# undef wxUSE_MENUS
1154# define wxUSE_MENUS 1
1155# endif
1156# endif
1157# endif /* !__WXUNIVERSAL__ */
1158
1159# if wxUSE_JOYSTICK
1160# if !wxUSE_THREADS
1161# ifdef wxABORT_ON_CONFIG_ERROR
1162# error "wxJoystick requires threads in wxGTK"
1163# else
1164# undef wxUSE_JOYSTICK
1165# define wxUSE_JOYSTICK 0
1166# endif
3379ed37
VZ
1167# endif
1168# endif
1169#endif /* wxGTK && !wxUniv */
1170
bfc4a1c1
VS
1171/* wxMGL-specific dependencies */
1172#ifdef __WXMGL__
1173# if !wxUSE_PALETTE
1174# error "wxMGL requires wxUSE_PALETTE=1"
1175# endif
1176#endif /* wxMGL */
1177
67e489c5 1178/* Hopefully we can emulate these dialogs in due course */
9b141468 1179#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
b92203a8
VZ
1180# ifdef wxUSE_COLOURDLG
1181# undef wxUSE_COLOURDLG
1182# define wxUSE_COLOURDLG 0
1183# endif
9b141468 1184#endif /* __SMARTPHONE__ && __WXWINCE__ */
b92203a8
VZ
1185
1186
3379ed37
VZ
1187/* generic controls dependencies */
1188#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
1189# if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG
1190 /* all common controls are needed by these dialogs */
1191# if !defined(wxUSE_CHOICE) || \
1192 !defined(wxUSE_TEXTCTRL) || \
1193 !defined(wxUSE_BUTTON) || \
1194 !defined(wxUSE_CHECKBOX) || \
1195 !defined(wxUSE_STATTEXT)
1196# ifdef wxABORT_ON_CONFIG_ERROR
1197# error "These common controls are needed by common dialogs"
1198# else
1199# undef wxUSE_CHOICE
1200# define wxUSE_CHOICE 1
1201# undef wxUSE_TEXTCTRL
1202# define wxUSE_TEXTCTRL 1
1203# undef wxUSE_BUTTON
1204# define wxUSE_BUTTON 1
1205# undef wxUSE_CHECKBOX
1206# define wxUSE_CHECKBOX 1
1207# undef wxUSE_STATTEXT
1208# define wxUSE_STATTEXT 1
1209# endif
1210# endif
1211# endif
1212#endif /* !wxMSW || wxUniv */
1213
1214/* common dependencies */
1e6feb95
VZ
1215#if wxUSE_CALENDARCTRL
1216# if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
1217# ifdef wxABORT_ON_CONFIG_ERROR
1218# error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
1219# else
1220# undef wxUSE_SPINBTN
1221# undef wxUSE_COMBOBOX
1222# define wxUSE_SPINBTN 1
1223# define wxUSE_COMBOBOX 1
1224# endif
1225# endif
e2b87f38
VZ
1226
1227# if !wxUSE_DATETIME
1228# ifdef wxABORT_ON_CONFIG_ERROR
1229# error "wxCalendarCtrl requires wxUSE_DATETIME"
1230# else
1231# undef wxUSE_DATETIME
1232# define wxUSE_DATETIME 1
1233# endif
1234# endif
1e6feb95
VZ
1235#endif /* wxUSE_CALENDARCTRL */
1236
324eeecb
WS
1237#if wxUSE_DATEPICKCTRL
1238# if !wxUSE_DATETIME
1239# ifdef wxABORT_ON_CONFIG_ERROR
60bea0cf 1240# error "wxDatePickerCtrl requires wxUSE_DATETIME"
324eeecb
WS
1241# else
1242# undef wxUSE_DATETIME
1243# define wxUSE_DATETIME 1
1244# endif
1245# endif
1246#endif /* wxUSE_DATEPICKCTRL */
1247
1e6feb95
VZ
1248#if wxUSE_CHECKLISTBOX
1249# if !wxUSE_LISTBOX
1250# ifdef wxABORT_ON_CONFIG_ERROR
1251# error "wxCheckListBox requires wxListBox"
1252# else
1253# undef wxUSE_LISTBOX
1254# define wxUSE_LISTBOX 1
1255# endif
1256# endif
97e4cf6d
WS
1257#endif /* wxUSE_CHECKLISTBOX */
1258
1259#if wxUSE_CHOICEDLG
1260# if !wxUSE_LISTBOX
1261# ifdef wxABORT_ON_CONFIG_ERROR
1262# error "Choice dialogs requires wxListBox"
1263# else
1264# undef wxUSE_LISTBOX
1265# define wxUSE_LISTBOX 1
1266# endif
1267# endif
1268#endif /* wxUSE_CHOICEDLG */
1e6feb95 1269
0b4f47a3
DS
1270#if wxUSE_HELP
1271# if !wxUSE_BMPBUTTON
1272# ifdef wxABORT_ON_CONFIG_ERROR
1273# error "wxUSE_HELP requires wxUSE_BMPBUTTON"
1274# else
1275# undef wxUSE_BMPBUTTON
1276# define wxUSE_BMPBUTTON 1
1277# endif
1278# endif
adb799d6
DS
1279
1280# if !wxUSE_CHOICEDLG
1281# ifdef wxABORT_ON_CONFIG_ERROR
1282# error "wxUSE_HELP requires wxUSE_CHOICEDLG"
1283# else
1284# undef wxUSE_CHOICEDLG
1285# define wxUSE_CHOICEDLG 1
1286# endif
1287# endif
0b4f47a3
DS
1288#endif /* wxUSE_HELP */
1289
3379ed37 1290#if wxUSE_WXHTML_HELP
0e871ad0 1291# if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK || !wxUSE_SPINCTRL
3379ed37
VZ
1292# ifdef wxABORT_ON_CONFIG_ERROR
1293# error "Built in help controller can't be compiled"
1294# else
1295# undef wxUSE_HELP
1296# define wxUSE_HELP 1
1297# undef wxUSE_HTML
1298# define wxUSE_HTML 1
1299# undef wxUSE_COMBOBOX
1300# define wxUSE_COMBOBOX 1
730dfeb4
VS
1301# undef wxUSE_NOTEBOOK
1302# define wxUSE_NOTEBOOK 1
0e871ad0
WS
1303# undef wxUSE_SPINCTRL
1304# define wxUSE_SPINCTRL 1
3379ed37
VZ
1305# endif
1306# endif
1307#endif /* wxUSE_WXHTML_HELP */
1308
05e4fd64
DS
1309#if !wxUSE_IMAGE
1310/*
1311 The default wxUSE_IMAGE setting is 1, so if it's set to 0 we assume the
1312 user explicitly wants this and disable all other features that require
1313 wxUSE_IMAGE.
1314 */
1315# if wxUSE_DRAGIMAGE
1316# ifdef wxABORT_ON_CONFIG_ERROR
1317# error "wxUSE_DRAGIMAGE requires wxUSE_IMAGE"
1318# else
1319# undef wxUSE_DRAGIMAGE
1320# define wxUSE_DRAGIMAGE 0
1321# endif
1322# endif
1323
1324# if wxUSE_LIBPNG
1325# ifdef wxABORT_ON_CONFIG_ERROR
1326# error "wxUSE_LIBPNG requires wxUSE_IMAGE"
1327# else
1328# undef wxUSE_LIBPNG
1329# define wxUSE_LIBPNG 0
1330# endif
1331# endif
1332
1333# if wxUSE_LIBJPEG
1334# ifdef wxABORT_ON_CONFIG_ERROR
1335# error "wxUSE_LIBJPEG requires wxUSE_IMAGE"
1336# else
1337# undef wxUSE_LIBJPEG
1338# define wxUSE_LIBJPEG 0
1339# endif
1340# endif
1341
1342# if wxUSE_LIBTIFF
1343# ifdef wxABORT_ON_CONFIG_ERROR
1344# error "wxUSE_LIBTIFF requires wxUSE_IMAGE"
1345# else
1346# undef wxUSE_LIBTIFF
1347# define wxUSE_LIBTIFF 0
1348# endif
1349# endif
1350
1351# if wxUSE_GIF
1352# ifdef wxABORT_ON_CONFIG_ERROR
1353# error "wxUSE_GIF requires wxUSE_IMAGE"
1354# else
1355# undef wxUSE_GIF
1356# define wxUSE_GIF 0
1357# endif
1358# endif
1359
1360# if wxUSE_PNM
1361# ifdef wxABORT_ON_CONFIG_ERROR
1362# error "wxUSE_PNM requires wxUSE_IMAGE"
1363# else
1364# undef wxUSE_PNM
1365# define wxUSE_PNM 0
1366# endif
1367# endif
1368
1369# if wxUSE_PCX
1370# ifdef wxABORT_ON_CONFIG_ERROR
1371# error "wxUSE_PCX requires wxUSE_IMAGE"
1372# else
1373# undef wxUSE_PCX
1374# define wxUSE_PCX 0
1375# endif
1376# endif
1377
1378# if wxUSE_IFF
1379# ifdef wxABORT_ON_CONFIG_ERROR
1380# error "wxUSE_IFF requires wxUSE_IMAGE"
1381# else
1382# undef wxUSE_IFF
1383# define wxUSE_IFF 0
1384# endif
1385# endif
1386
1387# if wxUSE_TOOLBAR
1388# ifdef wxABORT_ON_CONFIG_ERROR
1389# error "wxUSE_TOOLBAR requires wxUSE_IMAGE"
1390# else
1391# undef wxUSE_TOOLBAR
1392# define wxUSE_TOOLBAR 0
1393# endif
1394# endif
1395
1396# if wxUSE_XPM
1397# ifdef wxABORT_ON_CONFIG_ERROR
1398# error "wxUSE_XPM requires wxUSE_IMAGE"
1399# else
1400# undef wxUSE_XPM
1401# define wxUSE_XPM 0
1402# endif
1403# endif
1404
1405#endif /* !wxUSE_IMAGE */
1406
e30285ab
VZ
1407#if wxUSE_DOC_VIEW_ARCHITECTURE
1408# if !wxUSE_MENUS
1409# ifdef wxABORT_ON_CONFIG_ERROR
1410# error "DocView requires wxUSE_MENUS"
1411# else
1412# undef wxUSE_MENUS
1413# define wxUSE_MENUS 1
1414# endif
1415# endif
1416
adb799d6
DS
1417# if !wxUSE_CHOICEDLG
1418# ifdef wxABORT_ON_CONFIG_ERROR
1419# error "DocView requires wxUSE_CHOICEDLG"
1420# else
1421# undef wxUSE_CHOICEDLG
1422# define wxUSE_CHOICEDLG 1
1423# endif
1424# endif
1425
e30285ab
VZ
1426# if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM
1427# ifdef wxABORT_ON_CONFIG_ERROR
1428# error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM"
1429# else
1430# undef wxUSE_STREAMS
1431# define wxUSE_STREAMS 1
1432# endif
1433# endif
1434#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
1435
3379ed37
VZ
1436#if wxUSE_PRINTING_ARCHITECTURE
1437# if !wxUSE_COMBOBOX
1438# ifdef wxABORT_ON_CONFIG_ERROR
1439# error "Print dialog requires wxUSE_COMBOBOX"
1440# else
1441# undef wxUSE_COMBOBOX
1442# define wxUSE_COMBOBOX 1
1443# endif
1444# endif
1445#endif /* wxUSE_PRINTING_ARCHITECTURE */
1446
e30285ab 1447#if wxUSE_MDI_ARCHITECTURE
efd17a1d
VZ
1448# if !wxUSE_MDI
1449# ifdef wxABORT_ON_CONFIG_ERROR
1450# error "MDI requires wxUSE_MDI"
1451# else
1452# undef wxUSE_MDI
1453# define wxUSE_MDI 1
1454# endif
1455# endif
1456
e30285ab 1457# if !wxUSE_DOC_VIEW_ARCHITECTURE
1e6feb95 1458# ifdef wxABORT_ON_CONFIG_ERROR
0872eaf9 1459# error "wxUSE_MDI_ARCHITECTURE requires wxUSE_DOC_VIEW_ARCHITECTURE"
1e6feb95 1460# else
e30285ab
VZ
1461# undef wxUSE_DOC_VIEW_ARCHITECTURE
1462# define wxUSE_DOC_VIEW_ARCHITECTURE 1
1e6feb95
VZ
1463# endif
1464# endif
e30285ab 1465#endif /* wxUSE_MDI_ARCHITECTURE */
1e6feb95
VZ
1466
1467#if !wxUSE_FILEDLG
2119e280 1468# if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
1e6feb95 1469# ifdef wxABORT_ON_CONFIG_ERROR
0872eaf9 1470# error "wxUSE_FILEDLG is required by wxUSE_DOC_VIEW_ARCHITECTURE and wxUSE_WXHTML_HELP!"
1e6feb95
VZ
1471# else
1472# undef wxUSE_FILEDLG
1473# define wxUSE_FILEDLG 1
1474# endif
1475# endif
e421922f 1476#endif /* wxUSE_FILEDLG */
1e6feb95 1477
555f645a
WS
1478#if !wxUSE_GAUGE || !wxUSE_BUTTON
1479# if wxUSE_PROGRESSDLG && !defined(__WXPALMOS__)
063b752e 1480# ifdef wxABORT_ON_CONFIG_ERROR
555f645a 1481# error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON"
063b752e
WS
1482# else
1483# undef wxUSE_GAUGE
555f645a 1484# undef wxUSE_BUTTON
063b752e 1485# define wxUSE_GAUGE 1
555f645a 1486# define wxUSE_BUTTON 1
063b752e
WS
1487# endif
1488# endif
1489#endif /* !wxUSE_GAUGE */
1490
0b4f47a3 1491#if !wxUSE_BUTTON
555f645a 1492# if wxUSE_FONTDLG || \
0b4f47a3
DS
1493 wxUSE_FILEDLG || \
1494 wxUSE_CHOICEDLG || \
1495 wxUSE_NUMBERDLG || \
1496 wxUSE_TEXTDLG || \
1497 wxUSE_DIRDLG || \
1498 wxUSE_STARTUP_TIPS || \
1499 wxUSE_WIZARDDLG
1500# ifdef wxABORT_ON_CONFIG_ERROR
1501# error "Common and generic dialogs require wxUSE_BUTTON"
1502# else
1503# undef wxUSE_BUTTON
1504# define wxUSE_BUTTON 1
1505# endif
1506# endif
063b752e 1507#endif /* !wxUSE_BUTTON */
0b4f47a3 1508
12491c1f
JS
1509#if !wxUSE_TOOLBAR
1510# if wxUSE_TOOLBAR_NATIVE
1511# ifdef wxABORT_ON_CONFIG_ERROR
1512# error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1"
1513# else
1514# undef wxUSE_TOOLBAR_NATIVE
1515# define wxUSE_TOOLBAR_NATIVE 0
1516# endif
1517# endif
1518
1519# if wxUSE_TOOLBAR_SIMPLE
1520# ifdef wxABORT_ON_CONFIG_ERROR
1521# error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_SIMPLE is set to 1"
1522# else
1523# undef wxUSE_TOOLBAR_SIMPLE
1524# define wxUSE_TOOLBAR_SIMPLE 0
1525# endif
1526# endif
1527#endif
1528
1e6feb95
VZ
1529#if !wxUSE_IMAGLIST
1530# if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
1531# ifdef wxABORT_ON_CONFIG_ERROR
1532# error "wxImageList must be compiled as well"
1533# else
1534# undef wxUSE_IMAGLIST
1535# define wxUSE_IMAGLIST 1
1536# endif
1537# endif
1538#endif /* !wxUSE_IMAGLIST */
1539
e421922f
VZ
1540#if !wxUSE_MSGDLG
1541# ifdef wxABORT_ON_CONFIG_ERROR
1542 /* FIXME: should compile without it, of course, but doesn't */
1543# error "wxMessageBox is always needed"
1544# else
1545# undef wxUSE_MSGDLG
1546# define wxUSE_MSGDLG 1
1547# endif
1548#endif
1549
1e6feb95 1550#if wxUSE_RADIOBOX
9a727a3b 1551# if !wxUSE_RADIOBTN
1e6feb95 1552# ifdef wxABORT_ON_CONFIG_ERROR
9a727a3b 1553# error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN"
1e6feb95
VZ
1554# else
1555# undef wxUSE_RADIOBTN
1e6feb95 1556# define wxUSE_RADIOBTN 1
9a727a3b
WS
1557# endif
1558# endif
1559# if !wxUSE_STATBOX && !defined(__WXPALMOS__)
1560# ifdef wxABORT_ON_CONFIG_ERROR
1561# error "wxUSE_RADIOBOX requires wxUSE_STATBOX"
1562# else
1563# undef wxUSE_STATBOX
1e6feb95
VZ
1564# define wxUSE_STATBOX 1
1565# endif
1566# endif
1567#endif /* wxUSE_RADIOBOX */
1568
3379ed37
VZ
1569#if wxUSE_LOGWINDOW
1570# if !wxUSE_TEXTCTRL
1571# ifdef wxABORT_ON_CONFIG_ERROR
1572# error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL"
1573# else
1574# undef wxUSE_TEXTCTRL
1575# define wxUSE_TEXTCTRL 1
1576# endif
1577# endif
1578#endif /* wxUSE_LOGWINDOW */
1e6feb95 1579
3e6e2754 1580#if wxUSE_LOG_DIALOG
0b4f47a3 1581# if !wxUSE_LISTCTRL || !wxUSE_BUTTON
3e6e2754 1582# ifdef wxABORT_ON_CONFIG_ERROR
0b4f47a3 1583# error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL and wxUSE_BUTTON"
3e6e2754
JS
1584# else
1585# undef wxUSE_LISTCTRL
1586# define wxUSE_LISTCTRL 1
0b4f47a3
DS
1587# undef wxUSE_BUTTON
1588# define wxUSE_BUTTON 1
3e6e2754
JS
1589# endif
1590# endif
1591#endif /* wxUSE_LOG_DIALOG */
1592
1e6feb95 1593#if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
3379ed37 1594# ifdef wxABORT_ON_CONFIG_ERROR
1e6feb95
VZ
1595# error "wxClipboard requires wxDataObject"
1596# else
1597# undef wxUSE_DATAOBJ
1598# define wxUSE_DATAOBJ 1
1599# endif
1600#endif /* wxUSE_CLIPBOARD */
1601
2b5f62a0
VZ
1602#if wxUSE_WX_RESOURCES && !wxUSE_PROLOGIO
1603# ifdef wxABORT_ON_CONFIG_ERROR
1604# error "wxr resources require PrologIO"
1605# else
1606# undef wxUSE_PROLOGIO
1607# define wxUSE_PROLOGIO 1
1608# endif
1609#endif /* wxUSE_WX_RESOURCES */
1610
d2ebf0b7
VS
1611#if wxUSE_XRC && !wxUSE_XML
1612# ifdef wxABORT_ON_CONFIG_ERROR
1613# error "wxUSE_XRC requires wxUSE_XML"
1614# else
1615# undef wxUSE_XRC
1616# define wxUSE_XRC 0
1617# endif
5a017695 1618#endif /* wxUSE_XRC */
d2ebf0b7 1619
4669dcb2
RN
1620#if wxUSE_SOCKETS && !wxUSE_STOPWATCH
1621# ifdef wxABORT_ON_CONFIG_ERROR
1622# error "wxUSE_SOCKETS requires wxUSE_STOPWATCH"
1623# else
1624# undef wxUSE_SOCKETS
1625# define wxUSE_SOCKETS 0
1626# endif
1627#endif /* wxUSE_SOCKETS */
1628
1e6feb95 1629#endif /* wxUSE_GUI */