]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/chkconf.h
3 * Purpose: check the config settings for consistency
4 * Author: Vadim Zeitlin
8 * Copyright: (c) 2000 Vadim Zeitlin <vadim@wxwindows.org>
9 * Licence: wxWindows license
12 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
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
20 #define wxABORT_ON_CONFIG_ERROR
23 all these tests are for GUI onlu
28 all of the settings tested below must be defined or we'd get an error from
29 preprocessor about invalid integer expression
33 # ifdef wxABORT_ON_CONFIG_ERROR
34 # error "wxUSE_ACCEL must be defined."
36 # define wxUSE_ACCEL 0
38 #endif /* !defined(wxUSE_ACCEL) */
40 #ifndef wxUSE_BMPBUTTON
41 # ifdef wxABORT_ON_CONFIG_ERROR
42 # error "wxUSE_BMPBUTTON must be defined."
44 # define wxUSE_BMPBUTTON 0
46 #endif /* !defined(wxUSE_BMPBUTTON) */
49 # ifdef wxABORT_ON_CONFIG_ERROR
50 # error "wxUSE_BUTTON must be defined."
52 # define wxUSE_BUTTON 0
54 #endif /* !defined(wxUSE_BUTTON) */
56 #ifndef wxUSE_CALENDARCTRL
57 # ifdef wxABORT_ON_CONFIG_ERROR
58 # error "wxUSE_CALENDARCTRL must be defined."
60 # define wxUSE_CALENDARCTRL 0
62 #endif /* !defined(wxUSE_CALENDARCTRL) */
65 # ifdef wxABORT_ON_CONFIG_ERROR
66 # error "wxUSE_CARET must be defined."
68 # define wxUSE_CARET 0
70 #endif /* !defined(wxUSE_CARET) */
72 #ifndef wxUSE_CHECKBOX
73 # ifdef wxABORT_ON_CONFIG_ERROR
74 # error "wxUSE_CHECKBOX must be defined."
76 # define wxUSE_CHECKBOX 0
78 #endif /* !defined(wxUSE_CHECKBOX) */
80 #ifndef wxUSE_CHECKLISTBOX
81 # ifdef wxABORT_ON_CONFIG_ERROR
82 # error "wxUSE_CHECKLISTBOX must be defined."
84 # define wxUSE_CHECKLISTBOX 0
86 #endif /* !defined(wxUSE_CHECKLISTBOX) */
89 # ifdef wxABORT_ON_CONFIG_ERROR
90 # error "wxUSE_CHOICE must be defined."
92 # define wxUSE_CHOICE 0
94 #endif /* !defined(wxUSE_CHOICE) */
96 #ifndef wxUSE_CLIPBOARD
97 # ifdef wxABORT_ON_CONFIG_ERROR
98 # error "wxUSE_CLIPBOARD must be defined."
100 # define wxUSE_CLIPBOARD 0
102 #endif /* !defined(wxUSE_CLIPBOARD) */
104 #ifndef wxUSE_COMBOBOX
105 # ifdef wxABORT_ON_CONFIG_ERROR
106 # error "wxUSE_COMBOBOX must be defined."
108 # define wxUSE_COMBOBOX 0
110 #endif /* !defined(wxUSE_COMBOBOX) */
112 #ifndef wxUSE_DATAOBJ
113 # ifdef wxABORT_ON_CONFIG_ERROR
114 # error "wxUSE_DATAOBJ must be defined."
116 # define wxUSE_DATAOBJ 0
118 #endif /* !defined(wxUSE_DATAOBJ) */
120 #ifndef wxUSE_FILEDLG
121 # ifdef wxABORT_ON_CONFIG_ERROR
122 # error "wxUSE_FILEDLG must be defined."
124 # define wxUSE_FILEDLG 0
126 #endif /* !defined(wxUSE_FILEDLG) */
128 #ifndef wxUSE_FONTDLG
129 # ifdef wxABORT_ON_CONFIG_ERROR
130 # error "wxUSE_FONTDLG must be defined."
132 # define wxUSE_FONTDLG 0
134 #endif /* !defined(wxUSE_FONTDLG) */
136 #ifndef wxUSE_FONTMAP
137 # ifdef wxABORT_ON_CONFIG_ERROR
138 # error "wxUSE_FONTMAP must be defined."
140 # define wxUSE_FONTMAP 0
142 #endif /* !defined(wxUSE_FONTMAP) */
145 # ifdef wxABORT_ON_CONFIG_ERROR
146 # error "wxUSE_GAUGE must be defined."
148 # define wxUSE_GAUGE 0
150 #endif /* !defined(wxUSE_GAUGE) */
153 # ifdef wxABORT_ON_CONFIG_ERROR
154 # error "wxUSE_GRID must be defined."
156 # define wxUSE_GRID 0
158 #endif /* !defined(wxUSE_GRID) */
160 #ifndef wxUSE_IMAGLIST
161 # ifdef wxABORT_ON_CONFIG_ERROR
162 # error "wxUSE_IMAGLIST must be defined."
164 # define wxUSE_IMAGLIST 0
166 #endif /* !defined(wxUSE_IMAGLIST) */
168 #ifndef wxUSE_LISTBOX
169 # ifdef wxABORT_ON_CONFIG_ERROR
170 # error "wxUSE_LISTBOX must be defined."
172 # define wxUSE_LISTBOX 0
174 #endif /* !defined(wxUSE_LISTBOX) */
176 #ifndef wxUSE_LISTCTRL
177 # ifdef wxABORT_ON_CONFIG_ERROR
178 # error "wxUSE_LISTCTRL must be defined."
180 # define wxUSE_LISTCTRL 0
182 #endif /* !defined(wxUSE_LISTCTRL) */
185 # ifdef wxABORT_ON_CONFIG_ERROR
186 # error "wxUSE_MSGDLG must be defined."
188 # define wxUSE_MSGDLG 0
190 #endif /* !defined(wxUSE_MSGDLG) */
192 #ifndef wxUSE_MDI_ARCHITECTURE
193 # ifdef wxABORT_ON_CONFIG_ERROR
194 # error "wxUSE_MDI_ARCHITECTURE must be defined."
196 # define wxUSE_MDI_ARCHITECTURE 0
198 #endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
201 # ifdef wxABORT_ON_CONFIG_ERROR
202 # error "wxUSE_MENUS must be defined."
204 # define wxUSE_MENUS 0
206 #endif /* !defined(wxUSE_MENUS) */
208 #ifndef wxUSE_MIMETYPE
209 # ifdef wxABORT_ON_CONFIG_ERROR
210 # error "wxUSE_MIMETYPE must be defined."
212 # define wxUSE_MIMETYPE 0
214 #endif /* !defined(wxUSE_MIMETYPE) */
216 #ifndef wxUSE_NEW_GRID
217 # ifdef wxABORT_ON_CONFIG_ERROR
218 # error "wxUSE_NEW_GRID must be defined."
220 # define wxUSE_NEW_GRID 0
222 #endif /* !defined(wxUSE_NEW_GRID) */
224 #ifndef wxUSE_NOTEBOOK
225 # ifdef wxABORT_ON_CONFIG_ERROR
226 # error "wxUSE_NOTEBOOK must be defined."
228 # define wxUSE_NOTEBOOK 0
230 #endif /* !defined(wxUSE_NOTEBOOK) */
232 #ifndef wxUSE_POPUPWIN
233 # ifdef wxABORT_ON_CONFIG_ERROR
234 # error "wxUSE_POPUPWIN must be defined."
236 # define wxUSE_POPUPWIN 0
238 #endif /* !defined(wxUSE_POPUPWIN) */
240 #ifndef wxUSE_RADIOBOX
241 # ifdef wxABORT_ON_CONFIG_ERROR
242 # error "wxUSE_RADIOBOX must be defined."
244 # define wxUSE_RADIOBOX 0
246 #endif /* !defined(wxUSE_RADIOBOX) */
248 #ifndef wxUSE_RADIOBTN
249 # ifdef wxABORT_ON_CONFIG_ERROR
250 # error "wxUSE_RADIOBTN must be defined."
252 # define wxUSE_RADIOBTN 0
254 #endif /* !defined(wxUSE_RADIOBTN) */
257 # ifdef wxABORT_ON_CONFIG_ERROR
258 # error "wxUSE_SASH must be defined."
260 # define wxUSE_SASH 0
262 #endif /* !defined(wxUSE_SASH) */
264 #ifndef wxUSE_SCROLLBAR
265 # ifdef wxABORT_ON_CONFIG_ERROR
266 # error "wxUSE_SCROLLBAR must be defined."
268 # define wxUSE_SCROLLBAR 0
270 #endif /* !defined(wxUSE_SCROLLBAR) */
273 # ifdef wxABORT_ON_CONFIG_ERROR
274 # error "wxUSE_SLIDER must be defined."
276 # define wxUSE_SLIDER 0
278 #endif /* !defined(wxUSE_SLIDER) */
280 #ifndef wxUSE_SPINBTN
281 # ifdef wxABORT_ON_CONFIG_ERROR
282 # error "wxUSE_SPINBTN must be defined."
284 # define wxUSE_SPINBTN 0
286 #endif /* !defined(wxUSE_SPINBTN) */
288 #ifndef wxUSE_SPINCTRL
289 # ifdef wxABORT_ON_CONFIG_ERROR
290 # error "wxUSE_SPINCTRL must be defined."
292 # define wxUSE_SPINCTRL 0
294 #endif /* !defined(wxUSE_SPINCTRL) */
296 #ifndef wxUSE_SPLITTER
297 # ifdef wxABORT_ON_CONFIG_ERROR
298 # error "wxUSE_SPLITTER must be defined."
300 # define wxUSE_SPLITTER 0
302 #endif /* !defined(wxUSE_SPLITTER) */
304 #ifndef wxUSE_STATBMP
305 # ifdef wxABORT_ON_CONFIG_ERROR
306 # error "wxUSE_STATBMP must be defined."
308 # define wxUSE_STATBMP 0
310 #endif /* !defined(wxUSE_STATBMP) */
312 #ifndef wxUSE_STATBOX
313 # ifdef wxABORT_ON_CONFIG_ERROR
314 # error "wxUSE_STATBOX must be defined."
316 # define wxUSE_STATBOX 0
318 #endif /* !defined(wxUSE_STATBOX) */
320 #ifndef wxUSE_STATLINE
321 # ifdef wxABORT_ON_CONFIG_ERROR
322 # error "wxUSE_STATLINE must be defined."
324 # define wxUSE_STATLINE 0
326 #endif /* !defined(wxUSE_STATLINE) */
328 #ifndef wxUSE_STATUSBAR
329 # ifdef wxABORT_ON_CONFIG_ERROR
330 # error "wxUSE_STATUSBAR must be defined."
332 # define wxUSE_STATUSBAR 0
334 #endif /* !defined(wxUSE_STATUSBAR) */
336 #ifndef wxUSE_STOPWATCH
337 # ifdef wxABORT_ON_CONFIG_ERROR
338 # error "wxUSE_STOPWATCH must be defined."
340 # define wxUSE_STOPWATCH 0
342 #endif /* !defined(wxUSE_STOPWATCH) */
344 #ifndef wxUSE_TAB_DIALOG
345 # ifdef wxABORT_ON_CONFIG_ERROR
346 # error "wxUSE_TAB_DIALOG must be defined."
348 # define wxUSE_TAB_DIALOG 0
350 #endif /* !defined(wxUSE_TAB_DIALOG) */
352 #ifndef wxUSE_TEXTCTRL
353 # ifdef wxABORT_ON_CONFIG_ERROR
354 # error "wxUSE_TEXTCTRL must be defined."
356 # define wxUSE_TEXTCTRL 0
358 #endif /* !defined(wxUSE_TEXTCTRL) */
360 #ifndef wxUSE_TOOLBAR
361 # ifdef wxABORT_ON_CONFIG_ERROR
362 # error "wxUSE_TOOLBAR must be defined."
364 # define wxUSE_TOOLBAR 0
366 #endif /* !defined(wxUSE_TOOLBAR) */
368 #ifndef wxUSE_TOOLTIPS
369 # ifdef wxABORT_ON_CONFIG_ERROR
370 # error "wxUSE_TOOLTIPS must be defined."
372 # define wxUSE_TOOLTIPS 0
374 #endif /* !defined(wxUSE_TOOLTIPS) */
376 #ifndef wxUSE_TREECTRL
377 # ifdef wxABORT_ON_CONFIG_ERROR
378 # error "wxUSE_TREECTRL must be defined."
380 # define wxUSE_TREECTRL 0
382 #endif /* !defined(wxUSE_TREECTRL) */
385 check consistency of the settings
387 #if wxUSE_BUTTON || \
388 wxUSE_CALENDARCTRL || \
393 wxUSE_CHECKLISTBOX || \
415 # ifdef wxABORT_ON_CONFIG_ERROR
416 # error "wxUSE_CONTROLS unset but some controls used"
418 # undef wxUSE_CONTROLS
419 # define wxUSE_CONTROLS 1
422 #endif /* controls */
424 #if wxUSE_CALENDARCTRL
425 # if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
426 # ifdef wxABORT_ON_CONFIG_ERROR
427 # error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
429 # undef wxUSE_SPINBTN
430 # undef wxUSE_COMBOBOX
431 # define wxUSE_SPINBTN 1
432 # define wxUSE_COMBOBOX 1
435 #endif /* wxUSE_CALENDARCTRL */
437 #if wxUSE_CHECKLISTBOX
439 # ifdef wxABORT_ON_CONFIG_ERROR
440 # error "wxCheckListBox requires wxListBox"
442 # undef wxUSE_LISTBOX
443 # define wxUSE_LISTBOX 1
446 #endif /* wxUSE_RADIOBTN */
449 # if defined(__WXUNIVERSAL__) && !wxUSE_LISTBOX
450 # ifdef wxABORT_ON_CONFIG_ERROR
451 # error "wxComboBox requires wxListBox in wxUniversal"
453 # undef wxUSE_LISTBOX
454 # define wxUSE_LISTBOX 1
457 #endif /* wxUSE_COMBOBOX */
460 # if defined(wxUSE_DOC_VIEW_ARCHITECTURE) || defined(wxUSE_HTML)
461 # ifdef wxABORT_ON_CONFIG_ERROR
462 # error "wxFileDialog must be compiled as well"
464 # undef wxUSE_FILEDLG
465 # define wxUSE_FILEDLG 1
468 #endif /* wxUSE_FILEDLG */
471 # if defined(wxUSE_FONTMAP)
472 # ifdef wxABORT_ON_CONFIG_ERROR
473 # error "wxFontDialog must be compiled as well"
475 # undef wxUSE_FONTDLG
476 # define wxUSE_FONTDLG 1
479 #endif /* !wxUSE_FONTDLG */
482 # if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
483 # ifdef wxABORT_ON_CONFIG_ERROR
484 # error "wxImageList must be compiled as well"
486 # undef wxUSE_IMAGLIST
487 # define wxUSE_IMAGLIST 1
490 #endif /* !wxUSE_IMAGLIST */
493 # ifdef wxABORT_ON_CONFIG_ERROR
494 /* FIXME: should compile without it, of course, but doesn't */
495 # error "wxMessageBox is always needed"
498 # define wxUSE_MSGDLG 1
503 # if defined(__WXUNIVERSAL__) && !wxUSE_CHECKBOX
504 # ifdef wxABORT_ON_CONFIG_ERROR
505 # error "wxUSE_RADIOBTN requires wxUSE_CHECKBOX in wxUniversal"
507 # undef wxUSE_CHECKBOX
508 # define wxUSE_CHECKBOX 1
511 #endif /* wxUSE_RADIOBTN */
514 # if !wxUSE_RADIOBTN || !wxUSE_STATBOX
515 # ifdef wxABORT_ON_CONFIG_ERROR
516 # error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN and wxUSE_STATBOX"
518 # undef wxUSE_RADIOBTN
519 # undef wxUSE_STATBOX
520 # define wxUSE_RADIOBTN 1
521 # define wxUSE_STATBOX 1
524 #endif /* wxUSE_RADIOBOX */
528 # ifdef wxABORT_ON_CONFIG_ERROR
529 # error "wxUSE_STOPWATCH requires wxUSE_LONGLONG"
531 # undef wxUSE_LONGLONG
532 # define wxUSE_LONGLONG 1
535 #endif /* wxUSE_STOPWATCH */
538 # ifdef __WXUNIVERSAL__
540 # ifdef wxABORT_ON_CONFIG_ERROR
541 # error "wxTextCtrl requires wxCaret in wxUniversal"
544 # define wxUSE_CARET 1
546 # endif /* wxUSE_CARET */
548 # if !wxUSE_SCROLLBAR
549 # ifdef wxABORT_ON_CONFIG_ERROR
550 # error "wxTextCtrl requires wxScrollBar in wxUniversal"
552 # undef wxUSE_SCROLLBAR
553 # define wxUSE_SCROLLBAR 1
555 # endif /* wxUSE_SCROLLBAR */
556 # endif /* __WXUNIVERSAL__ */
557 #endif /* wxUSE_RADIOBTN */
559 /* I wonder if we shouldn't just remove all occurrences of
560 wxUSE_DYNAMIC_CLASSES from the sources? */
561 #if !defined(wxUSE_DYNAMIC_CLASSES) || !wxUSE_DYNAMIC_CLASSES
562 # if wxABORT_ON_CONFIG_ERROR
563 # error "wxUSE_DYNAMIC_CLASSES must be defined as 1"
565 # undef wxUSE_DYNAMIC_CLASSES
566 # define wxUSE_DYNAMIC_CLASSES
568 #endif /* wxUSE_DYNAMIC_CLASSES */
570 #if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
571 # if wxABORT_ON_CONFIG_ERROR
572 # error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
574 # undef wxUSE_TEXTFILE
575 # define wxUSE_TEXTFILE 1
577 #endif /* wxUSE_MIMETYPE */
579 #if wxUSE_TEXTFILE && !wxUSE_FILE
580 # if wxABORT_ON_CONFIG_ERROR
581 # error "wxUSE_TEXTFILE requires wxUSE_FILE"
584 # define wxUSE_FILE 1
586 #endif /* wxUSE_TEXTFILE */
588 #if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
589 # if wxABORT_ON_CONFIG_ERROR
590 # error "wxClipboard requires wxDataObject"
592 # undef wxUSE_DATAOBJ
593 # define wxUSE_DATAOBJ 1
595 #endif /* wxUSE_CLIPBOARD */
597 /* wxUniv-specific dependencies */
598 #if defined(__WXUNIVERSAL__)
599 # if (wxUSE_COMBOBOX || wxUSE_MENUS) && !wxUSE_POPUPWIN
600 # if wxABORT_ON_CONFIG_ERROR
601 # error "wxUSE_POPUPWIN must be defined to use comboboxes/menus"
603 # undef wxUSE_POPUPWIN
604 # define wxUSE_POPUPWIN 1
607 #endif /* wxUSE_POPUPWIN */
609 /* wxGTK-specific dependencies */
610 #if defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
611 # if wxUSE_MDI_ARCHITECTURE && !wxUSE_MENUS
612 # if wxABORT_ON_CONFIG_ERROR
613 # error "MDI requires wxUSE_MENUS in wxGTK"
616 # define wxUSE_MENUS 1
619 #endif /* wxGTK && !wxUniv */
621 #endif /* wxUSE_GUI */