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