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