]> git.saurik.com Git - wxWidgets.git/blame - include/wx/chkconf.h
Some work for wxX11 on 8-bit visuals.
[wxWidgets.git] / include / wx / chkconf.h
CommitLineData
1e6feb95
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@wxwindows.org>
9 * Licence: wxWindows license
10 */
11
12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13
14/*
15 this global setting determintes what should we do if the setting FOO
16 requires BAR and BAR is not set: we can either silently define BAR
17 (default, recommended) or give an error and abort (mainly useful for
18 developpers only)
19 */
20#define wxABORT_ON_CONFIG_ERROR
21
6962f34e
VZ
22/*
23 global features
24 */
25
26/* GUI build by default */
27#if !defined(wxUSE_GUI)
28# define wxUSE_GUI 1
29#endif /* !defined(wxUSE_GUI) */
30
31/* wxBase doesn't need compatibility settings as it's a new port */
32#if !wxUSE_GUI
33# undef WXWIN_COMPATIBILITY
34# undef WXWIN_COMPATIBILITY_2
35# undef WXWIN_COMPATIBILITY_2_2
36# define WXWIN_COMPATIBILITY 0
37# define WXWIN_COMPATIBILITY_2 0
38# define WXWIN_COMPATIBILITY_2_2 0
39#endif /* !wxUSE_GUI */
03169422 40
1e6feb95 41/*
03169422
RL
42 tests for non GUI features
43 */
44
45#ifndef wxUSE_DYNLIB_CLASS
46# ifdef wxABORT_ON_CONFIG_ERROR
47# error "wxUSE_DYNLIB_CLASS must be defined."
48# else
49# define wxUSE_DYNLIB_CLASS 0
50# endif
51#endif /* !defined(wxUSE_DYNLIB_CLASS) */
52
6fb17fd5 53/* don't give an error about this one yet, it's not fully implemented */
05815ab3 54#ifndef wxUSE_FSVOLUME
6fb17fd5 55# define wxUSE_FSVOLUME 0
05815ab3
VZ
56#endif /* !defined(wxUSE_FSVOLUME) */
57
03169422
RL
58#ifndef wxUSE_DYNAMIC_LOADER
59# ifdef wxABORT_ON_CONFIG_ERROR
60# error "wxUSE_DYNAMIC_LOADER must be defined."
61# else
62# define wxUSE_DYNAMIC_LOADER 0
63# endif
64#endif /* !defined(wxUSE_DYNAMIC_LOADER) */
65
a5d46b73
VZ
66#ifndef wxUSE_LOG
67# ifdef wxABORT_ON_CONFIG_ERROR
68# error "wxUSE_LOG must be defined."
69# else
70# define wxUSE_LOG 0
71# endif
72#endif /* !defined(wxUSE_LOG) */
73
74#ifndef wxUSE_LONGLONG
75# ifdef wxABORT_ON_CONFIG_ERROR
76# error "wxUSE_LONGLONG must be defined."
77# else
78# define wxUSE_LONGLONG 0
79# endif
80#endif /* !defined(wxUSE_LONGLONG) */
81
82#ifndef wxUSE_MIMETYPE
83# ifdef wxABORT_ON_CONFIG_ERROR
84# error "wxUSE_MIMETYPE must be defined."
85# else
86# define wxUSE_MIMETYPE 0
87# endif
88#endif /* !defined(wxUSE_MIMETYPE) */
89
90#ifndef wxUSE_PROTOCOL
91# ifdef wxABORT_ON_CONFIG_ERROR
92# error "wxUSE_PROTOCOL must be defined."
93# else
94# define wxUSE_PROTOCOL 0
95# endif
96#endif /* !defined(wxUSE_PROTOCOL) */
97
98/* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */
99#if !wxUSE_PROTOCOL
100# undef wxUSE_PROTOCOL_HTTP
101# undef wxUSE_PROTOCOL_FTP
102# undef wxUSE_PROTOCOL_FILE
103# define wxUSE_PROTOCOL_HTTP 0
104# define wxUSE_PROTOCOL_FTP 0
105# define wxUSE_PROTOCOL_FILE 0
106#endif /* wxUSE_PROTOCOL */
107
108#ifndef wxUSE_PROTOCOL_HTTP
109# ifdef wxABORT_ON_CONFIG_ERROR
110# error "wxUSE_PROTOCOL_HTTP must be defined."
111# else
112# define wxUSE_PROTOCOL_HTTP 0
113# endif
114#endif /* !defined(wxUSE_PROTOCOL_HTTP) */
115
116#ifndef wxUSE_PROTOCOL_FTP
117# ifdef wxABORT_ON_CONFIG_ERROR
118# error "wxUSE_PROTOCOL_FTP must be defined."
119# else
120# define wxUSE_PROTOCOL_FTP 0
121# endif
122#endif /* !defined(wxUSE_PROTOCOL_FTP) */
123
124#ifndef wxUSE_PROTOCOL_FILE
125# ifdef wxABORT_ON_CONFIG_ERROR
126# error "wxUSE_PROTOCOL_FILE must be defined."
127# else
128# define wxUSE_PROTOCOL_FILE 0
129# endif
130#endif /* !defined(wxUSE_PROTOCOL_FILE) */
131
132#ifndef wxUSE_REGEX
133# ifdef wxABORT_ON_CONFIG_ERROR
134# error "wxUSE_REGEX must be defined."
135# else
136# define wxUSE_REGEX 0
137# endif
138#endif /* !defined(wxUSE_REGEX) */
139
140#ifndef wxUSE_SOCKETS
141# ifdef wxABORT_ON_CONFIG_ERROR
142# error "wxUSE_SOCKETS must be defined."
143# else
144# define wxUSE_SOCKETS 0
145# endif
146#endif /* !defined(wxUSE_SOCKETS) */
147
148#ifndef wxUSE_STREAMS
149# ifdef wxABORT_ON_CONFIG_ERROR
150# error "wxUSE_STREAMS must be defined."
151# else
152# define wxUSE_STREAMS 0
153# endif
154#endif /* !defined(wxUSE_STREAMS) */
155
156#ifndef wxUSE_STOPWATCH
157# ifdef wxABORT_ON_CONFIG_ERROR
158# error "wxUSE_STOPWATCH must be defined."
159# else
160# define wxUSE_STOPWATCH 0
161# endif
162#endif /* !defined(wxUSE_STOPWATCH) */
163
164#ifndef wxUSE_TEXTBUFFER
165# ifdef wxABORT_ON_CONFIG_ERROR
166# error "wxUSE_TEXTBUFFER must be defined."
167# else
168# define wxUSE_TEXTBUFFER 0
169# endif
170#endif /* !defined(wxUSE_TEXTBUFFER) */
171
172#ifndef wxUSE_TEXTFILE
173# ifdef wxABORT_ON_CONFIG_ERROR
174# error "wxUSE_TEXTFILE must be defined."
175# else
176# define wxUSE_TEXTFILE 0
177# endif
178#endif /* !defined(wxUSE_TEXTFILE) */
179
180#ifndef wxUSE_UNICODE
181# ifdef wxABORT_ON_CONFIG_ERROR
182# error "wxUSE_UNICODE must be defined."
183# else
184# define wxUSE_UNICODE 0
185# endif
186#endif /* !defined(wxUSE_UNICODE) */
187
188#ifndef wxUSE_URL
189# ifdef wxABORT_ON_CONFIG_ERROR
190# error "wxUSE_URL must be defined."
191# else
192# define wxUSE_URL 0
193# endif
194#endif /* !defined(wxUSE_URL) */
195
03169422
RL
196/*
197 all these tests are for GUI only
1e6feb95
VZ
198 */
199#if wxUSE_GUI
200
201/*
202 all of the settings tested below must be defined or we'd get an error from
203 preprocessor about invalid integer expression
204 */
205
206#ifndef wxUSE_ACCEL
207# ifdef wxABORT_ON_CONFIG_ERROR
208# error "wxUSE_ACCEL must be defined."
209# else
210# define wxUSE_ACCEL 0
211# endif
212#endif /* !defined(wxUSE_ACCEL) */
213
214#ifndef wxUSE_BMPBUTTON
215# ifdef wxABORT_ON_CONFIG_ERROR
216# error "wxUSE_BMPBUTTON must be defined."
217# else
218# define wxUSE_BMPBUTTON 0
219# endif
220#endif /* !defined(wxUSE_BMPBUTTON) */
221
222#ifndef wxUSE_BUTTON
223# ifdef wxABORT_ON_CONFIG_ERROR
224# error "wxUSE_BUTTON must be defined."
225# else
226# define wxUSE_BUTTON 0
227# endif
228#endif /* !defined(wxUSE_BUTTON) */
229
230#ifndef wxUSE_CALENDARCTRL
231# ifdef wxABORT_ON_CONFIG_ERROR
232# error "wxUSE_CALENDARCTRL must be defined."
233# else
234# define wxUSE_CALENDARCTRL 0
235# endif
236#endif /* !defined(wxUSE_CALENDARCTRL) */
237
238#ifndef wxUSE_CARET
239# ifdef wxABORT_ON_CONFIG_ERROR
240# error "wxUSE_CARET must be defined."
241# else
242# define wxUSE_CARET 0
243# endif
244#endif /* !defined(wxUSE_CARET) */
245
246#ifndef wxUSE_CHECKBOX
247# ifdef wxABORT_ON_CONFIG_ERROR
248# error "wxUSE_CHECKBOX must be defined."
249# else
250# define wxUSE_CHECKBOX 0
251# endif
252#endif /* !defined(wxUSE_CHECKBOX) */
253
254#ifndef wxUSE_CHECKLISTBOX
255# ifdef wxABORT_ON_CONFIG_ERROR
256# error "wxUSE_CHECKLISTBOX must be defined."
257# else
258# define wxUSE_CHECKLISTBOX 0
259# endif
260#endif /* !defined(wxUSE_CHECKLISTBOX) */
261
262#ifndef wxUSE_CHOICE
263# ifdef wxABORT_ON_CONFIG_ERROR
264# error "wxUSE_CHOICE must be defined."
265# else
266# define wxUSE_CHOICE 0
267# endif
268#endif /* !defined(wxUSE_CHOICE) */
269
3379ed37
VZ
270#ifndef wxUSE_CHOICEDLG
271# ifdef wxABORT_ON_CONFIG_ERROR
272# error "wxUSE_CHOICEDLG must be defined."
273# else
274# define wxUSE_CHOICEDLG 0
275# endif
276#endif /* !defined(wxUSE_CHOICEDLG) */
277
1e6feb95
VZ
278#ifndef wxUSE_CLIPBOARD
279# ifdef wxABORT_ON_CONFIG_ERROR
280# error "wxUSE_CLIPBOARD must be defined."
281# else
282# define wxUSE_CLIPBOARD 0
283# endif
284#endif /* !defined(wxUSE_CLIPBOARD) */
285
a2c0a9c5
VZ
286#ifndef wxUSE_COLOURDLG
287# ifdef wxABORT_ON_CONFIG_ERROR
288# error "wxUSE_COLOURDLG must be defined."
289# else
290# define wxUSE_COLOURDLG 0
291# endif
292#endif /* !defined(wxUSE_COLOURDLG) */
293
1e6feb95
VZ
294#ifndef wxUSE_COMBOBOX
295# ifdef wxABORT_ON_CONFIG_ERROR
296# error "wxUSE_COMBOBOX must be defined."
297# else
298# define wxUSE_COMBOBOX 0
299# endif
300#endif /* !defined(wxUSE_COMBOBOX) */
301
302#ifndef wxUSE_DATAOBJ
303# ifdef wxABORT_ON_CONFIG_ERROR
304# error "wxUSE_DATAOBJ must be defined."
305# else
306# define wxUSE_DATAOBJ 0
307# endif
308#endif /* !defined(wxUSE_DATAOBJ) */
309
3379ed37
VZ
310#ifndef wxUSE_DOC_VIEW_ARCHITECTURE
311# ifdef wxABORT_ON_CONFIG_ERROR
312# error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined."
313# else
314# define wxUSE_DOC_VIEW_ARCHITECTURE 0
315# endif
316#endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */
317
1e6feb95
VZ
318#ifndef wxUSE_FILEDLG
319# ifdef wxABORT_ON_CONFIG_ERROR
320# error "wxUSE_FILEDLG must be defined."
321# else
322# define wxUSE_FILEDLG 0
323# endif
324#endif /* !defined(wxUSE_FILEDLG) */
325
326#ifndef wxUSE_FONTDLG
327# ifdef wxABORT_ON_CONFIG_ERROR
328# error "wxUSE_FONTDLG must be defined."
329# else
330# define wxUSE_FONTDLG 0
331# endif
332#endif /* !defined(wxUSE_FONTDLG) */
333
334#ifndef wxUSE_FONTMAP
335# ifdef wxABORT_ON_CONFIG_ERROR
336# error "wxUSE_FONTMAP must be defined."
337# else
338# define wxUSE_FONTMAP 0
339# endif
340#endif /* !defined(wxUSE_FONTMAP) */
341
342#ifndef wxUSE_GAUGE
343# ifdef wxABORT_ON_CONFIG_ERROR
344# error "wxUSE_GAUGE must be defined."
345# else
346# define wxUSE_GAUGE 0
347# endif
348#endif /* !defined(wxUSE_GAUGE) */
349
350#ifndef wxUSE_GRID
351# ifdef wxABORT_ON_CONFIG_ERROR
352# error "wxUSE_GRID must be defined."
353# else
354# define wxUSE_GRID 0
355# endif
356#endif /* !defined(wxUSE_GRID) */
357
3379ed37
VZ
358#ifndef wxUSE_HELP
359# ifdef wxABORT_ON_CONFIG_ERROR
360# error "wxUSE_HELP must be defined."
361# else
362# define wxUSE_HELP 0
363# endif
364#endif /* !defined(wxUSE_HELP) */
365
05dcbb8e
VZ
366#ifndef wxUSE_HTML
367# ifdef wxABORT_ON_CONFIG_ERROR
368# error "wxUSE_HTML must be defined."
369# else
370# define wxUSE_HTML 0
371# endif
372#endif /* !defined(wxUSE_HTML) */
373
658974ae
VS
374#ifndef wxUSE_ICO_CUR
375# ifdef wxABORT_ON_CONFIG_ERROR
376# error "wxUSE_ICO_CUR must be defined."
377# else
378# define wxUSE_ICO_CUR 0
379# endif
380#endif /* !defined(wxUSE_ICO_CUR) */
381
1663afc0
VS
382#ifndef wxUSE_IFF
383# ifdef wxABORT_ON_CONFIG_ERROR
384# error "wxUSE_IFF must be defined."
385# else
386# define wxUSE_IFF 0
387# endif
388#endif /* !defined(wxUSE_IFF) */
389
1e6feb95
VZ
390#ifndef wxUSE_IMAGLIST
391# ifdef wxABORT_ON_CONFIG_ERROR
392# error "wxUSE_IMAGLIST must be defined."
393# else
394# define wxUSE_IMAGLIST 0
395# endif
396#endif /* !defined(wxUSE_IMAGLIST) */
397
2131b89d
VZ
398#ifndef wxUSE_JOYSTICK
399# ifdef wxABORT_ON_CONFIG_ERROR
400# error "wxUSE_JOYSTICK must be defined."
401# else
402# define wxUSE_JOYSTICK 0
403# endif
404#endif /* !defined(wxUSE_JOYSTICK) */
405
1e6feb95
VZ
406#ifndef wxUSE_LISTBOX
407# ifdef wxABORT_ON_CONFIG_ERROR
408# error "wxUSE_LISTBOX must be defined."
409# else
410# define wxUSE_LISTBOX 0
411# endif
412#endif /* !defined(wxUSE_LISTBOX) */
413
414#ifndef wxUSE_LISTCTRL
415# ifdef wxABORT_ON_CONFIG_ERROR
416# error "wxUSE_LISTCTRL must be defined."
417# else
418# define wxUSE_LISTCTRL 0
419# endif
420#endif /* !defined(wxUSE_LISTCTRL) */
421
3379ed37
VZ
422#ifndef wxUSE_LOGGUI
423# ifdef wxABORT_ON_CONFIG_ERROR
424# error "wxUSE_LOGGUI must be defined."
425# else
426# define wxUSE_LOGGUI 0
427# endif
428#endif /* !defined(wxUSE_LOGGUI) */
429
430#ifndef wxUSE_LOGWINDOW
431# ifdef wxABORT_ON_CONFIG_ERROR
432# error "wxUSE_LOGWINDOW must be defined."
433# else
434# define wxUSE_LOGWINDOW 0
435# endif
436#endif /* !defined(wxUSE_LOGWINDOW) */
e421922f 437
3e6e2754
JS
438#ifndef wxUSE_LOG_DIALOG
439# ifdef wxABORT_ON_CONFIG_ERROR
440# error "wxUSE_LOG_DIALOG must be defined."
441# else
442# define wxUSE_LOG_DIALOG 0
443# endif
71908213 444#endif /* !defined(wxUSE_LOG_DIALOG) */
3e6e2754 445
1e6feb95
VZ
446#ifndef wxUSE_MDI_ARCHITECTURE
447# ifdef wxABORT_ON_CONFIG_ERROR
448# error "wxUSE_MDI_ARCHITECTURE must be defined."
449# else
450# define wxUSE_MDI_ARCHITECTURE 0
451# endif
452#endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
453
454#ifndef wxUSE_MENUS
455# ifdef wxABORT_ON_CONFIG_ERROR
456# error "wxUSE_MENUS must be defined."
457# else
458# define wxUSE_MENUS 0
459# endif
460#endif /* !defined(wxUSE_MENUS) */
461
3379ed37
VZ
462#ifndef wxUSE_MSGDLG
463# ifdef wxABORT_ON_CONFIG_ERROR
464# error "wxUSE_MSGDLG must be defined."
465# else
466# define wxUSE_MSGDLG 0
467# endif
468#endif /* !defined(wxUSE_MSGDLG) */
469
1e6feb95
VZ
470#ifndef wxUSE_NEW_GRID
471# ifdef wxABORT_ON_CONFIG_ERROR
472# error "wxUSE_NEW_GRID must be defined."
473# else
474# define wxUSE_NEW_GRID 0
475# endif
476#endif /* !defined(wxUSE_NEW_GRID) */
477
478#ifndef wxUSE_NOTEBOOK
479# ifdef wxABORT_ON_CONFIG_ERROR
480# error "wxUSE_NOTEBOOK must be defined."
481# else
482# define wxUSE_NOTEBOOK 0
483# endif
484#endif /* !defined(wxUSE_NOTEBOOK) */
485
d275c7eb
VZ
486#ifndef wxUSE_PALETTE
487# ifdef wxABORT_ON_CONFIG_ERROR
488# error "wxUSE_PALETTE must be defined."
489# else
490# define wxUSE_PALETTE 0
491# endif
492#endif /* !defined(wxUSE_PALETTE) */
493
1e6feb95
VZ
494#ifndef wxUSE_POPUPWIN
495# ifdef wxABORT_ON_CONFIG_ERROR
496# error "wxUSE_POPUPWIN must be defined."
497# else
498# define wxUSE_POPUPWIN 0
499# endif
500#endif /* !defined(wxUSE_POPUPWIN) */
501
3379ed37
VZ
502#ifndef wxUSE_PRINTING_ARCHITECTURE
503# ifdef wxABORT_ON_CONFIG_ERROR
504# error "wxUSE_PRINTING_ARCHITECTURE must be defined."
505# else
506# define wxUSE_PRINTING_ARCHITECTURE 0
507# endif
508#endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */
509
1e6feb95
VZ
510#ifndef wxUSE_RADIOBOX
511# ifdef wxABORT_ON_CONFIG_ERROR
512# error "wxUSE_RADIOBOX must be defined."
513# else
514# define wxUSE_RADIOBOX 0
515# endif
516#endif /* !defined(wxUSE_RADIOBOX) */
517
518#ifndef wxUSE_RADIOBTN
519# ifdef wxABORT_ON_CONFIG_ERROR
520# error "wxUSE_RADIOBTN must be defined."
521# else
522# define wxUSE_RADIOBTN 0
523# endif
524#endif /* !defined(wxUSE_RADIOBTN) */
525
526#ifndef wxUSE_SASH
527# ifdef wxABORT_ON_CONFIG_ERROR
528# error "wxUSE_SASH must be defined."
529# else
530# define wxUSE_SASH 0
531# endif
532#endif /* !defined(wxUSE_SASH) */
533
534#ifndef wxUSE_SCROLLBAR
535# ifdef wxABORT_ON_CONFIG_ERROR
536# error "wxUSE_SCROLLBAR must be defined."
537# else
538# define wxUSE_SCROLLBAR 0
539# endif
540#endif /* !defined(wxUSE_SCROLLBAR) */
541
542#ifndef wxUSE_SLIDER
543# ifdef wxABORT_ON_CONFIG_ERROR
544# error "wxUSE_SLIDER must be defined."
545# else
546# define wxUSE_SLIDER 0
547# endif
548#endif /* !defined(wxUSE_SLIDER) */
549
550#ifndef wxUSE_SPINBTN
551# ifdef wxABORT_ON_CONFIG_ERROR
552# error "wxUSE_SPINBTN must be defined."
553# else
554# define wxUSE_SPINBTN 0
555# endif
556#endif /* !defined(wxUSE_SPINBTN) */
557
558#ifndef wxUSE_SPINCTRL
559# ifdef wxABORT_ON_CONFIG_ERROR
560# error "wxUSE_SPINCTRL must be defined."
561# else
562# define wxUSE_SPINCTRL 0
563# endif
564#endif /* !defined(wxUSE_SPINCTRL) */
565
2654a046
MB
566#ifndef wxUSE_SPLASH
567# ifdef wxABORT_ON_CONFIG_ERROR
568# error "wxUSE_SPLASH must be defined."
569# else
570# define wxUSE_SPLASH 0
571# endif
572#endif /* !defined(wxUSE_SPLASH) */
573
1e6feb95
VZ
574#ifndef wxUSE_SPLITTER
575# ifdef wxABORT_ON_CONFIG_ERROR
576# error "wxUSE_SPLITTER must be defined."
577# else
578# define wxUSE_SPLITTER 0
579# endif
580#endif /* !defined(wxUSE_SPLITTER) */
581
582#ifndef wxUSE_STATBMP
583# ifdef wxABORT_ON_CONFIG_ERROR
584# error "wxUSE_STATBMP must be defined."
585# else
586# define wxUSE_STATBMP 0
587# endif
588#endif /* !defined(wxUSE_STATBMP) */
589
590#ifndef wxUSE_STATBOX
591# ifdef wxABORT_ON_CONFIG_ERROR
592# error "wxUSE_STATBOX must be defined."
593# else
594# define wxUSE_STATBOX 0
595# endif
596#endif /* !defined(wxUSE_STATBOX) */
597
598#ifndef wxUSE_STATLINE
599# ifdef wxABORT_ON_CONFIG_ERROR
600# error "wxUSE_STATLINE must be defined."
601# else
602# define wxUSE_STATLINE 0
603# endif
604#endif /* !defined(wxUSE_STATLINE) */
605
3379ed37
VZ
606#ifndef wxUSE_STATTEXT
607# ifdef wxABORT_ON_CONFIG_ERROR
608# error "wxUSE_STATTEXT must be defined."
609# else
610# define wxUSE_STATTEXT 0
611# endif
612#endif /* !defined(wxUSE_STATTEXT) */
613
1e6feb95
VZ
614#ifndef wxUSE_STATUSBAR
615# ifdef wxABORT_ON_CONFIG_ERROR
616# error "wxUSE_STATUSBAR must be defined."
617# else
618# define wxUSE_STATUSBAR 0
619# endif
620#endif /* !defined(wxUSE_STATUSBAR) */
621
1e6feb95
VZ
622#ifndef wxUSE_TAB_DIALOG
623# ifdef wxABORT_ON_CONFIG_ERROR
624# error "wxUSE_TAB_DIALOG must be defined."
625# else
626# define wxUSE_TAB_DIALOG 0
627# endif
628#endif /* !defined(wxUSE_TAB_DIALOG) */
629
630#ifndef wxUSE_TEXTCTRL
631# ifdef wxABORT_ON_CONFIG_ERROR
632# error "wxUSE_TEXTCTRL must be defined."
633# else
634# define wxUSE_TEXTCTRL 0
635# endif
636#endif /* !defined(wxUSE_TEXTCTRL) */
637
f38bcae5
VZ
638#ifndef wxUSE_TIPWINDOW
639# ifdef wxABORT_ON_CONFIG_ERROR
640# error "wxUSE_TIPWINDOW must be defined."
641# else
642# define wxUSE_TIPWINDOW 0
643# endif
644#endif /* !defined(wxUSE_TIPWINDOW) */
645
1e6feb95
VZ
646#ifndef wxUSE_TOOLBAR
647# ifdef wxABORT_ON_CONFIG_ERROR
648# error "wxUSE_TOOLBAR must be defined."
649# else
650# define wxUSE_TOOLBAR 0
651# endif
652#endif /* !defined(wxUSE_TOOLBAR) */
653
654#ifndef wxUSE_TOOLTIPS
655# ifdef wxABORT_ON_CONFIG_ERROR
656# error "wxUSE_TOOLTIPS must be defined."
657# else
658# define wxUSE_TOOLTIPS 0
659# endif
660#endif /* !defined(wxUSE_TOOLTIPS) */
661
662#ifndef wxUSE_TREECTRL
663# ifdef wxABORT_ON_CONFIG_ERROR
664# error "wxUSE_TREECTRL must be defined."
665# else
666# define wxUSE_TREECTRL 0
667# endif
668#endif /* !defined(wxUSE_TREECTRL) */
669
3379ed37
VZ
670#ifndef wxUSE_WXHTML_HELP
671# ifdef wxABORT_ON_CONFIG_ERROR
672# error "wxUSE_WXHTML_HELP must be defined."
673# else
674# define wxUSE_WXHTML_HELP 0
675# endif
676#endif /* !defined(wxUSE_WXHTML_HELP) */
677
a5d46b73 678#endif /* wxUSE_GUI */
c4d596ea 679
1e6feb95
VZ
680/*
681 check consistency of the settings
682 */
a5d46b73
VZ
683
684#if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP
685# if !wxUSE_PROTOCOL
686# ifdef wxABORT_ON_CONFIG_ERROR
687# error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL"
688# else
689# undef wxUSE_PROTOCOL
690# define wxUSE_PROTOCOL 1
691# endif
692# endif
693#endif /* wxUSE_PROTOCOL_XXX */
694
695#if wxUSE_URL
696# if !wxUSE_PROTOCOL
697# ifdef wxABORT_ON_CONFIG_ERROR
698# error "wxUSE_URL requires wxUSE_PROTOCOL"
699# else
700# undef wxUSE_PROTOCOL
701# define wxUSE_PROTOCOL 1
702# endif
703# endif
704#endif /* wxUSE_URL */
705
706#if wxUSE_PROTOCOL
707# if !wxUSE_SOCKETS
708# if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP
709# ifdef wxABORT_ON_CONFIG_ERROR
710# error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS"
711# else
712# undef wxUSE_SOCKETS
713# define wxUSE_SOCKETS 1
714# endif
715# endif
716# endif
717
718# if !wxUSE_STREAMS
719# ifdef wxABORT_ON_CONFIG_ERROR
720# error "wxUSE_PROTOCOL requires wxUSE_STREAMS"
721# else
722# undef wxUSE_STREAMS
723# define wxUSE_STREAMS 1
724# endif
725# endif
726#endif /* wxUSE_PROTOCOL */
727
728/* non GUI settings */
729#if wxUSE_STOPWATCH
730# if !wxUSE_LONGLONG
731# ifdef wxABORT_ON_CONFIG_ERROR
732# error "wxUSE_STOPWATCH requires wxUSE_LONGLONG"
733# else
734# undef wxUSE_LONGLONG
735# define wxUSE_LONGLONG 1
736# endif
737# endif
738#endif /* wxUSE_STOPWATCH */
739
740#if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
741# ifdef wxABORT_ON_CONFIG_ERROR
742# error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
743# else
744# undef wxUSE_TEXTFILE
745# define wxUSE_TEXTFILE 1
746# endif
747#endif /* wxUSE_MIMETYPE */
748
749#if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER
750# ifdef wxABORT_ON_CONFIG_ERROR
751# error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER"
752# else
753# undef wxUSE_TEXTBUFFER
754# define wxUSE_TEXTBUFFER 1
755# endif
756#endif /* wxUSE_TEXTFILE */
757
758#if wxUSE_TEXTFILE && !wxUSE_FILE
759# ifdef wxABORT_ON_CONFIG_ERROR
760# error "wxUSE_TEXTFILE requires wxUSE_FILE"
761# else
762# undef wxUSE_FILE
763# define wxUSE_FILE 1
764# endif
765#endif /* wxUSE_TEXTFILE */
766
767#if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE
768# ifdef wxABORT_ON_CONFIG_ERROR
769# error "wxUSE_UNICODE_MSLU requires wxUSE_UNICODE"
770# else
771# undef wxUSE_UNICODE
772# define wxUSE_UNICODE 1
773# endif
774#endif /* wxUSE_UNICODE_MSLU */
775
4ccf704a
VZ
776#if wxUSE_ODBC && wxUSE_UNICODE
777# ifdef wxABORT_ON_CONFIG_ERROR
778 /* (ODBC classes aren't Unicode-compatible yet) */
779# error "wxUSE_ODBC can't be used with wxUSE_UNICODE"
780# else
781# undef wxUSE_ODBC
782# define wxUSE_ODBC 0
783# endif
784#endif /* wxUSE_ODBC */
785
a5d46b73
VZ
786/* the rest of the tests is for the GUI settings only */
787#if wxUSE_GUI
788
1e6feb95
VZ
789#if wxUSE_BUTTON || \
790 wxUSE_CALENDARCTRL || \
791 wxUSE_CARET || \
792 wxUSE_COMBOBOX || \
793 wxUSE_BMPBUTTON || \
794 wxUSE_CHECKBOX || \
795 wxUSE_CHECKLISTBOX || \
796 wxUSE_CHOICE || \
797 wxUSE_GAUGE || \
798 wxUSE_GRID || \
799 wxUSE_NEW_GRID || \
800 wxUSE_LISTBOX || \
801 wxUSE_LISTCTRL || \
802 wxUSE_NOTEBOOK || \
803 wxUSE_RADIOBOX || \
804 wxUSE_RADIOBTN || \
805 wxUSE_SCROLLBAR || \
806 wxUSE_SLIDER || \
807 wxUSE_SPINBTN || \
808 wxUSE_SPINCTRL || \
809 wxUSE_STATBMP || \
810 wxUSE_STATBOX || \
811 wxUSE_STATLINE || \
3379ed37 812 wxUSE_STATTEXT || \
1e6feb95
VZ
813 wxUSE_STATUSBAR || \
814 wxUSE_TEXTCTRL || \
815 wxUSE_TOOLBAR || \
816 wxUSE_TREECTRL
817# if !wxUSE_CONTROLS
818# ifdef wxABORT_ON_CONFIG_ERROR
819# error "wxUSE_CONTROLS unset but some controls used"
820# else
821# undef wxUSE_CONTROLS
822# define wxUSE_CONTROLS 1
823# endif
824# endif
825#endif /* controls */
826
3379ed37
VZ
827/* wxUniv-specific dependencies */
828#if defined(__WXUNIVERSAL__)
829# if (wxUSE_COMBOBOX || wxUSE_MENUS) && !wxUSE_POPUPWIN
830# ifdef wxABORT_ON_CONFIG_ERROR
831# error "wxUSE_POPUPWIN must be defined to use comboboxes/menus"
832# else
833# undef wxUSE_POPUPWIN
834# define wxUSE_POPUPWIN 1
835# endif
836# endif
837
838# if wxUSE_COMBOBOX
839# if !wxUSE_LISTBOX
840# ifdef wxABORT_ON_CONFIG_ERROR
841# error "wxComboBox requires wxListBox in wxUniversal"
842# else
843# undef wxUSE_LISTBOX
844# define wxUSE_LISTBOX 1
845# endif
846# endif
847# endif /* wxUSE_COMBOBOX */
848
849# if wxUSE_RADIOBTN
850# if !wxUSE_CHECKBOX
851# ifdef wxABORT_ON_CONFIG_ERROR
852# error "wxUSE_RADIOBTN requires wxUSE_CHECKBOX in wxUniversal"
853# else
854# undef wxUSE_CHECKBOX
855# define wxUSE_CHECKBOX 1
856# endif
857# endif
858# endif /* wxUSE_RADIOBTN */
859
860# if wxUSE_TEXTCTRL
861# if !wxUSE_CARET
862# ifdef wxABORT_ON_CONFIG_ERROR
863# error "wxTextCtrl requires wxCaret in wxUniversal"
864# else
865# undef wxUSE_CARET
866# define wxUSE_CARET 1
867# endif
868# endif /* wxUSE_CARET */
869
870# if !wxUSE_SCROLLBAR
871# ifdef wxABORT_ON_CONFIG_ERROR
872# error "wxTextCtrl requires wxScrollBar in wxUniversal"
873# else
874# undef wxUSE_SCROLLBAR
875# define wxUSE_SCROLLBAR 1
876# endif
877# endif /* wxUSE_SCROLLBAR */
878# endif /* wxUSE_TEXTCTRL */
879#endif /* __WXUNIVERSAL__ */
880
881/* wxGTK-specific dependencies */
2131b89d
VZ
882#ifdef __WXGTK__
883# ifndef __WXUNIVERSAL__
884# if wxUSE_MDI_ARCHITECTURE && !wxUSE_MENUS
885# ifdef wxABORT_ON_CONFIG_ERROR
886# error "MDI requires wxUSE_MENUS in wxGTK"
887# else
888# undef wxUSE_MENUS
889# define wxUSE_MENUS 1
890# endif
891# endif
892# endif /* !__WXUNIVERSAL__ */
893
894# if wxUSE_JOYSTICK
895# if !wxUSE_THREADS
896# ifdef wxABORT_ON_CONFIG_ERROR
897# error "wxJoystick requires threads in wxGTK"
898# else
899# undef wxUSE_JOYSTICK
900# define wxUSE_JOYSTICK 0
901# endif
3379ed37
VZ
902# endif
903# endif
904#endif /* wxGTK && !wxUniv */
905
03169422
RL
906/* wxMSW-specific dependencies */
907#ifdef __WXMSW__
908# ifndef wxUSE_UNICODE_MSLU
909# ifdef wxABORT_ON_CONFIG_ERROR
910# error "wxUSE_UNICODE_MSLU must be defined."
911# else
912# define wxUSE_UNICODE_MSLU 0
913# endif
914# endif /* wxUSE_UNICODE_MSLU */
915# ifndef wxUSE_MS_HTML_HELP
916# ifdef wxABORT_ON_CONFIG_ERROR
917# error "wxUSE_MS_HTML_HELP must be defined."
918# else
919# define wxUSE_MS_HTML_HELP 0
920# endif
921# endif /* !defined(wxUSE_MS_HTML_HELP) */
922# ifndef wxUSE_DIALUP_MANAGER
923# ifdef wxABORT_ON_CONFIG_ERROR
924# error "wxUSE_DIALUP_MANAGER must be defined."
925# else
926# define wxUSE_DIALUP_MANAGER 0
927# endif
928# endif /* !defined(wxUSE_DIALUP_MANAGER) */
929
19f478fd 930# if !wxUSE_DYNAMIC_LOADER
03169422
RL
931# if wxUSE_MS_HTML_HELP
932# ifdef wxABORT_ON_CONFIG_ERROR
933# error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER."
934# else
935# define wxUSE_DYNAMIC_LOADER 1
936# endif
937# endif
938# if wxUSE_DIALUP_MANAGER
939# ifdef wxABORT_ON_CONFIG_ERROR
940# error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER."
941# else
942# define wxUSE_DYNAMIC_LOADER 1
943# endif
944# endif
945# endif /* wxUSE_DYNAMIC_LOADER */
946#endif /* wxMSW */
947
9806a47c
JS
948/* wxMotif-specific dependencies */
949#if defined(__WXMOTIF__) && wxUSE_NOTEBOOK && !wxUSE_TAB_DIALOG
950# undef wxUSE_TAB_DIALOG
951# define wxUSE_TAB_DIALOG 1
952#endif
953#if defined(__WXMOTIF__) && wxUSE_TOGGLEBTN
954# undef wxUSE_TOGGLEBTN
955# define wxUSE_TOGGLEBTN 0
956#endif
957
3379ed37
VZ
958/* generic controls dependencies */
959#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
960# if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG
961 /* all common controls are needed by these dialogs */
962# if !defined(wxUSE_CHOICE) || \
963 !defined(wxUSE_TEXTCTRL) || \
964 !defined(wxUSE_BUTTON) || \
965 !defined(wxUSE_CHECKBOX) || \
966 !defined(wxUSE_STATTEXT)
967# ifdef wxABORT_ON_CONFIG_ERROR
968# error "These common controls are needed by common dialogs"
969# else
970# undef wxUSE_CHOICE
971# define wxUSE_CHOICE 1
972# undef wxUSE_TEXTCTRL
973# define wxUSE_TEXTCTRL 1
974# undef wxUSE_BUTTON
975# define wxUSE_BUTTON 1
976# undef wxUSE_CHECKBOX
977# define wxUSE_CHECKBOX 1
978# undef wxUSE_STATTEXT
979# define wxUSE_STATTEXT 1
980# endif
981# endif
982# endif
983#endif /* !wxMSW || wxUniv */
984
985/* common dependencies */
1e6feb95
VZ
986#if wxUSE_CALENDARCTRL
987# if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
988# ifdef wxABORT_ON_CONFIG_ERROR
989# error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
990# else
991# undef wxUSE_SPINBTN
992# undef wxUSE_COMBOBOX
993# define wxUSE_SPINBTN 1
994# define wxUSE_COMBOBOX 1
995# endif
996# endif
997#endif /* wxUSE_CALENDARCTRL */
998
999#if wxUSE_CHECKLISTBOX
1000# if !wxUSE_LISTBOX
1001# ifdef wxABORT_ON_CONFIG_ERROR
1002# error "wxCheckListBox requires wxListBox"
1003# else
1004# undef wxUSE_LISTBOX
1005# define wxUSE_LISTBOX 1
1006# endif
1007# endif
1008#endif /* wxUSE_RADIOBTN */
1009
3379ed37
VZ
1010#if wxUSE_WXHTML_HELP
1011# if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX
1012# ifdef wxABORT_ON_CONFIG_ERROR
1013# error "Built in help controller can't be compiled"
1014# else
1015# undef wxUSE_HELP
1016# define wxUSE_HELP 1
1017# undef wxUSE_HTML
1018# define wxUSE_HTML 1
1019# undef wxUSE_COMBOBOX
1020# define wxUSE_COMBOBOX 1
1021# endif
1022# endif
1023#endif /* wxUSE_WXHTML_HELP */
1024
1025#if wxUSE_PRINTING_ARCHITECTURE
1026# if !wxUSE_COMBOBOX
1027# ifdef wxABORT_ON_CONFIG_ERROR
1028# error "Print dialog requires wxUSE_COMBOBOX"
1029# else
1030# undef wxUSE_COMBOBOX
1031# define wxUSE_COMBOBOX 1
1032# endif
1033# endif
1034#endif /* wxUSE_PRINTING_ARCHITECTURE */
1035
1036#if wxUSE_DOC_VIEW_ARCHITECTURE
1037# if !wxUSE_MENUS
1e6feb95 1038# ifdef wxABORT_ON_CONFIG_ERROR
3379ed37 1039# error "DocView requires wxUSE_MENUS"
1e6feb95 1040# else
3379ed37
VZ
1041# undef wxUSE_MENUS
1042# define wxUSE_MENUS 1
1e6feb95
VZ
1043# endif
1044# endif
3379ed37 1045#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
1e6feb95
VZ
1046
1047#if !wxUSE_FILEDLG
2119e280 1048# if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
1e6feb95
VZ
1049# ifdef wxABORT_ON_CONFIG_ERROR
1050# error "wxFileDialog must be compiled as well"
1051# else
1052# undef wxUSE_FILEDLG
1053# define wxUSE_FILEDLG 1
1054# endif
1055# endif
e421922f 1056#endif /* wxUSE_FILEDLG */
1e6feb95 1057
1e6feb95
VZ
1058#if !wxUSE_IMAGLIST
1059# if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
1060# ifdef wxABORT_ON_CONFIG_ERROR
1061# error "wxImageList must be compiled as well"
1062# else
1063# undef wxUSE_IMAGLIST
1064# define wxUSE_IMAGLIST 1
1065# endif
1066# endif
1067#endif /* !wxUSE_IMAGLIST */
1068
e421922f
VZ
1069#if !wxUSE_MSGDLG
1070# ifdef wxABORT_ON_CONFIG_ERROR
1071 /* FIXME: should compile without it, of course, but doesn't */
1072# error "wxMessageBox is always needed"
1073# else
1074# undef wxUSE_MSGDLG
1075# define wxUSE_MSGDLG 1
1076# endif
1077#endif
1078
1e6feb95
VZ
1079#if wxUSE_RADIOBOX
1080# if !wxUSE_RADIOBTN || !wxUSE_STATBOX
1081# ifdef wxABORT_ON_CONFIG_ERROR
1082# error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN and wxUSE_STATBOX"
1083# else
1084# undef wxUSE_RADIOBTN
1085# undef wxUSE_STATBOX
1086# define wxUSE_RADIOBTN 1
1087# define wxUSE_STATBOX 1
1088# endif
1089# endif
1090#endif /* wxUSE_RADIOBOX */
1091
3379ed37
VZ
1092#if wxUSE_LOGWINDOW
1093# if !wxUSE_TEXTCTRL
1094# ifdef wxABORT_ON_CONFIG_ERROR
1095# error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL"
1096# else
1097# undef wxUSE_TEXTCTRL
1098# define wxUSE_TEXTCTRL 1
1099# endif
1100# endif
1101#endif /* wxUSE_LOGWINDOW */
1e6feb95 1102
3e6e2754
JS
1103#if wxUSE_LOG_DIALOG
1104# if !wxUSE_LISTCTRL
1105# ifdef wxABORT_ON_CONFIG_ERROR
1106# error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL"
1107# else
1108# undef wxUSE_LISTCTRL
1109# define wxUSE_LISTCTRL 1
1110# endif
1111# endif
1112#endif /* wxUSE_LOG_DIALOG */
1113
1e6feb95
VZ
1114/* I wonder if we shouldn't just remove all occurrences of
1115 wxUSE_DYNAMIC_CLASSES from the sources? */
1116#if !defined(wxUSE_DYNAMIC_CLASSES) || !wxUSE_DYNAMIC_CLASSES
3379ed37 1117# ifdef wxABORT_ON_CONFIG_ERROR
1e6feb95
VZ
1118# error "wxUSE_DYNAMIC_CLASSES must be defined as 1"
1119# else
1120# undef wxUSE_DYNAMIC_CLASSES
03169422 1121# define wxUSE_DYNAMIC_CLASSES 1
1e6feb95
VZ
1122# endif
1123#endif /* wxUSE_DYNAMIC_CLASSES */
1124
1e6feb95 1125#if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
3379ed37 1126# ifdef wxABORT_ON_CONFIG_ERROR
1e6feb95
VZ
1127# error "wxClipboard requires wxDataObject"
1128# else
1129# undef wxUSE_DATAOBJ
1130# define wxUSE_DATAOBJ 1
1131# endif
1132#endif /* wxUSE_CLIPBOARD */
1133
1e6feb95
VZ
1134#endif /* wxUSE_GUI */
1135