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