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  * Copyright:   (c) 2000 Vadim Zeitlin <vadim@wxwidgets.org>
8  * Licence:     wxWindows licence
9  */
10 
11 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
12 #ifndef _WX_CHKCONF_H_
13 #define _WX_CHKCONF_H_
14 
15 /*
16               **************************************************
17               PLEASE READ THIS IF YOU GET AN ERROR IN THIS FILE!
18               **************************************************
19 
20     If you get an error saying "wxUSE_FOO must be defined", it means that you
21     are not using the correct up-to-date version of setup.h. If you're building
22     using makefiles under MSW, also remove setup.h under the build directory
23     (lib/$(COMPILER)_{lib,dll}/msw[u][d][dll]/wx) so that the new setup.h is
24     copied there.
25 
26     If you get an error of the form "wxFoo requires wxBar", then the settings
27     in your setup.h are inconsistent. You have the choice between correcting
28     them manually or commenting out #define wxABORT_ON_CONFIG_ERROR below to
29     try to correct the problems automatically (not really recommended but
30     might work).
31  */
32 
33 /*
34    This file has the following sections:
35     1. checks that all wxUSE_XXX symbols we use are defined
36      a) first the non-GUI ones
37      b) then the GUI-only ones
38     2. platform-specific checks done in the platform headers
39     3. generic consistency checks
40      a) first the non-GUI ones
41      b) then the GUI-only ones
42  */
43 
44 /*
45    this global setting determines what should we do if the setting FOO
46    requires BAR and BAR is not set: we can either silently unset FOO as well
47    (do this if you're trying to build the smallest possible library) or give an
48    error and abort (default as leads to least surprising behaviour)
49  */
50 #define wxABORT_ON_CONFIG_ERROR
51 
52 /*
53    global features
54  */
55 
56 /*
57     If we're compiling without support for threads/exceptions we have to
58     disable the corresponding features.
59  */
60 #ifdef wxNO_THREADS
61 #   undef wxUSE_THREADS
62 #   define wxUSE_THREADS 0
63 #endif /* wxNO_THREADS */
64 
65 #ifdef wxNO_EXCEPTIONS
66 #   undef wxUSE_EXCEPTIONS
67 #   define wxUSE_EXCEPTIONS 0
68 #endif /* wxNO_EXCEPTIONS */
69 
70 /* we also must disable exceptions if compiler doesn't support them */
71 #if defined(_MSC_VER) && !defined(_CPPUNWIND)
72 #   undef wxUSE_EXCEPTIONS
73 #   define wxUSE_EXCEPTIONS 0
74 #endif /* VC++ without exceptions support */
75 
76 
77 /*
78    Section 1a: tests for non GUI features.
79 
80    please keep the options in alphabetical order!
81  */
82 
83 #ifndef wxUSE_ANY
84 #   ifdef wxABORT_ON_CONFIG_ERROR
85 #       error "wxUSE_ANY must be defined, please read comment near the top of this file."
86 #   else
87 #       define wxUSE_ANY 0
88 #   endif
89 #endif /* wxUSE_ANY */
90 
91 #ifndef wxUSE_COMPILER_TLS
92 #   ifdef wxABORT_ON_CONFIG_ERROR
93 #       error "wxUSE_COMPILER_TLS must be defined, please read comment near the top of this file."
94 #   else
95 #       define wxUSE_COMPILER_TLS 0
96 #   endif
97 #endif /* !defined(wxUSE_COMPILER_TLS) */
98 
99 #ifndef wxUSE_CONSOLE_EVENTLOOP
100 #   ifdef wxABORT_ON_CONFIG_ERROR
101 #       error "wxUSE_CONSOLE_EVENTLOOP must be defined, please read comment near the top of this file."
102 #   else
103 #       define wxUSE_CONSOLE_EVENTLOOP 0
104 #   endif
105 #endif /* !defined(wxUSE_CONSOLE_EVENTLOOP) */
106 
107 #ifndef wxUSE_DYNLIB_CLASS
108 #   ifdef wxABORT_ON_CONFIG_ERROR
109 #       error "wxUSE_DYNLIB_CLASS must be defined, please read comment near the top of this file."
110 #   else
111 #       define wxUSE_DYNLIB_CLASS 0
112 #   endif
113 #endif /* !defined(wxUSE_DYNLIB_CLASS) */
114 
115 #ifndef wxUSE_EXCEPTIONS
116 #   ifdef wxABORT_ON_CONFIG_ERROR
117 #       error "wxUSE_EXCEPTIONS must be defined, please read comment near the top of this file."
118 #   else
119 #       define wxUSE_EXCEPTIONS 0
120 #   endif
121 #endif /* !defined(wxUSE_EXCEPTIONS) */
122 
123 #ifndef wxUSE_FILE_HISTORY
124 #   ifdef wxABORT_ON_CONFIG_ERROR
125 #       error "wxUSE_FILE_HISTORY must be defined, please read comment near the top of this file."
126 #   else
127 #       define wxUSE_FILE_HISTORY 0
128 #   endif
129 #endif /* !defined(wxUSE_FILE_HISTORY) */
130 
131 #ifndef wxUSE_FILESYSTEM
132 #   ifdef wxABORT_ON_CONFIG_ERROR
133 #       error "wxUSE_FILESYSTEM must be defined, please read comment near the top of this file."
134 #   else
135 #       define wxUSE_FILESYSTEM 0
136 #   endif
137 #endif /* !defined(wxUSE_FILESYSTEM) */
138 
139 #ifndef wxUSE_FS_ARCHIVE
140 #   ifdef wxABORT_ON_CONFIG_ERROR
141 #       error "wxUSE_FS_ARCHIVE must be defined, please read comment near the top of this file."
142 #   else
143 #       define wxUSE_FS_ARCHIVE 0
144 #   endif
145 #endif /* !defined(wxUSE_FS_ARCHIVE) */
146 
147 #ifndef wxUSE_FSVOLUME
148 #   ifdef wxABORT_ON_CONFIG_ERROR
149 #       error "wxUSE_FSVOLUME must be defined, please read comment near the top of this file."
150 #   else
151 #       define wxUSE_FSVOLUME 0
152 #   endif
153 #endif /* !defined(wxUSE_FSVOLUME) */
154 
155 #ifndef wxUSE_FSWATCHER
156 #   ifdef wxABORT_ON_CONFIG_ERROR
157 #       error "wxUSE_FSWATCHER must be defined, please read comment near the top of this file."
158 #   else
159 #       define wxUSE_FSWATCHER 0
160 #   endif
161 #endif /* !defined(wxUSE_FSWATCHER) */
162 
163 #ifndef wxUSE_DYNAMIC_LOADER
164 #   ifdef wxABORT_ON_CONFIG_ERROR
165 #       error "wxUSE_DYNAMIC_LOADER must be defined, please read comment near the top of this file."
166 #   else
167 #       define wxUSE_DYNAMIC_LOADER 0
168 #   endif
169 #endif /* !defined(wxUSE_DYNAMIC_LOADER) */
170 
171 #ifndef wxUSE_INTL
172 #   ifdef wxABORT_ON_CONFIG_ERROR
173 #       error "wxUSE_INTL must be defined, please read comment near the top of this file."
174 #   else
175 #       define wxUSE_INTL 0
176 #   endif
177 #endif /* !defined(wxUSE_INTL) */
178 
179 #ifndef wxUSE_IPV6
180 #   ifdef wxABORT_ON_CONFIG_ERROR
181 #       error "wxUSE_IPV6 must be defined, please read comment near the top of this file."
182 #   else
183 #       define wxUSE_IPV6 0
184 #   endif
185 #endif /* !defined(wxUSE_IPV6) */
186 
187 #ifndef wxUSE_LOG
188 #   ifdef wxABORT_ON_CONFIG_ERROR
189 #       error "wxUSE_LOG must be defined, please read comment near the top of this file."
190 #   else
191 #       define wxUSE_LOG 0
192 #   endif
193 #endif /* !defined(wxUSE_LOG) */
194 
195 #ifndef wxUSE_LONGLONG
196 #   ifdef wxABORT_ON_CONFIG_ERROR
197 #       error "wxUSE_LONGLONG must be defined, please read comment near the top of this file."
198 #   else
199 #       define wxUSE_LONGLONG 0
200 #   endif
201 #endif /* !defined(wxUSE_LONGLONG) */
202 
203 #ifndef wxUSE_MIMETYPE
204 #   ifdef wxABORT_ON_CONFIG_ERROR
205 #       error "wxUSE_MIMETYPE must be defined, please read comment near the top of this file."
206 #   else
207 #       define wxUSE_MIMETYPE 0
208 #   endif
209 #endif /* !defined(wxUSE_MIMETYPE) */
210 
211 #ifndef wxUSE_ON_FATAL_EXCEPTION
212 #   ifdef wxABORT_ON_CONFIG_ERROR
213 #       error "wxUSE_ON_FATAL_EXCEPTION must be defined, please read comment near the top of this file."
214 #   else
215 #       define wxUSE_ON_FATAL_EXCEPTION 0
216 #   endif
217 #endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */
218 
219 #ifndef wxUSE_PRINTF_POS_PARAMS
220 #   ifdef wxABORT_ON_CONFIG_ERROR
221 #       error "wxUSE_PRINTF_POS_PARAMS must be defined, please read comment near the top of this file."
222 #   else
223 #       define wxUSE_PRINTF_POS_PARAMS 0
224 #   endif
225 #endif /* !defined(wxUSE_PRINTF_POS_PARAMS) */
226 
227 #ifndef wxUSE_PROTOCOL
228 #   ifdef wxABORT_ON_CONFIG_ERROR
229 #       error "wxUSE_PROTOCOL must be defined, please read comment near the top of this file."
230 #   else
231 #       define wxUSE_PROTOCOL 0
232 #   endif
233 #endif /* !defined(wxUSE_PROTOCOL) */
234 
235 /* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */
236 #if !wxUSE_PROTOCOL
237 #   undef wxUSE_PROTOCOL_HTTP
238 #   undef wxUSE_PROTOCOL_FTP
239 #   undef wxUSE_PROTOCOL_FILE
240 #   define wxUSE_PROTOCOL_HTTP 0
241 #   define wxUSE_PROTOCOL_FTP 0
242 #   define wxUSE_PROTOCOL_FILE 0
243 #endif /* wxUSE_PROTOCOL */
244 
245 #ifndef wxUSE_PROTOCOL_HTTP
246 #   ifdef wxABORT_ON_CONFIG_ERROR
247 #       error "wxUSE_PROTOCOL_HTTP must be defined, please read comment near the top of this file."
248 #   else
249 #       define wxUSE_PROTOCOL_HTTP 0
250 #   endif
251 #endif /* !defined(wxUSE_PROTOCOL_HTTP) */
252 
253 #ifndef wxUSE_PROTOCOL_FTP
254 #   ifdef wxABORT_ON_CONFIG_ERROR
255 #       error "wxUSE_PROTOCOL_FTP must be defined, please read comment near the top of this file."
256 #   else
257 #       define wxUSE_PROTOCOL_FTP 0
258 #   endif
259 #endif /* !defined(wxUSE_PROTOCOL_FTP) */
260 
261 #ifndef wxUSE_PROTOCOL_FILE
262 #   ifdef wxABORT_ON_CONFIG_ERROR
263 #       error "wxUSE_PROTOCOL_FILE must be defined, please read comment near the top of this file."
264 #   else
265 #       define wxUSE_PROTOCOL_FILE 0
266 #   endif
267 #endif /* !defined(wxUSE_PROTOCOL_FILE) */
268 
269 #ifndef wxUSE_REGEX
270 #   ifdef wxABORT_ON_CONFIG_ERROR
271 #       error "wxUSE_REGEX must be defined, please read comment near the top of this file."
272 #   else
273 #       define wxUSE_REGEX 0
274 #   endif
275 #endif /* !defined(wxUSE_REGEX) */
276 
277 #ifndef wxUSE_SECRETSTORE
278 #   ifdef wxABORT_ON_CONFIG_ERROR
279 #       error "wxUSE_SECRETSTORE must be defined, please read comment near the top of this file."
280 #   else
281 #       define wxUSE_SECRETSTORE 1
282 #   endif
283 #endif /* !defined(wxUSE_SECRETSTORE) */
284 
285 #ifndef wxUSE_STDPATHS
286 #   ifdef wxABORT_ON_CONFIG_ERROR
287 #       error "wxUSE_STDPATHS must be defined, please read comment near the top of this file."
288 #   else
289 #       define wxUSE_STDPATHS 1
290 #   endif
291 #endif /* !defined(wxUSE_STDPATHS) */
292 
293 #ifndef wxUSE_XML
294 #   ifdef wxABORT_ON_CONFIG_ERROR
295 #       error "wxUSE_XML must be defined, please read comment near the top of this file."
296 #   else
297 #       define wxUSE_XML 0
298 #   endif
299 #endif /* !defined(wxUSE_XML) */
300 
301 #ifndef wxUSE_SOCKETS
302 #   ifdef wxABORT_ON_CONFIG_ERROR
303 #       error "wxUSE_SOCKETS must be defined, please read comment near the top of this file."
304 #   else
305 #       define wxUSE_SOCKETS 0
306 #   endif
307 #endif /* !defined(wxUSE_SOCKETS) */
308 
309 #ifndef wxUSE_STD_CONTAINERS
310 #   ifdef wxABORT_ON_CONFIG_ERROR
311 #       error "wxUSE_STD_CONTAINERS must be defined, please read comment near the top of this file."
312 #   else
313 #       define wxUSE_STD_CONTAINERS 0
314 #   endif
315 #endif /* !defined(wxUSE_STD_CONTAINERS) */
316 
317 #ifndef wxUSE_STD_CONTAINERS_COMPATIBLY
318 #   ifdef wxABORT_ON_CONFIG_ERROR
319 #       error "wxUSE_STD_CONTAINERS_COMPATIBLY must be defined, please read comment near the top of this file."
320 #   else
321 #       define wxUSE_STD_CONTAINERS_COMPATIBLY 0
322 #   endif
323 #endif /* !defined(wxUSE_STD_CONTAINERS_COMPATIBLY) */
324 
325 #ifndef wxUSE_STD_STRING_CONV_IN_WXSTRING
326 #   ifdef wxABORT_ON_CONFIG_ERROR
327 #       error "wxUSE_STD_STRING_CONV_IN_WXSTRING must be defined, please read comment near the top of this file."
328 #   else
329 #       define wxUSE_STD_STRING_CONV_IN_WXSTRING 0
330 #   endif
331 #endif /* !defined(wxUSE_STD_STRING_CONV_IN_WXSTRING) */
332 
333 #ifndef wxUSE_STREAMS
334 #   ifdef wxABORT_ON_CONFIG_ERROR
335 #       error "wxUSE_STREAMS must be defined, please read comment near the top of this file."
336 #   else
337 #       define wxUSE_STREAMS 0
338 #   endif
339 #endif /* !defined(wxUSE_STREAMS) */
340 
341 #ifndef wxUSE_STOPWATCH
342 #   ifdef wxABORT_ON_CONFIG_ERROR
343 #       error "wxUSE_STOPWATCH must be defined, please read comment near the top of this file."
344 #   else
345 #       define wxUSE_STOPWATCH 0
346 #   endif
347 #endif /* !defined(wxUSE_STOPWATCH) */
348 
349 #ifndef wxUSE_TEXTBUFFER
350 #   ifdef wxABORT_ON_CONFIG_ERROR
351 #       error "wxUSE_TEXTBUFFER must be defined, please read comment near the top of this file."
352 #   else
353 #       define wxUSE_TEXTBUFFER 0
354 #   endif
355 #endif /* !defined(wxUSE_TEXTBUFFER) */
356 
357 #ifndef wxUSE_TEXTFILE
358 #   ifdef wxABORT_ON_CONFIG_ERROR
359 #       error "wxUSE_TEXTFILE must be defined, please read comment near the top of this file."
360 #   else
361 #       define wxUSE_TEXTFILE 0
362 #   endif
363 #endif /* !defined(wxUSE_TEXTFILE) */
364 
365 #ifndef wxUSE_UNICODE
366 #   ifdef wxABORT_ON_CONFIG_ERROR
367 #       error "wxUSE_UNICODE must be defined, please read comment near the top of this file."
368 #   else
369 #       define wxUSE_UNICODE 0
370 #   endif
371 #endif /* !defined(wxUSE_UNICODE) */
372 
373 #ifndef wxUSE_UNSAFE_WXSTRING_CONV
374 #   ifdef wxABORT_ON_CONFIG_ERROR
375 #       error "wxUSE_UNSAFE_WXSTRING_CONV must be defined, please read comment near the top of this file."
376 #   else
377 #       define wxUSE_UNSAFE_WXSTRING_CONV 0
378 #   endif
379 #endif /* !defined(wxUSE_UNSAFE_WXSTRING_CONV) */
380 
381 #ifndef wxUSE_URL
382 #   ifdef wxABORT_ON_CONFIG_ERROR
383 #       error "wxUSE_URL must be defined, please read comment near the top of this file."
384 #   else
385 #       define wxUSE_URL 0
386 #   endif
387 #endif /* !defined(wxUSE_URL) */
388 
389 #ifndef wxUSE_VARIANT
390 #   ifdef wxABORT_ON_CONFIG_ERROR
391 #       error "wxUSE_VARIANT must be defined, please read comment near the top of this file."
392 #   else
393 #       define wxUSE_VARIANT 0
394 #   endif
395 #endif /* wxUSE_VARIANT */
396 
397 #ifndef wxUSE_XLOCALE
398 #   ifdef wxABORT_ON_CONFIG_ERROR
399 #       error "wxUSE_XLOCALE must be defined, please read comment near the top of this file."
400 #   else
401 #       define wxUSE_XLOCALE 0
402 #   endif
403 #endif /* !defined(wxUSE_XLOCALE) */
404 
405 /*
406    Section 1b: all these tests are for GUI only.
407 
408    please keep the options in alphabetical order!
409  */
410 #if wxUSE_GUI
411 
412 /*
413    all of the settings tested below must be defined or we'd get an error from
414    preprocessor about invalid integer expression
415  */
416 
417 #ifndef wxUSE_ABOUTDLG
418 #   ifdef wxABORT_ON_CONFIG_ERROR
419 #       error "wxUSE_ABOUTDLG must be defined, please read comment near the top of this file."
420 #   else
421 #       define wxUSE_ABOUTDLG 0
422 #   endif
423 #endif /* !defined(wxUSE_ABOUTDLG) */
424 
425 #ifndef wxUSE_ACCEL
426 #   ifdef wxABORT_ON_CONFIG_ERROR
427 #       error "wxUSE_ACCEL must be defined, please read comment near the top of this file."
428 #   else
429 #       define wxUSE_ACCEL 0
430 #   endif
431 #endif /* !defined(wxUSE_ACCEL) */
432 
433 #ifndef wxUSE_ACCESSIBILITY
434 #   ifdef wxABORT_ON_CONFIG_ERROR
435 #       error "wxUSE_ACCESSIBILITY must be defined, please read comment near the top of this file."
436 #   else
437 #       define wxUSE_ACCESSIBILITY 0
438 #   endif
439 #endif /* !defined(wxUSE_ACCESSIBILITY) */
440 
441 #ifndef wxUSE_ADDREMOVECTRL
442 #   ifdef wxABORT_ON_CONFIG_ERROR
443 #       error "wxUSE_ADDREMOVECTRL must be defined, please read comment near the top of this file."
444 #   else
445 #       define wxUSE_ADDREMOVECTRL 0
446 #   endif
447 #endif /* !defined(wxUSE_ADDREMOVECTRL) */
448 
449 #ifndef wxUSE_ACTIVITYINDICATOR
450 #   ifdef wxABORT_ON_CONFIG_ERROR
451 #       error "wxUSE_ACTIVITYINDICATOR must be defined, please read comment near the top of this file."
452 #   else
453 #       define wxUSE_ACTIVITYINDICATOR 0
454 #   endif
455 #endif /* !defined(wxUSE_ACTIVITYINDICATOR) */
456 
457 #ifndef wxUSE_ANIMATIONCTRL
458 #   ifdef wxABORT_ON_CONFIG_ERROR
459 #       error "wxUSE_ANIMATIONCTRL must be defined, please read comment near the top of this file."
460 #   else
461 #       define wxUSE_ANIMATIONCTRL 0
462 #   endif
463 #endif /* !defined(wxUSE_ANIMATIONCTRL) */
464 
465 #ifndef wxUSE_ARTPROVIDER_STD
466 #   ifdef wxABORT_ON_CONFIG_ERROR
467 #       error "wxUSE_ARTPROVIDER_STD must be defined, please read comment near the top of this file."
468 #   else
469 #       define wxUSE_ARTPROVIDER_STD 0
470 #   endif
471 #endif /* !defined(wxUSE_ARTPROVIDER_STD) */
472 
473 #ifndef wxUSE_ARTPROVIDER_TANGO
474 #   ifdef wxABORT_ON_CONFIG_ERROR
475 #       error "wxUSE_ARTPROVIDER_TANGO must be defined, please read comment near the top of this file."
476 #   else
477 #       define wxUSE_ARTPROVIDER_TANGO 0
478 #   endif
479 #endif /* !defined(wxUSE_ARTPROVIDER_TANGO) */
480 
481 #ifndef wxUSE_AUTOID_MANAGEMENT
482 #   ifdef wxABORT_ON_CONFIG_ERROR
483 #       error "wxUSE_AUTOID_MANAGEMENT must be defined, please read comment near the top of this file."
484 #   else
485 #       define wxUSE_AUTOID_MANAGEMENT 0
486 #   endif
487 #endif /* !defined(wxUSE_AUTOID_MANAGEMENT) */
488 
489 #ifndef wxUSE_BITMAPCOMBOBOX
490 #   ifdef wxABORT_ON_CONFIG_ERROR
491 #       error "wxUSE_BITMAPCOMBOBOX must be defined, please read comment near the top of this file."
492 #   else
493 #       define wxUSE_BITMAPCOMBOBOX 0
494 #   endif
495 #endif /* !defined(wxUSE_BITMAPCOMBOBOX) */
496 
497 #ifndef wxUSE_BMPBUTTON
498 #   ifdef wxABORT_ON_CONFIG_ERROR
499 #       error "wxUSE_BMPBUTTON must be defined, please read comment near the top of this file."
500 #   else
501 #       define wxUSE_BMPBUTTON 0
502 #   endif
503 #endif /* !defined(wxUSE_BMPBUTTON) */
504 
505 #ifndef wxUSE_BUTTON
506 #   ifdef wxABORT_ON_CONFIG_ERROR
507 #       error "wxUSE_BUTTON must be defined, please read comment near the top of this file."
508 #   else
509 #       define wxUSE_BUTTON 0
510 #   endif
511 #endif /* !defined(wxUSE_BUTTON) */
512 
513 #ifndef wxUSE_CAIRO
514 #   ifdef wxABORT_ON_CONFIG_ERROR
515 #       error "wxUSE_CAIRO must be defined, please read comment near the top of this file."
516 #   else
517 #       define wxUSE_CAIRO 0
518 #   endif
519 #endif /* !defined(wxUSE_CAIRO) */
520 
521 #ifndef wxUSE_CALENDARCTRL
522 #   ifdef wxABORT_ON_CONFIG_ERROR
523 #       error "wxUSE_CALENDARCTRL must be defined, please read comment near the top of this file."
524 #   else
525 #       define wxUSE_CALENDARCTRL 0
526 #   endif
527 #endif /* !defined(wxUSE_CALENDARCTRL) */
528 
529 #ifndef wxUSE_CARET
530 #   ifdef wxABORT_ON_CONFIG_ERROR
531 #       error "wxUSE_CARET must be defined, please read comment near the top of this file."
532 #   else
533 #       define wxUSE_CARET 0
534 #   endif
535 #endif /* !defined(wxUSE_CARET) */
536 
537 #ifndef wxUSE_CHECKBOX
538 #   ifdef wxABORT_ON_CONFIG_ERROR
539 #       error "wxUSE_CHECKBOX must be defined, please read comment near the top of this file."
540 #   else
541 #       define wxUSE_CHECKBOX 0
542 #   endif
543 #endif /* !defined(wxUSE_CHECKBOX) */
544 
545 #ifndef wxUSE_CHECKLISTBOX
546 #   ifdef wxABORT_ON_CONFIG_ERROR
547 #       error "wxUSE_CHECKLISTBOX must be defined, please read comment near the top of this file."
548 #   else
549 #       define wxUSE_CHECKLISTBOX 0
550 #   endif
551 #endif /* !defined(wxUSE_CHECKLISTBOX) */
552 
553 #ifndef wxUSE_CHOICE
554 #   ifdef wxABORT_ON_CONFIG_ERROR
555 #       error "wxUSE_CHOICE must be defined, please read comment near the top of this file."
556 #   else
557 #       define wxUSE_CHOICE 0
558 #   endif
559 #endif /* !defined(wxUSE_CHOICE) */
560 
561 #ifndef wxUSE_CHOICEBOOK
562 #   ifdef wxABORT_ON_CONFIG_ERROR
563 #       error "wxUSE_CHOICEBOOK must be defined, please read comment near the top of this file."
564 #   else
565 #       define wxUSE_CHOICEBOOK 0
566 #   endif
567 #endif /* !defined(wxUSE_CHOICEBOOK) */
568 
569 #ifndef wxUSE_CHOICEDLG
570 #   ifdef wxABORT_ON_CONFIG_ERROR
571 #       error "wxUSE_CHOICEDLG must be defined, please read comment near the top of this file."
572 #   else
573 #       define wxUSE_CHOICEDLG 0
574 #   endif
575 #endif /* !defined(wxUSE_CHOICEDLG) */
576 
577 #ifndef wxUSE_CLIPBOARD
578 #   ifdef wxABORT_ON_CONFIG_ERROR
579 #       error "wxUSE_CLIPBOARD must be defined, please read comment near the top of this file."
580 #   else
581 #       define wxUSE_CLIPBOARD 0
582 #   endif
583 #endif /* !defined(wxUSE_CLIPBOARD) */
584 
585 #ifndef wxUSE_COLLPANE
586 #   ifdef wxABORT_ON_CONFIG_ERROR
587 #       error "wxUSE_COLLPANE must be defined, please read comment near the top of this file."
588 #   else
589 #       define wxUSE_COLLPANE 0
590 #   endif
591 #endif /* !defined(wxUSE_COLLPANE) */
592 
593 #ifndef wxUSE_COLOURDLG
594 #   ifdef wxABORT_ON_CONFIG_ERROR
595 #       error "wxUSE_COLOURDLG must be defined, please read comment near the top of this file."
596 #   else
597 #       define wxUSE_COLOURDLG 0
598 #   endif
599 #endif /* !defined(wxUSE_COLOURDLG) */
600 
601 #ifndef wxUSE_COLOURPICKERCTRL
602 #   ifdef wxABORT_ON_CONFIG_ERROR
603 #       error "wxUSE_COLOURPICKERCTRL must be defined, please read comment near the top of this file."
604 #   else
605 #       define wxUSE_COLOURPICKERCTRL 0
606 #   endif
607 #endif /* !defined(wxUSE_COLOURPICKERCTRL) */
608 
609 #ifndef wxUSE_COMBOBOX
610 #   ifdef wxABORT_ON_CONFIG_ERROR
611 #       error "wxUSE_COMBOBOX must be defined, please read comment near the top of this file."
612 #   else
613 #       define wxUSE_COMBOBOX 0
614 #   endif
615 #endif /* !defined(wxUSE_COMBOBOX) */
616 
617 #ifndef wxUSE_COMMANDLINKBUTTON
618 #   ifdef wxABORT_ON_CONFIG_ERROR
619 #       error "wxUSE_COMMANDLINKBUTTON must be defined, please read comment near the top of this file."
620 #   else
621 #       define wxUSE_COMMANDLINKBUTTON 0
622 #   endif
623 #endif /* !defined(wxUSE_COMMANDLINKBUTTON) */
624 
625 #ifndef wxUSE_COMBOCTRL
626 #   ifdef wxABORT_ON_CONFIG_ERROR
627 #       error "wxUSE_COMBOCTRL must be defined, please read comment near the top of this file."
628 #   else
629 #       define wxUSE_COMBOCTRL 0
630 #   endif
631 #endif /* !defined(wxUSE_COMBOCTRL) */
632 
633 #ifndef wxUSE_DATAOBJ
634 #   ifdef wxABORT_ON_CONFIG_ERROR
635 #       error "wxUSE_DATAOBJ must be defined, please read comment near the top of this file."
636 #   else
637 #       define wxUSE_DATAOBJ 0
638 #   endif
639 #endif /* !defined(wxUSE_DATAOBJ) */
640 
641 #ifndef wxUSE_DATAVIEWCTRL
642 #   ifdef wxABORT_ON_CONFIG_ERROR
643 #       error "wxUSE_DATAVIEWCTRL must be defined, please read comment near the top of this file."
644 #   else
645 #       define wxUSE_DATAVIEWCTRL 0
646 #   endif
647 #endif /* !defined(wxUSE_DATAVIEWCTRL) */
648 
649 #ifndef wxUSE_NATIVE_DATAVIEWCTRL
650 #   ifdef wxABORT_ON_CONFIG_ERROR
651 #       error "wxUSE_NATIVE_DATAVIEWCTRL must be defined, please read comment near the top of this file."
652 #   else
653 #       define wxUSE_NATIVE_DATAVIEWCTRL 1
654 #   endif
655 #endif /* !defined(wxUSE_NATIVE_DATAVIEWCTRL) */
656 
657 #ifndef wxUSE_DATEPICKCTRL
658 #   ifdef wxABORT_ON_CONFIG_ERROR
659 #       error "wxUSE_DATEPICKCTRL must be defined, please read comment near the top of this file."
660 #   else
661 #       define wxUSE_DATEPICKCTRL 0
662 #   endif
663 #endif /* !defined(wxUSE_DATEPICKCTRL) */
664 
665 #ifndef wxUSE_DC_TRANSFORM_MATRIX
666 #   ifdef wxABORT_ON_CONFIG_ERROR
667 #       error "wxUSE_DC_TRANSFORM_MATRIX must be defined, please read comment near the top of this file."
668 #   else
669 #       define wxUSE_DC_TRANSFORM_MATRIX 1
670 #   endif
671 #endif /* wxUSE_DC_TRANSFORM_MATRIX */
672 
673 #ifndef wxUSE_DIRPICKERCTRL
674 #   ifdef wxABORT_ON_CONFIG_ERROR
675 #       error "wxUSE_DIRPICKERCTRL must be defined, please read comment near the top of this file."
676 #   else
677 #       define wxUSE_DIRPICKERCTRL 0
678 #   endif
679 #endif /* !defined(wxUSE_DIRPICKERCTRL) */
680 
681 #ifndef wxUSE_DISPLAY
682 #   ifdef wxABORT_ON_CONFIG_ERROR
683 #       error "wxUSE_DISPLAY must be defined, please read comment near the top of this file."
684 #   else
685 #       define wxUSE_DISPLAY 0
686 #   endif
687 #endif /* !defined(wxUSE_DISPLAY) */
688 
689 #ifndef wxUSE_DOC_VIEW_ARCHITECTURE
690 #   ifdef wxABORT_ON_CONFIG_ERROR
691 #       error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined, please read comment near the top of this file."
692 #   else
693 #       define wxUSE_DOC_VIEW_ARCHITECTURE 0
694 #   endif
695 #endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */
696 
697 #ifndef wxUSE_FILECTRL
698 #   ifdef wxABORT_ON_CONFIG_ERROR
699 #       error "wxUSE_FILECTRL must be defined, please read comment near the top of this file."
700 #   else
701 #       define wxUSE_FILECTRL 0
702 #   endif
703 #endif /* !defined(wxUSE_FILECTRL) */
704 
705 #ifndef wxUSE_FILEDLG
706 #   ifdef wxABORT_ON_CONFIG_ERROR
707 #       error "wxUSE_FILEDLG must be defined, please read comment near the top of this file."
708 #   else
709 #       define wxUSE_FILEDLG 0
710 #   endif
711 #endif /* !defined(wxUSE_FILEDLG) */
712 
713 #ifndef wxUSE_FILEPICKERCTRL
714 #   ifdef wxABORT_ON_CONFIG_ERROR
715 #       error "wxUSE_FILEPICKERCTRL must be defined, please read comment near the top of this file."
716 #   else
717 #       define wxUSE_FILEPICKERCTRL 0
718 #   endif
719 #endif /* !defined(wxUSE_FILEPICKERCTRL) */
720 
721 #ifndef wxUSE_FONTDLG
722 #   ifdef wxABORT_ON_CONFIG_ERROR
723 #       error "wxUSE_FONTDLG must be defined, please read comment near the top of this file."
724 #   else
725 #       define wxUSE_FONTDLG 0
726 #   endif
727 #endif /* !defined(wxUSE_FONTDLG) */
728 
729 #ifndef wxUSE_FONTMAP
730 #   ifdef wxABORT_ON_CONFIG_ERROR
731 #       error "wxUSE_FONTMAP must be defined, please read comment near the top of this file."
732 #   else
733 #       define wxUSE_FONTMAP 0
734 #   endif
735 #endif /* !defined(wxUSE_FONTMAP) */
736 
737 #ifndef wxUSE_FONTPICKERCTRL
738 #   ifdef wxABORT_ON_CONFIG_ERROR
739 #       error "wxUSE_FONTPICKERCTRL must be defined, please read comment near the top of this file."
740 #   else
741 #       define wxUSE_FONTPICKERCTRL 0
742 #   endif
743 #endif /* !defined(wxUSE_FONTPICKERCTRL) */
744 
745 #ifndef wxUSE_GAUGE
746 #   ifdef wxABORT_ON_CONFIG_ERROR
747 #       error "wxUSE_GAUGE must be defined, please read comment near the top of this file."
748 #   else
749 #       define wxUSE_GAUGE 0
750 #   endif
751 #endif /* !defined(wxUSE_GAUGE) */
752 
753 #ifndef wxUSE_GRAPHICS_CONTEXT
754 #   ifdef wxABORT_ON_CONFIG_ERROR
755 #       error "wxUSE_GRAPHICS_CONTEXT must be defined, please read comment near the top of this file."
756 #   else
757 #       define wxUSE_GRAPHICS_CONTEXT 0
758 #   endif
759 #endif /* !defined(wxUSE_GRAPHICS_CONTEXT) */
760 
761 
762 #ifndef wxUSE_GRID
763 #   ifdef wxABORT_ON_CONFIG_ERROR
764 #       error "wxUSE_GRID must be defined, please read comment near the top of this file."
765 #   else
766 #       define wxUSE_GRID 0
767 #   endif
768 #endif /* !defined(wxUSE_GRID) */
769 
770 #ifndef wxUSE_HEADERCTRL
771 #   ifdef wxABORT_ON_CONFIG_ERROR
772 #       error "wxUSE_HEADERCTRL must be defined, please read comment near the top of this file."
773 #   else
774 #       define wxUSE_HEADERCTRL 0
775 #   endif
776 #endif /* !defined(wxUSE_HEADERCTRL) */
777 
778 #ifndef wxUSE_HELP
779 #   ifdef wxABORT_ON_CONFIG_ERROR
780 #       error "wxUSE_HELP must be defined, please read comment near the top of this file."
781 #   else
782 #       define wxUSE_HELP 0
783 #   endif
784 #endif /* !defined(wxUSE_HELP) */
785 
786 #ifndef wxUSE_HYPERLINKCTRL
787 #   ifdef wxABORT_ON_CONFIG_ERROR
788 #       error "wxUSE_HYPERLINKCTRL must be defined, please read comment near the top of this file."
789 #   else
790 #       define wxUSE_HYPERLINKCTRL 0
791 #   endif
792 #endif /* !defined(wxUSE_HYPERLINKCTRL) */
793 
794 #ifndef wxUSE_HTML
795 #   ifdef wxABORT_ON_CONFIG_ERROR
796 #       error "wxUSE_HTML must be defined, please read comment near the top of this file."
797 #   else
798 #       define wxUSE_HTML 0
799 #   endif
800 #endif /* !defined(wxUSE_HTML) */
801 
802 #ifndef wxUSE_LIBMSPACK
803 #   if !defined(__UNIX__)
804         /* set to 0 on platforms that don't have libmspack */
805 #       define wxUSE_LIBMSPACK 0
806 #   else
807 #       ifdef wxABORT_ON_CONFIG_ERROR
808 #           error "wxUSE_LIBMSPACK must be defined, please read comment near the top of this file."
809 #       else
810 #           define wxUSE_LIBMSPACK 0
811 #       endif
812 #   endif
813 #endif /* !defined(wxUSE_LIBMSPACK) */
814 
815 #ifndef wxUSE_ICO_CUR
816 #   ifdef wxABORT_ON_CONFIG_ERROR
817 #       error "wxUSE_ICO_CUR must be defined, please read comment near the top of this file."
818 #   else
819 #       define wxUSE_ICO_CUR 0
820 #   endif
821 #endif /* !defined(wxUSE_ICO_CUR) */
822 
823 #ifndef wxUSE_IFF
824 #   ifdef wxABORT_ON_CONFIG_ERROR
825 #       error "wxUSE_IFF must be defined, please read comment near the top of this file."
826 #   else
827 #       define wxUSE_IFF 0
828 #   endif
829 #endif /* !defined(wxUSE_IFF) */
830 
831 #ifndef wxUSE_IMAGLIST
832 #   ifdef wxABORT_ON_CONFIG_ERROR
833 #       error "wxUSE_IMAGLIST must be defined, please read comment near the top of this file."
834 #   else
835 #       define wxUSE_IMAGLIST 0
836 #   endif
837 #endif /* !defined(wxUSE_IMAGLIST) */
838 
839 #ifndef wxUSE_INFOBAR
840 #   ifdef wxABORT_ON_CONFIG_ERROR
841 #       error "wxUSE_INFOBAR must be defined, please read comment near the top of this file."
842 #   else
843 #       define wxUSE_INFOBAR 0
844 #   endif
845 #endif /* !defined(wxUSE_INFOBAR) */
846 
847 #ifndef wxUSE_JOYSTICK
848 #   ifdef wxABORT_ON_CONFIG_ERROR
849 #       error "wxUSE_JOYSTICK must be defined, please read comment near the top of this file."
850 #   else
851 #       define wxUSE_JOYSTICK 0
852 #   endif
853 #endif /* !defined(wxUSE_JOYSTICK) */
854 
855 #ifndef wxUSE_LISTBOOK
856 #   ifdef wxABORT_ON_CONFIG_ERROR
857 #       error "wxUSE_LISTBOOK must be defined, please read comment near the top of this file."
858 #   else
859 #       define wxUSE_LISTBOOK 0
860 #   endif
861 #endif /* !defined(wxUSE_LISTBOOK) */
862 
863 #ifndef wxUSE_LISTBOX
864 #   ifdef wxABORT_ON_CONFIG_ERROR
865 #       error "wxUSE_LISTBOX must be defined, please read comment near the top of this file."
866 #   else
867 #       define wxUSE_LISTBOX 0
868 #   endif
869 #endif /* !defined(wxUSE_LISTBOX) */
870 
871 #ifndef wxUSE_LISTCTRL
872 #   ifdef wxABORT_ON_CONFIG_ERROR
873 #       error "wxUSE_LISTCTRL must be defined, please read comment near the top of this file."
874 #   else
875 #       define wxUSE_LISTCTRL 0
876 #   endif
877 #endif /* !defined(wxUSE_LISTCTRL) */
878 
879 #ifndef wxUSE_LOGGUI
880 #   ifdef wxABORT_ON_CONFIG_ERROR
881 #       error "wxUSE_LOGGUI must be defined, please read comment near the top of this file."
882 #   else
883 #       define wxUSE_LOGGUI 0
884 #   endif
885 #endif /* !defined(wxUSE_LOGGUI) */
886 
887 #ifndef wxUSE_LOGWINDOW
888 #   ifdef wxABORT_ON_CONFIG_ERROR
889 #       error "wxUSE_LOGWINDOW must be defined, please read comment near the top of this file."
890 #   else
891 #       define wxUSE_LOGWINDOW 0
892 #   endif
893 #endif /* !defined(wxUSE_LOGWINDOW) */
894 
895 #ifndef wxUSE_LOG_DIALOG
896 #   ifdef wxABORT_ON_CONFIG_ERROR
897 #       error "wxUSE_LOG_DIALOG must be defined, please read comment near the top of this file."
898 #   else
899 #       define wxUSE_LOG_DIALOG 0
900 #   endif
901 #endif /* !defined(wxUSE_LOG_DIALOG) */
902 
903 #ifndef wxUSE_MARKUP
904 #   ifdef wxABORT_ON_CONFIG_ERROR
905 #       error "wxUSE_MARKUP must be defined, please read comment near the top of this file."
906 #   else
907 #       define wxUSE_MARKUP 0
908 #   endif
909 #endif /* !defined(wxUSE_MARKUP) */
910 
911 #ifndef wxUSE_MDI
912 #   ifdef wxABORT_ON_CONFIG_ERROR
913 #       error "wxUSE_MDI must be defined, please read comment near the top of this file."
914 #   else
915 #       define wxUSE_MDI 0
916 #   endif
917 #endif /* !defined(wxUSE_MDI) */
918 
919 #ifndef wxUSE_MDI_ARCHITECTURE
920 #   ifdef wxABORT_ON_CONFIG_ERROR
921 #       error "wxUSE_MDI_ARCHITECTURE must be defined, please read comment near the top of this file."
922 #   else
923 #       define wxUSE_MDI_ARCHITECTURE 0
924 #   endif
925 #endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
926 
927 #ifndef wxUSE_MENUBAR
928 #   ifdef wxABORT_ON_CONFIG_ERROR
929 #       error "wxUSE_MENUBAR must be defined, please read comment near the top of this file."
930 #   else
931 #       define wxUSE_MENUBAR 0
932 #   endif
933 #endif /* !defined(wxUSE_MENUBAR) */
934 
935 #ifndef wxUSE_MENUS
936 #   ifdef wxABORT_ON_CONFIG_ERROR
937 #       error "wxUSE_MENUS must be defined, please read comment near the top of this file."
938 #   else
939 #       define wxUSE_MENUS 0
940 #   endif
941 #endif /* !defined(wxUSE_MENUS) */
942 
943 #ifndef wxUSE_MSGDLG
944 #   ifdef wxABORT_ON_CONFIG_ERROR
945 #       error "wxUSE_MSGDLG must be defined, please read comment near the top of this file."
946 #   else
947 #       define wxUSE_MSGDLG 0
948 #   endif
949 #endif /* !defined(wxUSE_MSGDLG) */
950 
951 #ifndef wxUSE_NOTEBOOK
952 #   ifdef wxABORT_ON_CONFIG_ERROR
953 #       error "wxUSE_NOTEBOOK must be defined, please read comment near the top of this file."
954 #   else
955 #       define wxUSE_NOTEBOOK 0
956 #   endif
957 #endif /* !defined(wxUSE_NOTEBOOK) */
958 
959 #ifndef wxUSE_NOTIFICATION_MESSAGE
960 #   ifdef wxABORT_ON_CONFIG_ERROR
961 #       error "wxUSE_NOTIFICATION_MESSAGE must be defined, please read comment near the top of this file."
962 #   else
963 #       define wxUSE_NOTIFICATION_MESSAGE 0
964 #   endif
965 #endif /* !defined(wxUSE_NOTIFICATION_MESSAGE) */
966 
967 #ifndef wxUSE_ODCOMBOBOX
968 #   ifdef wxABORT_ON_CONFIG_ERROR
969 #       error "wxUSE_ODCOMBOBOX must be defined, please read comment near the top of this file."
970 #   else
971 #       define wxUSE_ODCOMBOBOX 0
972 #   endif
973 #endif /* !defined(wxUSE_ODCOMBOBOX) */
974 
975 #ifndef wxUSE_PALETTE
976 #   ifdef wxABORT_ON_CONFIG_ERROR
977 #       error "wxUSE_PALETTE must be defined, please read comment near the top of this file."
978 #   else
979 #       define wxUSE_PALETTE 0
980 #   endif
981 #endif /* !defined(wxUSE_PALETTE) */
982 
983 #ifndef wxUSE_POPUPWIN
984 #   ifdef wxABORT_ON_CONFIG_ERROR
985 #       error "wxUSE_POPUPWIN must be defined, please read comment near the top of this file."
986 #   else
987 #       define wxUSE_POPUPWIN 0
988 #   endif
989 #endif /* !defined(wxUSE_POPUPWIN) */
990 
991 #ifndef wxUSE_PREFERENCES_EDITOR
992 #   ifdef wxABORT_ON_CONFIG_ERROR
993 #       error "wxUSE_PREFERENCES_EDITOR must be defined, please read comment near the top of this file."
994 #   else
995 #       define wxUSE_PREFERENCES_EDITOR 0
996 #   endif
997 #endif /* !defined(wxUSE_PREFERENCES_EDITOR) */
998 
999 #ifndef wxUSE_PRIVATE_FONTS
1000 #   ifdef wxABORT_ON_CONFIG_ERROR
1001 #       error "wxUSE_PRIVATE_FONTS must be defined, please read comment near the top of this file."
1002 #   else
1003 #       define wxUSE_PRIVATE_FONTS 0
1004 #   endif
1005 #endif /* !defined(wxUSE_PRIVATE_FONTS) */
1006 
1007 #ifndef wxUSE_PRINTING_ARCHITECTURE
1008 #   ifdef wxABORT_ON_CONFIG_ERROR
1009 #       error "wxUSE_PRINTING_ARCHITECTURE must be defined, please read comment near the top of this file."
1010 #   else
1011 #       define wxUSE_PRINTING_ARCHITECTURE 0
1012 #   endif
1013 #endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */
1014 
1015 #ifndef wxUSE_RADIOBOX
1016 #   ifdef wxABORT_ON_CONFIG_ERROR
1017 #       error "wxUSE_RADIOBOX must be defined, please read comment near the top of this file."
1018 #   else
1019 #       define wxUSE_RADIOBOX 0
1020 #   endif
1021 #endif /* !defined(wxUSE_RADIOBOX) */
1022 
1023 #ifndef wxUSE_RADIOBTN
1024 #   ifdef wxABORT_ON_CONFIG_ERROR
1025 #       error "wxUSE_RADIOBTN must be defined, please read comment near the top of this file."
1026 #   else
1027 #       define wxUSE_RADIOBTN 0
1028 #   endif
1029 #endif /* !defined(wxUSE_RADIOBTN) */
1030 
1031 #ifndef wxUSE_REARRANGECTRL
1032 #   ifdef wxABORT_ON_CONFIG_ERROR
1033 #       error "wxUSE_REARRANGECTRL must be defined, please read comment near the top of this file."
1034 #   else
1035 #       define wxUSE_REARRANGECTRL 0
1036 #   endif
1037 #endif /* !defined(wxUSE_REARRANGECTRL) */
1038 
1039 #ifndef wxUSE_RIBBON
1040 #   ifdef wxABORT_ON_CONFIG_ERROR
1041 #       error "wxUSE_RIBBON must be defined, please read comment near the top of this file."
1042 #   else
1043 #       define wxUSE_RIBBON 0
1044 #   endif
1045 #endif /* !defined(wxUSE_RIBBON) */
1046 
1047 #ifndef wxUSE_RICHMSGDLG
1048 #   ifdef wxABORT_ON_CONFIG_ERROR
1049 #       error "wxUSE_RICHMSGDLG must be defined, please read comment near the top of this file."
1050 #   else
1051 #       define wxUSE_RICHMSGDLG 0
1052 #   endif
1053 #endif /* !defined(wxUSE_RICHMSGDLG) */
1054 
1055 #ifndef wxUSE_RICHTOOLTIP
1056 #   ifdef wxABORT_ON_CONFIG_ERROR
1057 #       error "wxUSE_RICHTOOLTIP must be defined, please read comment near the top of this file."
1058 #   else
1059 #       define wxUSE_RICHTOOLTIP 0
1060 #   endif
1061 #endif /* !defined(wxUSE_RICHTOOLTIP) */
1062 
1063 #ifndef wxUSE_SASH
1064 #   ifdef wxABORT_ON_CONFIG_ERROR
1065 #       error "wxUSE_SASH must be defined, please read comment near the top of this file."
1066 #   else
1067 #       define wxUSE_SASH 0
1068 #   endif
1069 #endif /* !defined(wxUSE_SASH) */
1070 
1071 #ifndef wxUSE_SCROLLBAR
1072 #   ifdef wxABORT_ON_CONFIG_ERROR
1073 #       error "wxUSE_SCROLLBAR must be defined, please read comment near the top of this file."
1074 #   else
1075 #       define wxUSE_SCROLLBAR 0
1076 #   endif
1077 #endif /* !defined(wxUSE_SCROLLBAR) */
1078 
1079 #ifndef wxUSE_SLIDER
1080 #   ifdef wxABORT_ON_CONFIG_ERROR
1081 #       error "wxUSE_SLIDER must be defined, please read comment near the top of this file."
1082 #   else
1083 #       define wxUSE_SLIDER 0
1084 #   endif
1085 #endif /* !defined(wxUSE_SLIDER) */
1086 
1087 #ifndef wxUSE_SOUND
1088 #   ifdef wxABORT_ON_CONFIG_ERROR
1089 #       error "wxUSE_SOUND must be defined, please read comment near the top of this file."
1090 #   else
1091 #       define wxUSE_SOUND 0
1092 #   endif
1093 #endif /* !defined(wxUSE_SOUND) */
1094 
1095 #ifndef wxUSE_SPINBTN
1096 #   ifdef wxABORT_ON_CONFIG_ERROR
1097 #       error "wxUSE_SPINBTN must be defined, please read comment near the top of this file."
1098 #   else
1099 #       define wxUSE_SPINBTN 0
1100 #   endif
1101 #endif /* !defined(wxUSE_SPINBTN) */
1102 
1103 #ifndef wxUSE_SPINCTRL
1104 #   ifdef wxABORT_ON_CONFIG_ERROR
1105 #       error "wxUSE_SPINCTRL must be defined, please read comment near the top of this file."
1106 #   else
1107 #       define wxUSE_SPINCTRL 0
1108 #   endif
1109 #endif /* !defined(wxUSE_SPINCTRL) */
1110 
1111 #ifndef wxUSE_SPLASH
1112 #   ifdef wxABORT_ON_CONFIG_ERROR
1113 #       error "wxUSE_SPLASH must be defined, please read comment near the top of this file."
1114 #   else
1115 #       define wxUSE_SPLASH 0
1116 #   endif
1117 #endif /* !defined(wxUSE_SPLASH) */
1118 
1119 #ifndef wxUSE_SPLITTER
1120 #   ifdef wxABORT_ON_CONFIG_ERROR
1121 #       error "wxUSE_SPLITTER must be defined, please read comment near the top of this file."
1122 #   else
1123 #       define wxUSE_SPLITTER 0
1124 #   endif
1125 #endif /* !defined(wxUSE_SPLITTER) */
1126 
1127 #ifndef wxUSE_STATBMP
1128 #   ifdef wxABORT_ON_CONFIG_ERROR
1129 #       error "wxUSE_STATBMP must be defined, please read comment near the top of this file."
1130 #   else
1131 #       define wxUSE_STATBMP 0
1132 #   endif
1133 #endif /* !defined(wxUSE_STATBMP) */
1134 
1135 #ifndef wxUSE_STATBOX
1136 #   ifdef wxABORT_ON_CONFIG_ERROR
1137 #       error "wxUSE_STATBOX must be defined, please read comment near the top of this file."
1138 #   else
1139 #       define wxUSE_STATBOX 0
1140 #   endif
1141 #endif /* !defined(wxUSE_STATBOX) */
1142 
1143 #ifndef wxUSE_STATLINE
1144 #   ifdef wxABORT_ON_CONFIG_ERROR
1145 #       error "wxUSE_STATLINE must be defined, please read comment near the top of this file."
1146 #   else
1147 #       define wxUSE_STATLINE 0
1148 #   endif
1149 #endif /* !defined(wxUSE_STATLINE) */
1150 
1151 #ifndef wxUSE_STATTEXT
1152 #   ifdef wxABORT_ON_CONFIG_ERROR
1153 #       error "wxUSE_STATTEXT must be defined, please read comment near the top of this file."
1154 #   else
1155 #       define wxUSE_STATTEXT 0
1156 #   endif
1157 #endif /* !defined(wxUSE_STATTEXT) */
1158 
1159 #ifndef wxUSE_STATUSBAR
1160 #   ifdef wxABORT_ON_CONFIG_ERROR
1161 #       error "wxUSE_STATUSBAR must be defined, please read comment near the top of this file."
1162 #   else
1163 #       define wxUSE_STATUSBAR 0
1164 #   endif
1165 #endif /* !defined(wxUSE_STATUSBAR) */
1166 
1167 #ifndef wxUSE_TASKBARICON
1168 #   ifdef wxABORT_ON_CONFIG_ERROR
1169 #       error "wxUSE_TASKBARICON must be defined, please read comment near the top of this file."
1170 #   else
1171 #       define wxUSE_TASKBARICON 0
1172 #   endif
1173 #endif /* !defined(wxUSE_TASKBARICON) */
1174 
1175 #ifndef wxUSE_TEXTCTRL
1176 #   ifdef wxABORT_ON_CONFIG_ERROR
1177 #       error "wxUSE_TEXTCTRL must be defined, please read comment near the top of this file."
1178 #   else
1179 #       define wxUSE_TEXTCTRL 0
1180 #   endif
1181 #endif /* !defined(wxUSE_TEXTCTRL) */
1182 
1183 #ifndef wxUSE_TIMEPICKCTRL
1184 #   ifdef wxABORT_ON_CONFIG_ERROR
1185 #       error "wxUSE_TIMEPICKCTRL must be defined, please read comment near the top of this file."
1186 #   else
1187 #       define wxUSE_TIMEPICKCTRL 0
1188 #   endif
1189 #endif /* !defined(wxUSE_TIMEPICKCTRL) */
1190 
1191 #ifndef wxUSE_TIPWINDOW
1192 #   ifdef wxABORT_ON_CONFIG_ERROR
1193 #       error "wxUSE_TIPWINDOW must be defined, please read comment near the top of this file."
1194 #   else
1195 #       define wxUSE_TIPWINDOW 0
1196 #   endif
1197 #endif /* !defined(wxUSE_TIPWINDOW) */
1198 
1199 #ifndef wxUSE_TOOLBAR
1200 #   ifdef wxABORT_ON_CONFIG_ERROR
1201 #       error "wxUSE_TOOLBAR must be defined, please read comment near the top of this file."
1202 #   else
1203 #       define wxUSE_TOOLBAR 0
1204 #   endif
1205 #endif /* !defined(wxUSE_TOOLBAR) */
1206 
1207 #ifndef wxUSE_TOOLTIPS
1208 #   ifdef wxABORT_ON_CONFIG_ERROR
1209 #       error "wxUSE_TOOLTIPS must be defined, please read comment near the top of this file."
1210 #   else
1211 #       define wxUSE_TOOLTIPS 0
1212 #   endif
1213 #endif /* !defined(wxUSE_TOOLTIPS) */
1214 
1215 #ifndef wxUSE_TREECTRL
1216 #   ifdef wxABORT_ON_CONFIG_ERROR
1217 #       error "wxUSE_TREECTRL must be defined, please read comment near the top of this file."
1218 #   else
1219 #       define wxUSE_TREECTRL 0
1220 #   endif
1221 #endif /* !defined(wxUSE_TREECTRL) */
1222 
1223 #ifndef wxUSE_TREELISTCTRL
1224 #   ifdef wxABORT_ON_CONFIG_ERROR
1225 #       error "wxUSE_TREELISTCTRL must be defined, please read comment near the top of this file."
1226 #   else
1227 #       define wxUSE_TREELISTCTRL 0
1228 #   endif
1229 #endif /* !defined(wxUSE_TREELISTCTRL) */
1230 
1231 #ifndef wxUSE_UIACTIONSIMULATOR
1232 #   ifdef wxABORT_ON_CONFIG_ERROR
1233 #       error "wxUSE_UIACTIONSIMULATOR must be defined, please read comment near the top of this file."
1234 #   else
1235 #       define wxUSE_UIACTIONSIMULATOR 0
1236 #   endif
1237 #endif /* !defined(wxUSE_UIACTIONSIMULATOR) */
1238 
1239 #ifndef wxUSE_VALIDATORS
1240 #   ifdef wxABORT_ON_CONFIG_ERROR
1241 #       error "wxUSE_VALIDATORS must be defined, please read comment near the top of this file."
1242 #   else
1243 #       define wxUSE_VALIDATORS 0
1244 #   endif
1245 #endif /* !defined(wxUSE_VALIDATORS) */
1246 
1247 #ifndef wxUSE_WEBREQUEST
1248 #   ifdef wxABORT_ON_CONFIG_ERROR
1249 #       error "wxUSE_WEBREQUEST must be defined, please read comment near the top of this file."
1250 #   else
1251 #       define wxUSE_WEBREQUEST 0
1252 #   endif
1253 #endif /* !defined(wxUSE_WEBREQUEST) */
1254 
1255 #ifndef wxUSE_WEBVIEW
1256 #   ifdef wxABORT_ON_CONFIG_ERROR
1257 #       error "wxUSE_WEBVIEW must be defined, please read comment near the top of this file."
1258 #   else
1259 #       define wxUSE_WEBVIEW 0
1260 #   endif
1261 #endif /* !defined(wxUSE_WEBVIEW) */
1262 
1263 #ifndef wxUSE_WXHTML_HELP
1264 #   ifdef wxABORT_ON_CONFIG_ERROR
1265 #       error "wxUSE_WXHTML_HELP must be defined, please read comment near the top of this file."
1266 #   else
1267 #       define wxUSE_WXHTML_HELP 0
1268 #   endif
1269 #endif /* !defined(wxUSE_WXHTML_HELP) */
1270 
1271 #ifndef wxUSE_XRC
1272 #   ifdef wxABORT_ON_CONFIG_ERROR
1273 #       error "wxUSE_XRC must be defined, please read comment near the top of this file."
1274 #   else
1275 #       define wxUSE_XRC 0
1276 #   endif
1277 #endif /* !defined(wxUSE_XRC) */
1278 
1279 #endif /* wxUSE_GUI */
1280 
1281 /*
1282    Section 2: platform-specific checks.
1283 
1284    This must be done after checking that everything is defined as the platform
1285    checks use wxUSE_XXX symbols in #if tests.
1286  */
1287 
1288 #if defined(__WINDOWS__)
1289 #  include "wx/msw/chkconf.h"
1290 #  if defined(__WXGTK__)
1291 #      include "wx/gtk/chkconf.h"
1292 #  endif
1293 #elif defined(__WXGTK__)
1294 #  include "wx/gtk/chkconf.h"
1295 #elif defined(__WXMAC__)
1296 #  include "wx/osx/chkconf.h"
1297 #elif defined(__WXDFB__)
1298 #  include "wx/dfb/chkconf.h"
1299 #elif defined(__WXMOTIF__)
1300 #  include "wx/motif/chkconf.h"
1301 #elif defined(__WXX11__)
1302 #  include "wx/x11/chkconf.h"
1303 #elif defined(__WXANDROID__)
1304 #  include "wx/android/chkconf.h"
1305 #endif
1306 
1307 /*
1308     __UNIX__ is also defined under Cygwin but we shouldn't perform these checks
1309     there if we're building Windows ports.
1310  */
1311 #if defined(__UNIX__) && !defined(__WINDOWS__)
1312 #   include "wx/unix/chkconf.h"
1313 #endif
1314 
1315 #ifdef __WXUNIVERSAL__
1316 #   include "wx/univ/chkconf.h"
1317 #endif
1318 
1319 /*
1320    Section 3a: check consistency of the non-GUI settings.
1321  */
1322 
1323 #if WXWIN_COMPATIBILITY_2_8
1324 #   if !WXWIN_COMPATIBILITY_3_0
1325 #       ifdef wxABORT_ON_CONFIG_ERROR
1326 #           error "2.8.X compatibility requires 3.0.X compatibility"
1327 #       else
1328 #           undef WXWIN_COMPATIBILITY_3_0
1329 #           define WXWIN_COMPATIBILITY_3_0 1
1330 #       endif
1331 #   endif
1332 #endif /* WXWIN_COMPATIBILITY_2_8 */
1333 
1334 #if wxUSE_ARCHIVE_STREAMS
1335 #   if !wxUSE_DATETIME
1336 #       ifdef wxABORT_ON_CONFIG_ERROR
1337 #           error "wxArchive requires wxUSE_DATETIME"
1338 #       else
1339 #           undef wxUSE_ARCHIVE_STREAMS
1340 #           define wxUSE_ARCHIVE_STREAMS 0
1341 #       endif
1342 #   endif
1343 #endif /* wxUSE_ARCHIVE_STREAMS */
1344 
1345 #if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP
1346 #   if !wxUSE_PROTOCOL
1347 #        ifdef wxABORT_ON_CONFIG_ERROR
1348 #            error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL"
1349 #        else
1350 #            undef wxUSE_PROTOCOL
1351 #            define wxUSE_PROTOCOL 1
1352 #        endif
1353 #   endif
1354 #endif /* wxUSE_PROTOCOL_XXX */
1355 
1356 #if wxUSE_URL
1357 #   if !wxUSE_PROTOCOL
1358 #        ifdef wxABORT_ON_CONFIG_ERROR
1359 #            error "wxUSE_URL requires wxUSE_PROTOCOL"
1360 #        else
1361 #            undef wxUSE_PROTOCOL
1362 #            define wxUSE_PROTOCOL 1
1363 #        endif
1364 #   endif
1365 #endif /* wxUSE_URL */
1366 
1367 #if wxUSE_PROTOCOL
1368 #   if !wxUSE_SOCKETS
1369 #       if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP
1370 #           ifdef wxABORT_ON_CONFIG_ERROR
1371 #               error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS"
1372 #           else
1373 #               undef wxUSE_SOCKETS
1374 #               define wxUSE_SOCKETS 1
1375 #           endif
1376 #       endif
1377 #   endif
1378 
1379 #   if !wxUSE_STREAMS
1380 #       ifdef wxABORT_ON_CONFIG_ERROR
1381 #           error "wxUSE_PROTOCOL requires wxUSE_STREAMS"
1382 #       else
1383 #           undef wxUSE_STREAMS
1384 #           define wxUSE_STREAMS 1
1385 #       endif
1386 #   endif
1387 #endif /* wxUSE_PROTOCOL */
1388 
1389 /* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */
1390 #if wxUSE_HTML
1391 #   if !wxUSE_FILESYSTEM
1392 #       ifdef wxABORT_ON_CONFIG_ERROR
1393 #           error "wxHTML requires wxFileSystem"
1394 #       else
1395 #           undef wxUSE_FILESYSTEM
1396 #           define wxUSE_FILESYSTEM 1
1397 #       endif
1398 #   endif
1399 #endif /* wxUSE_HTML */
1400 
1401 #if wxUSE_FS_ARCHIVE
1402 #   if !wxUSE_FILESYSTEM
1403 #       ifdef wxABORT_ON_CONFIG_ERROR
1404 #           error "wxArchiveFSHandler requires wxFileSystem"
1405 #       else
1406 #           undef wxUSE_FILESYSTEM
1407 #           define wxUSE_FILESYSTEM 1
1408 #       endif
1409 #   endif
1410 #   if !wxUSE_ARCHIVE_STREAMS
1411 #       ifdef wxABORT_ON_CONFIG_ERROR
1412 #           error "wxArchiveFSHandler requires wxArchive"
1413 #       else
1414 #           undef wxUSE_ARCHIVE_STREAMS
1415 #           define wxUSE_ARCHIVE_STREAMS 1
1416 #       endif
1417 #   endif
1418 #endif /* wxUSE_FS_ARCHIVE */
1419 
1420 #if wxUSE_FILESYSTEM
1421 #   if !wxUSE_STREAMS
1422 #       ifdef wxABORT_ON_CONFIG_ERROR
1423 #           error "wxUSE_FILESYSTEM requires wxUSE_STREAMS"
1424 #       else
1425 #           undef wxUSE_STREAMS
1426 #           define wxUSE_STREAMS 1
1427 #       endif
1428 #   endif
1429 #   if !wxUSE_FILE && !wxUSE_FFILE
1430 #       ifdef wxABORT_ON_CONFIG_ERROR
1431 #           error "wxUSE_FILESYSTEM requires either wxUSE_FILE or wxUSE_FFILE"
1432 #       else
1433 #           undef wxUSE_FILE
1434 #           define wxUSE_FILE 1
1435 #           undef wxUSE_FFILE
1436 #           define wxUSE_FFILE 1
1437 #       endif
1438 #   endif
1439 #endif /* wxUSE_FILESYSTEM */
1440 
1441 #if wxUSE_FS_INET
1442 #   if !wxUSE_PROTOCOL
1443 #       ifdef wxABORT_ON_CONFIG_ERROR
1444 #           error "wxUSE_FS_INET requires wxUSE_PROTOCOL"
1445 #       else
1446 #           undef wxUSE_PROTOCOL
1447 #           define wxUSE_PROTOCOL 1
1448 #       endif
1449 #   endif
1450 #endif /* wxUSE_FS_INET */
1451 
1452 #if wxUSE_STOPWATCH || wxUSE_DATETIME
1453 #    if !wxUSE_LONGLONG
1454 #        ifdef wxABORT_ON_CONFIG_ERROR
1455 #            error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG"
1456 #        else
1457 #            undef wxUSE_LONGLONG
1458 #            define wxUSE_LONGLONG 1
1459 #        endif
1460 #    endif
1461 #endif /* wxUSE_STOPWATCH */
1462 
1463 #if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
1464 #   ifdef wxABORT_ON_CONFIG_ERROR
1465 #       error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
1466 #   else
1467 #       undef wxUSE_TEXTFILE
1468 #       define wxUSE_TEXTFILE 1
1469 #   endif
1470 #endif /* wxUSE_MIMETYPE */
1471 
1472 #if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER
1473 #   ifdef wxABORT_ON_CONFIG_ERROR
1474 #       error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER"
1475 #   else
1476 #       undef wxUSE_TEXTBUFFER
1477 #       define wxUSE_TEXTBUFFER 1
1478 #   endif
1479 #endif /* wxUSE_TEXTFILE */
1480 
1481 #if wxUSE_TEXTFILE && !wxUSE_FILE
1482 #   ifdef wxABORT_ON_CONFIG_ERROR
1483 #       error "wxUSE_TEXTFILE requires wxUSE_FILE"
1484 #   else
1485 #       undef wxUSE_FILE
1486 #       define wxUSE_FILE 1
1487 #   endif
1488 #endif /* wxUSE_TEXTFILE */
1489 
1490 #if !wxUSE_DYNLIB_CLASS
1491 #   if wxUSE_DYNAMIC_LOADER
1492 #       ifdef wxABORT_ON_CONFIG_ERROR
1493 #           error "wxUSE_DYNAMIC_LOADER requires wxUSE_DYNLIB_CLASS."
1494 #       else
1495 #           define wxUSE_DYNLIB_CLASS 1
1496 #       endif
1497 #   endif
1498 #endif  /* wxUSE_DYNLIB_CLASS */
1499 
1500 #if wxUSE_ZIPSTREAM
1501 #   if !wxUSE_ZLIB
1502 #       ifdef wxABORT_ON_CONFIG_ERROR
1503 #           error "wxZip requires wxZlib"
1504 #       else
1505 #           undef wxUSE_ZLIB
1506 #           define wxUSE_ZLIB 1
1507 #       endif
1508 #   endif
1509 #   if !wxUSE_ARCHIVE_STREAMS
1510 #       ifdef wxABORT_ON_CONFIG_ERROR
1511 #           error "wxZip requires wxArchive"
1512 #       else
1513 #           undef wxUSE_ARCHIVE_STREAMS
1514 #           define wxUSE_ARCHIVE_STREAMS 1
1515 #       endif
1516 #   endif
1517 #endif /* wxUSE_ZIPSTREAM */
1518 
1519 #if wxUSE_TARSTREAM
1520 #   if !wxUSE_ARCHIVE_STREAMS
1521 #       ifdef wxABORT_ON_CONFIG_ERROR
1522 #           error "wxTar requires wxArchive"
1523 #       else
1524 #           undef wxUSE_ARCHIVE_STREAMS
1525 #           define wxUSE_ARCHIVE_STREAMS 1
1526 #       endif
1527 #   endif
1528 #endif /* wxUSE_TARSTREAM */
1529 
1530 /*
1531    Section 3b: the tests for the GUI settings only.
1532  */
1533 #if wxUSE_GUI
1534 
1535 #if wxUSE_ACCESSIBILITY && !defined(__WXMSW__)
1536 #   ifdef wxABORT_ON_CONFIG_ERROR
1537 #       error "wxUSE_ACCESSIBILITY is currently only supported under wxMSW"
1538 #   else
1539 #       undef wxUSE_ACCESSIBILITY
1540 #       define wxUSE_ACCESSIBILITY 0
1541 #   endif
1542 #endif /* wxUSE_ACCESSIBILITY */
1543 
1544 #if wxUSE_BUTTON || \
1545     wxUSE_CALENDARCTRL || \
1546     wxUSE_CARET || \
1547     wxUSE_COMBOBOX || \
1548     wxUSE_BMPBUTTON || \
1549     wxUSE_CHECKBOX || \
1550     wxUSE_CHECKLISTBOX || \
1551     wxUSE_CHOICE || \
1552     wxUSE_GAUGE || \
1553     wxUSE_GRID || \
1554     wxUSE_HEADERCTRL || \
1555     wxUSE_LISTBOX || \
1556     wxUSE_LISTCTRL || \
1557     wxUSE_NOTEBOOK || \
1558     wxUSE_RADIOBOX || \
1559     wxUSE_RADIOBTN || \
1560     wxUSE_REARRANGECTRL || \
1561     wxUSE_SCROLLBAR || \
1562     wxUSE_SLIDER || \
1563     wxUSE_SPINBTN || \
1564     wxUSE_SPINCTRL || \
1565     wxUSE_STATBMP || \
1566     wxUSE_STATBOX || \
1567     wxUSE_STATLINE || \
1568     wxUSE_STATTEXT || \
1569     wxUSE_STATUSBAR || \
1570     wxUSE_TEXTCTRL || \
1571     wxUSE_TOOLBAR || \
1572     wxUSE_TREECTRL || \
1573     wxUSE_TREELISTCTRL
1574 #    if !wxUSE_CONTROLS
1575 #        ifdef wxABORT_ON_CONFIG_ERROR
1576 #            error "wxUSE_CONTROLS unset but some controls used"
1577 #        else
1578 #            undef wxUSE_CONTROLS
1579 #            define wxUSE_CONTROLS 1
1580 #        endif
1581 #    endif
1582 #endif /* controls */
1583 
1584 #if wxUSE_ADDREMOVECTRL
1585 #   if !wxUSE_BMPBUTTON
1586 #       ifdef wxABORT_ON_CONFIG_ERROR
1587 #           error "wxUSE_ADDREMOVECTRL requires wxUSE_BMPBUTTON"
1588 #       else
1589 #           undef wxUSE_ADDREMOVECTRL
1590 #           define wxUSE_ADDREMOVECTRL 0
1591 #       endif
1592 #   endif
1593 #endif /* wxUSE_ADDREMOVECTRL */
1594 
1595 #if wxUSE_ANIMATIONCTRL
1596 #   if !wxUSE_STREAMS
1597 #       ifdef wxABORT_ON_CONFIG_ERROR
1598 #           error "wxUSE_ANIMATIONCTRL requires wxUSE_STREAMS"
1599 #       else
1600 #           undef wxUSE_ANIMATIONCTRL
1601 #           define wxUSE_ANIMATIONCTRL 0
1602 #       endif
1603 #   endif
1604 #endif /* wxUSE_ANIMATIONCTRL */
1605 
1606 #if wxUSE_BMPBUTTON
1607 #    if !wxUSE_BUTTON
1608 #        ifdef wxABORT_ON_CONFIG_ERROR
1609 #            error "wxUSE_BMPBUTTON requires wxUSE_BUTTON"
1610 #        else
1611 #            undef wxUSE_BUTTON
1612 #            define wxUSE_BUTTON 1
1613 #        endif
1614 #    endif
1615 #endif /* wxUSE_BMPBUTTON */
1616 
1617 #if wxUSE_COMMANDLINKBUTTON
1618 #    if !wxUSE_BUTTON
1619 #        ifdef wxABORT_ON_CONFIG_ERROR
1620 #            error "wxUSE_COMMANDLINKBUTTON requires wxUSE_BUTTON"
1621 #        else
1622 #            undef wxUSE_BUTTON
1623 #            define wxUSE_BUTTON 1
1624 #        endif
1625 #    endif
1626 #endif /* wxUSE_COMMANDLINKBUTTON */
1627 
1628 /*
1629    wxUSE_BOOKCTRL should be only used if any of the controls deriving from it
1630    are used
1631  */
1632 #ifdef wxUSE_BOOKCTRL
1633 #   ifdef wxABORT_ON_CONFIG_ERROR
1634 #       error "wxUSE_BOOKCTRL is defined automatically, don't define it"
1635 #   else
1636 #       undef wxUSE_BOOKCTRL
1637 #   endif
1638 #endif
1639 
1640 #define wxUSE_BOOKCTRL (wxUSE_AUI || \
1641                         wxUSE_NOTEBOOK || \
1642                         wxUSE_LISTBOOK || \
1643                         wxUSE_CHOICEBOOK || \
1644                         wxUSE_TOOLBOOK || \
1645                         wxUSE_TREEBOOK)
1646 
1647 #if wxUSE_COLLPANE
1648 #   if !wxUSE_BUTTON || !wxUSE_STATLINE
1649 #       ifdef wxABORT_ON_CONFIG_ERROR
1650 #           error "wxUSE_COLLPANE requires wxUSE_BUTTON and wxUSE_STATLINE"
1651 #       else
1652 #           undef wxUSE_COLLPANE
1653 #           define wxUSE_COLLPANE 0
1654 #       endif
1655 #   endif
1656 #endif /* wxUSE_COLLPANE */
1657 
1658 #if wxUSE_LISTBOOK
1659 #   if !wxUSE_LISTCTRL
1660 #       ifdef wxABORT_ON_CONFIG_ERROR
1661 #           error "wxListbook requires wxListCtrl"
1662 #       else
1663 #           undef wxUSE_LISTCTRL
1664 #           define wxUSE_LISTCTRL 1
1665 #       endif
1666 #   endif
1667 #endif /* wxUSE_LISTBOOK */
1668 
1669 #if wxUSE_CHOICEBOOK
1670 #   if !wxUSE_CHOICE
1671 #       ifdef wxABORT_ON_CONFIG_ERROR
1672 #           error "wxChoicebook requires wxChoice"
1673 #       else
1674 #           undef wxUSE_CHOICE
1675 #           define wxUSE_CHOICE 1
1676 #       endif
1677 #   endif
1678 #endif /* wxUSE_CHOICEBOOK */
1679 
1680 #if wxUSE_TOOLBOOK
1681 #   if !wxUSE_TOOLBAR
1682 #       ifdef wxABORT_ON_CONFIG_ERROR
1683 #           error "wxToolbook requires wxToolBar"
1684 #       else
1685 #           undef wxUSE_TOOLBAR
1686 #           define wxUSE_TOOLBAR 1
1687 #       endif
1688 #   endif
1689 #endif /* wxUSE_TOOLBOOK */
1690 
1691 #if !wxUSE_ODCOMBOBOX
1692 #   if wxUSE_BITMAPCOMBOBOX
1693 #       ifdef wxABORT_ON_CONFIG_ERROR
1694 #           error "wxBitmapComboBox requires wxOwnerDrawnComboBox"
1695 #       else
1696 #           undef wxUSE_BITMAPCOMBOBOX
1697 #           define wxUSE_BITMAPCOMBOBOX 0
1698 #       endif
1699 #   endif
1700 #endif /* !wxUSE_ODCOMBOBOX */
1701 
1702 #if !wxUSE_HEADERCTRL
1703 #   if wxUSE_DATAVIEWCTRL || wxUSE_GRID
1704 #       ifdef wxABORT_ON_CONFIG_ERROR
1705 #           error "wxDataViewCtrl and wxGrid require wxHeaderCtrl"
1706 #       else
1707 #           undef wxUSE_HEADERCTRL
1708 #           define wxUSE_HEADERCTRL 1
1709 #       endif
1710 #   endif
1711 #endif /* !wxUSE_HEADERCTRL */
1712 
1713 #if wxUSE_REARRANGECTRL
1714 #   if !wxUSE_CHECKLISTBOX
1715 #       ifdef wxABORT_ON_CONFIG_ERROR
1716 #           error "wxRearrangeCtrl requires wxCheckListBox"
1717 #       else
1718 #           undef wxUSE_REARRANGECTRL
1719 #           define wxUSE_REARRANGECTRL 0
1720 #       endif
1721 #   endif
1722 #endif /* wxUSE_REARRANGECTRL */
1723 
1724 #if wxUSE_RICHMSGDLG
1725 #    if !wxUSE_MSGDLG
1726 #        ifdef wxABORT_ON_CONFIG_ERROR
1727 #            error "wxUSE_RICHMSGDLG requires wxUSE_MSGDLG"
1728 #        else
1729 #            undef wxUSE_MSGDLG
1730 #            define wxUSE_MSGDLG 1
1731 #        endif
1732 #    endif
1733 #endif /* wxUSE_RICHMSGDLG */
1734 
1735 /* don't attempt to use native status bar on the platforms not having it */
1736 #ifndef wxUSE_NATIVE_STATUSBAR
1737 #   define wxUSE_NATIVE_STATUSBAR 0
1738 #elif wxUSE_NATIVE_STATUSBAR
1739 #   if defined(__WXUNIVERSAL__) || !(defined(__WXMSW__) || defined(__WXMAC__))
1740 #       undef wxUSE_NATIVE_STATUSBAR
1741 #       define wxUSE_NATIVE_STATUSBAR 0
1742 #   endif
1743 #endif
1744 
1745 #if wxUSE_ACTIVITYINDICATOR && !wxUSE_GRAPHICS_CONTEXT
1746 #   undef wxUSE_ACTIVITYINDICATOR
1747 #   define wxUSE_ACTIVITYINDICATOR 0
1748 #endif /* wxUSE_ACTIVITYINDICATOR */
1749 
1750 #if wxUSE_GRAPHICS_CONTEXT && !wxUSE_GEOMETRY
1751 #   ifdef wxABORT_ON_CONFIG_ERROR
1752 #       error "wxUSE_GRAPHICS_CONTEXT requires wxUSE_GEOMETRY"
1753 #   else
1754 #       undef wxUSE_GRAPHICS_CONTEXT
1755 #       define wxUSE_GRAPHICS_CONTEXT 0
1756 #   endif
1757 #endif /* wxUSE_GRAPHICS_CONTEXT */
1758 
1759 #if wxUSE_DC_TRANSFORM_MATRIX && !wxUSE_GEOMETRY
1760 #   ifdef wxABORT_ON_CONFIG_ERROR
1761 #       error "wxUSE_DC_TRANSFORM_MATRIX requires wxUSE_GEOMETRY"
1762 #   else
1763 #       undef wxUSE_DC_TRANSFORM_MATRIX
1764 #       define wxUSE_DC_TRANSFORM_MATRIX 0
1765 #   endif
1766 #endif /* wxUSE_DC_TRANSFORM_MATRIX */
1767 
1768 /* generic controls dependencies */
1769 #if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
1770 #   if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG
1771         /* all common controls are needed by these dialogs */
1772 #       if !defined(wxUSE_CHOICE) || \
1773            !defined(wxUSE_TEXTCTRL) || \
1774            !defined(wxUSE_BUTTON) || \
1775            !defined(wxUSE_CHECKBOX) || \
1776            !defined(wxUSE_STATTEXT)
1777 #           ifdef wxABORT_ON_CONFIG_ERROR
1778 #               error "These common controls are needed by common dialogs"
1779 #           else
1780 #               undef wxUSE_CHOICE
1781 #               define wxUSE_CHOICE 1
1782 #               undef wxUSE_TEXTCTRL
1783 #               define wxUSE_TEXTCTRL 1
1784 #               undef wxUSE_BUTTON
1785 #               define wxUSE_BUTTON 1
1786 #               undef wxUSE_CHECKBOX
1787 #               define wxUSE_CHECKBOX 1
1788 #               undef wxUSE_STATTEXT
1789 #               define wxUSE_STATTEXT 1
1790 #           endif
1791 #       endif
1792 #   endif
1793 #endif /* !wxMSW || wxUniv */
1794 
1795 /* generic file dialog depends on (generic) file control */
1796 #if wxUSE_FILEDLG && !wxUSE_FILECTRL && \
1797         (defined(__WXUNIVERSAL__) || defined(__WXGTK__))
1798 #   ifdef wxABORT_ON_CONFIG_ERROR
1799 #       error "Generic wxFileDialog requires wxFileCtrl"
1800 #   else
1801 #       undef wxUSE_FILECTRL
1802 #       define wxUSE_FILECTRL 1
1803 #   endif
1804 #endif /* wxUSE_FILEDLG */
1805 
1806 /* common dependencies */
1807 #if wxUSE_ARTPROVIDER_TANGO
1808 #   if !(wxUSE_STREAMS && wxUSE_IMAGE && wxUSE_LIBPNG)
1809 #       ifdef wxABORT_ON_CONFIG_ERROR
1810 #           error "Tango art provider requires wxImage with streams and PNG support"
1811 #       else
1812 #           undef wxUSE_ARTPROVIDER_TANGO
1813 #           define wxUSE_ARTPROVIDER_TANGO 0
1814 #       endif
1815 #   endif
1816 #endif /* wxUSE_ARTPROVIDER_TANGO */
1817 
1818 #if wxUSE_CALENDARCTRL
1819 #   if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
1820 #       ifdef wxABORT_ON_CONFIG_ERROR
1821 #           error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
1822 #       else
1823 #           undef wxUSE_SPINBTN
1824 #           undef wxUSE_COMBOBOX
1825 #           define wxUSE_SPINBTN 1
1826 #           define wxUSE_COMBOBOX 1
1827 #       endif
1828 #   endif
1829 
1830 #   if !wxUSE_DATETIME
1831 #       ifdef wxABORT_ON_CONFIG_ERROR
1832 #           error "wxCalendarCtrl requires wxUSE_DATETIME"
1833 #       else
1834 #           undef wxUSE_DATETIME
1835 #           define wxUSE_DATETIME 1
1836 #       endif
1837 #   endif
1838 #endif /* wxUSE_CALENDARCTRL */
1839 
1840 #if wxUSE_DATEPICKCTRL
1841     /* Only the generic implementation, not used under MSW and OSX, needs
1842      * wxComboCtrl. */
1843 #   if !wxUSE_COMBOCTRL && (defined(__WXUNIVERSAL__) || \
1844             !(defined(__WXMSW__) || defined(__WXOSX_COCOA__)))
1845 #       ifdef wxABORT_ON_CONFIG_ERROR
1846 #           error "wxDatePickerCtrl requires wxUSE_COMBOCTRL"
1847 #       else
1848 #           undef wxUSE_COMBOCTRL
1849 #           define wxUSE_COMBOCTRL 1
1850 #       endif
1851 #   endif
1852 #endif /* wxUSE_DATEPICKCTRL */
1853 
1854 #if wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL
1855 #   if !wxUSE_DATETIME
1856 #       ifdef wxABORT_ON_CONFIG_ERROR
1857 #           error "wxDatePickerCtrl and wxTimePickerCtrl requires wxUSE_DATETIME"
1858 #       else
1859 #           undef wxUSE_DATETIME
1860 #           define wxUSE_DATETIME 1
1861 #       endif
1862 #   endif
1863 #endif /* wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL */
1864 
1865 #if wxUSE_CHECKLISTBOX
1866 #   if !wxUSE_LISTBOX
1867 #        ifdef wxABORT_ON_CONFIG_ERROR
1868 #            error "wxCheckListBox requires wxListBox"
1869 #        else
1870 #            undef wxUSE_LISTBOX
1871 #            define wxUSE_LISTBOX 1
1872 #        endif
1873 #   endif
1874 #endif /* wxUSE_CHECKLISTBOX */
1875 
1876 #if wxUSE_CHOICEDLG
1877 #   if !wxUSE_LISTBOX
1878 #        ifdef wxABORT_ON_CONFIG_ERROR
1879 #            error "Choice dialogs requires wxListBox"
1880 #        else
1881 #            undef wxUSE_LISTBOX
1882 #            define wxUSE_LISTBOX 1
1883 #        endif
1884 #   endif
1885 #endif /* wxUSE_CHOICEDLG */
1886 
1887 #if wxUSE_FILECTRL
1888 #   if !wxUSE_DATETIME
1889 #       ifdef wxABORT_ON_CONFIG_ERROR
1890 #           error "wxFileCtrl requires wxDateTime"
1891 #       else
1892 #           undef wxUSE_DATETIME
1893 #           define wxUSE_DATETIME 1
1894 #       endif
1895 #   endif
1896 #endif /* wxUSE_FILECTRL */
1897 
1898 #if wxUSE_HELP
1899 #   if !wxUSE_BMPBUTTON
1900 #       ifdef wxABORT_ON_CONFIG_ERROR
1901 #           error "wxUSE_HELP requires wxUSE_BMPBUTTON"
1902 #       else
1903 #           undef wxUSE_BMPBUTTON
1904 #           define wxUSE_BMPBUTTON 1
1905 #       endif
1906 #   endif
1907 
1908 #   if !wxUSE_CHOICEDLG
1909 #       ifdef wxABORT_ON_CONFIG_ERROR
1910 #           error "wxUSE_HELP requires wxUSE_CHOICEDLG"
1911 #       else
1912 #           undef wxUSE_CHOICEDLG
1913 #           define wxUSE_CHOICEDLG 1
1914 #       endif
1915 #   endif
1916 #endif /* wxUSE_HELP */
1917 
1918 #if wxUSE_MS_HTML_HELP
1919     /*
1920         this doesn't make sense for platforms other than MSW but we still
1921         define it in wx/setup_inc.h so don't complain if it happens to be
1922         defined under another platform but just silently fix it.
1923      */
1924 #   ifndef __WXMSW__
1925 #       undef wxUSE_MS_HTML_HELP
1926 #       define wxUSE_MS_HTML_HELP 0
1927 #   endif
1928 #endif /* wxUSE_MS_HTML_HELP */
1929 
1930 #if wxUSE_WXHTML_HELP
1931 #   if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK || !wxUSE_SPINCTRL
1932 #       ifdef wxABORT_ON_CONFIG_ERROR
1933 #           error "Built in help controller can't be compiled"
1934 #       else
1935 #           undef wxUSE_HELP
1936 #           define wxUSE_HELP 1
1937 #           undef wxUSE_HTML
1938 #           define wxUSE_HTML 1
1939 #           undef wxUSE_COMBOBOX
1940 #           define wxUSE_COMBOBOX 1
1941 #           undef wxUSE_NOTEBOOK
1942 #           define wxUSE_NOTEBOOK 1
1943 #           undef wxUSE_SPINCTRL
1944 #           define wxUSE_SPINCTRL 1
1945 #       endif
1946 #   endif
1947 #endif /* wxUSE_WXHTML_HELP */
1948 
1949 #if !wxUSE_IMAGE
1950 /*
1951    The default wxUSE_IMAGE setting is 1, so if it's set to 0 we assume the
1952    user explicitly wants this and disable all other features that require
1953    wxUSE_IMAGE.
1954  */
1955 #   if wxUSE_DRAGIMAGE
1956 #        ifdef wxABORT_ON_CONFIG_ERROR
1957 #            error "wxUSE_DRAGIMAGE requires wxUSE_IMAGE"
1958 #        else
1959 #            undef wxUSE_DRAGIMAGE
1960 #            define wxUSE_DRAGIMAGE 0
1961 #        endif
1962 #   endif
1963 
1964 #   if wxUSE_LIBPNG
1965 #        ifdef wxABORT_ON_CONFIG_ERROR
1966 #            error "wxUSE_LIBPNG requires wxUSE_IMAGE"
1967 #        else
1968 #            undef wxUSE_LIBPNG
1969 #            define wxUSE_LIBPNG 0
1970 #        endif
1971 #   endif
1972 
1973 #   if wxUSE_LIBJPEG
1974 #        ifdef wxABORT_ON_CONFIG_ERROR
1975 #            error "wxUSE_LIBJPEG requires wxUSE_IMAGE"
1976 #        else
1977 #            undef wxUSE_LIBJPEG
1978 #            define wxUSE_LIBJPEG 0
1979 #        endif
1980 #   endif
1981 
1982 #   if wxUSE_LIBTIFF
1983 #        ifdef wxABORT_ON_CONFIG_ERROR
1984 #            error "wxUSE_LIBTIFF requires wxUSE_IMAGE"
1985 #        else
1986 #            undef wxUSE_LIBTIFF
1987 #            define wxUSE_LIBTIFF 0
1988 #        endif
1989 #   endif
1990 
1991 #   if wxUSE_GIF
1992 #        ifdef wxABORT_ON_CONFIG_ERROR
1993 #            error "wxUSE_GIF requires wxUSE_IMAGE"
1994 #        else
1995 #            undef wxUSE_GIF
1996 #            define wxUSE_GIF 0
1997 #        endif
1998 #   endif
1999 
2000 #   if wxUSE_PNM
2001 #        ifdef wxABORT_ON_CONFIG_ERROR
2002 #            error "wxUSE_PNM requires wxUSE_IMAGE"
2003 #        else
2004 #            undef wxUSE_PNM
2005 #            define wxUSE_PNM 0
2006 #        endif
2007 #   endif
2008 
2009 #   if wxUSE_PCX
2010 #        ifdef wxABORT_ON_CONFIG_ERROR
2011 #            error "wxUSE_PCX requires wxUSE_IMAGE"
2012 #        else
2013 #            undef wxUSE_PCX
2014 #            define wxUSE_PCX 0
2015 #        endif
2016 #   endif
2017 
2018 #   if wxUSE_IFF
2019 #        ifdef wxABORT_ON_CONFIG_ERROR
2020 #            error "wxUSE_IFF requires wxUSE_IMAGE"
2021 #        else
2022 #            undef wxUSE_IFF
2023 #            define wxUSE_IFF 0
2024 #        endif
2025 #   endif
2026 
2027 #   if wxUSE_TOOLBAR
2028 #        ifdef wxABORT_ON_CONFIG_ERROR
2029 #            error "wxUSE_TOOLBAR requires wxUSE_IMAGE"
2030 #        else
2031 #            undef wxUSE_TOOLBAR
2032 #            define wxUSE_TOOLBAR 0
2033 #        endif
2034 #   endif
2035 
2036 #   if wxUSE_XPM
2037 #        ifdef wxABORT_ON_CONFIG_ERROR
2038 #            error "wxUSE_XPM requires wxUSE_IMAGE"
2039 #        else
2040 #            undef wxUSE_XPM
2041 #            define wxUSE_XPM 0
2042 #        endif
2043 #   endif
2044 
2045 #endif /* !wxUSE_IMAGE */
2046 
2047 #if wxUSE_DOC_VIEW_ARCHITECTURE
2048 #   if !wxUSE_MENUS
2049 #        ifdef wxABORT_ON_CONFIG_ERROR
2050 #            error "DocView requires wxUSE_MENUS"
2051 #        else
2052 #            undef wxUSE_MENUS
2053 #            define wxUSE_MENUS 1
2054 #        endif
2055 #   endif
2056 
2057 #   if !wxUSE_CHOICEDLG
2058 #        ifdef wxABORT_ON_CONFIG_ERROR
2059 #            error "DocView requires wxUSE_CHOICEDLG"
2060 #        else
2061 #            undef wxUSE_CHOICEDLG
2062 #            define wxUSE_CHOICEDLG 1
2063 #        endif
2064 #   endif
2065 
2066 #   if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM
2067 #        ifdef wxABORT_ON_CONFIG_ERROR
2068 #            error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM"
2069 #        else
2070 #            undef wxUSE_STREAMS
2071 #            define wxUSE_STREAMS 1
2072 #        endif
2073 #   endif
2074 
2075 #   if !wxUSE_FILE_HISTORY
2076 #        ifdef wxABORT_ON_CONFIG_ERROR
2077 #            error "DocView requires wxUSE_FILE_HISTORY"
2078 #        else
2079 #            undef wxUSE_FILE_HISTORY
2080 #            define wxUSE_FILE_HISTORY 1
2081 #        endif
2082 #   endif
2083 #endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
2084 
2085 #if wxUSE_PRINTING_ARCHITECTURE
2086 #   if !wxUSE_COMBOBOX
2087 #       ifdef wxABORT_ON_CONFIG_ERROR
2088 #           error "Print dialog requires wxUSE_COMBOBOX"
2089 #       else
2090 #           undef wxUSE_COMBOBOX
2091 #           define wxUSE_COMBOBOX 1
2092 #       endif
2093 #   endif
2094 #endif /* wxUSE_PRINTING_ARCHITECTURE */
2095 
2096 #if wxUSE_MDI_ARCHITECTURE
2097 #   if !wxUSE_MDI
2098 #        ifdef wxABORT_ON_CONFIG_ERROR
2099 #            error "MDI requires wxUSE_MDI"
2100 #        else
2101 #            undef wxUSE_MDI
2102 #            define wxUSE_MDI 1
2103 #        endif
2104 #   endif
2105 
2106 #   if !wxUSE_DOC_VIEW_ARCHITECTURE
2107 #        ifdef wxABORT_ON_CONFIG_ERROR
2108 #            error "wxUSE_MDI_ARCHITECTURE requires wxUSE_DOC_VIEW_ARCHITECTURE"
2109 #        else
2110 #            undef wxUSE_DOC_VIEW_ARCHITECTURE
2111 #            define wxUSE_DOC_VIEW_ARCHITECTURE 1
2112 #        endif
2113 #   endif
2114 #endif /* wxUSE_MDI_ARCHITECTURE */
2115 
2116 #if !wxUSE_FILEDLG
2117 #   if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
2118 #       ifdef wxABORT_ON_CONFIG_ERROR
2119 #           error "wxUSE_FILEDLG is required by wxUSE_DOC_VIEW_ARCHITECTURE and wxUSE_WXHTML_HELP!"
2120 #       else
2121 #           undef wxUSE_FILEDLG
2122 #           define wxUSE_FILEDLG 1
2123 #       endif
2124 #   endif
2125 #endif /* wxUSE_FILEDLG */
2126 
2127 #if !wxUSE_GAUGE || !wxUSE_BUTTON
2128 #   if wxUSE_PROGRESSDLG
2129 #       ifdef wxABORT_ON_CONFIG_ERROR
2130 #           error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON"
2131 #       else
2132 #           undef wxUSE_GAUGE
2133 #           undef wxUSE_BUTTON
2134 #           define wxUSE_GAUGE 1
2135 #           define wxUSE_BUTTON 1
2136 #       endif
2137 #   endif
2138 #endif /* !wxUSE_GAUGE */
2139 
2140 #if !wxUSE_BUTTON
2141 #   if wxUSE_FONTDLG || \
2142        wxUSE_FILEDLG || \
2143        wxUSE_CHOICEDLG || \
2144        wxUSE_CREDENTIALDLG || \
2145        wxUSE_NUMBERDLG || \
2146        wxUSE_TEXTDLG || \
2147        wxUSE_DIRDLG || \
2148        wxUSE_STARTUP_TIPS || \
2149        wxUSE_WIZARDDLG
2150 #       ifdef wxABORT_ON_CONFIG_ERROR
2151 #           error "Common and generic dialogs require wxUSE_BUTTON"
2152 #       else
2153 #           undef wxUSE_BUTTON
2154 #           define wxUSE_BUTTON 1
2155 #       endif
2156 #   endif
2157 #endif /* !wxUSE_BUTTON */
2158 
2159 #if !wxUSE_TOOLBAR
2160 #   if wxUSE_TOOLBAR_NATIVE
2161 #        ifdef wxABORT_ON_CONFIG_ERROR
2162 #            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1"
2163 #        else
2164 #            undef wxUSE_TOOLBAR_NATIVE
2165 #            define wxUSE_TOOLBAR_NATIVE 0
2166 #        endif
2167 #   endif
2168 #endif
2169 
2170 #if !wxUSE_IMAGLIST
2171 #   if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL || wxUSE_TREELISTCTRL
2172 #       ifdef wxABORT_ON_CONFIG_ERROR
2173 #           error "wxImageList must be compiled as well"
2174 #       else
2175 #           undef wxUSE_IMAGLIST
2176 #           define wxUSE_IMAGLIST 1
2177 #       endif
2178 #   endif
2179 #endif /* !wxUSE_IMAGLIST */
2180 
2181 #if wxUSE_RADIOBOX
2182 #   if !wxUSE_RADIOBTN
2183 #        ifdef wxABORT_ON_CONFIG_ERROR
2184 #            error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN"
2185 #        else
2186 #            undef wxUSE_RADIOBTN
2187 #            define wxUSE_RADIOBTN 1
2188 #        endif
2189 #   endif
2190 #   if !wxUSE_STATBOX
2191 #        ifdef wxABORT_ON_CONFIG_ERROR
2192 #            error "wxUSE_RADIOBOX requires wxUSE_STATBOX"
2193 #        else
2194 #            undef wxUSE_STATBOX
2195 #            define wxUSE_STATBOX 1
2196 #        endif
2197 #   endif
2198 #endif /* wxUSE_RADIOBOX */
2199 
2200 #if wxUSE_LOGWINDOW
2201 #    if !wxUSE_TEXTCTRL
2202 #        ifdef wxABORT_ON_CONFIG_ERROR
2203 #            error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL"
2204 #        else
2205 #            undef wxUSE_TEXTCTRL
2206 #            define wxUSE_TEXTCTRL 1
2207 #        endif
2208 #    endif
2209 #endif /* wxUSE_LOGWINDOW */
2210 
2211 #if wxUSE_LOG_DIALOG
2212 #    if !wxUSE_LISTCTRL || !wxUSE_BUTTON
2213 #        ifdef wxABORT_ON_CONFIG_ERROR
2214 #            error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL and wxUSE_BUTTON"
2215 #        else
2216 #            undef wxUSE_LISTCTRL
2217 #            define wxUSE_LISTCTRL 1
2218 #            undef wxUSE_BUTTON
2219 #            define wxUSE_BUTTON 1
2220 #        endif
2221 #    endif
2222 #endif /* wxUSE_LOG_DIALOG */
2223 
2224 #if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
2225 #   ifdef wxABORT_ON_CONFIG_ERROR
2226 #       error "wxClipboard requires wxDataObject"
2227 #   else
2228 #       undef wxUSE_DATAOBJ
2229 #       define wxUSE_DATAOBJ 1
2230 #   endif
2231 #endif /* wxUSE_CLIPBOARD */
2232 
2233 #if wxUSE_XRC && !wxUSE_XML
2234 #   ifdef wxABORT_ON_CONFIG_ERROR
2235 #       error "wxUSE_XRC requires wxUSE_XML"
2236 #   else
2237 #       undef wxUSE_XRC
2238 #       define wxUSE_XRC 0
2239 #   endif
2240 #endif /* wxUSE_XRC */
2241 
2242 #if wxUSE_SOCKETS && !wxUSE_STOPWATCH
2243 #   ifdef wxABORT_ON_CONFIG_ERROR
2244 #       error "wxUSE_SOCKETS requires wxUSE_STOPWATCH"
2245 #   else
2246 #       undef wxUSE_SOCKETS
2247 #       define wxUSE_SOCKETS 0
2248 #   endif
2249 #endif /* wxUSE_SOCKETS */
2250 
2251 #if wxUSE_SVG && !wxUSE_STREAMS
2252 #   ifdef wxABORT_ON_CONFIG_ERROR
2253 #       error "wxUSE_SVG requires wxUSE_STREAMS"
2254 #   else
2255 #       undef wxUSE_SVG
2256 #       define wxUSE_SVG 0
2257 #   endif
2258 #endif /* wxUSE_SVG */
2259 
2260 #if wxUSE_SVG && !wxUSE_IMAGE
2261 #   ifdef wxABORT_ON_CONFIG_ERROR
2262 #       error "wxUSE_SVG requires wxUSE_IMAGE"
2263 #   else
2264 #       undef wxUSE_SVG
2265 #       define wxUSE_SVG 0
2266 #   endif
2267 #endif /* wxUSE_SVG */
2268 
2269 #if wxUSE_SVG && !wxUSE_LIBPNG
2270 #   ifdef wxABORT_ON_CONFIG_ERROR
2271 #       error "wxUSE_SVG requires wxUSE_LIBPNG"
2272 #   else
2273 #       undef wxUSE_SVG
2274 #       define wxUSE_SVG 0
2275 #   endif
2276 #endif /* wxUSE_SVG */
2277 
2278 #if !wxUSE_MENUS
2279 #   if wxUSE_MENUBAR
2280 #      ifdef wxABORT_ON_CONFIG_ERROR
2281 #          error "wxUSE_MENUBAR requires wxUSE_MENUS"
2282 #      else
2283 #          undef wxUSE_MENUBAR
2284 #          define wxUSE_MENUBAR 0
2285 #      endif
2286 #   endif /* wxUSE_MENUBAR */
2287 
2288 #   if wxUSE_TASKBARICON
2289 #      ifdef wxABORT_ON_CONFIG_ERROR
2290 #          error "wxUSE_TASKBARICON requires wxUSE_MENUS"
2291 #      else
2292 #          undef wxUSE_TASKBARICON
2293 #          define wxUSE_TASKBARICON 0
2294 #      endif
2295 #   endif /* wxUSE_TASKBARICON */
2296 #endif /* !wxUSE_MENUS */
2297 
2298 #if !wxUSE_VARIANT
2299 #   if wxUSE_DATAVIEWCTRL
2300 #       ifdef wxABORT_ON_CONFIG_ERROR
2301 #           error "wxDataViewCtrl requires wxVariant"
2302 #       else
2303 #           undef wxUSE_DATAVIEWCTRL
2304 #           define wxUSE_DATAVIEWCTRL 0
2305 #       endif
2306 #   endif
2307 #endif /* wxUSE_VARIANT */
2308 
2309 #if wxUSE_TREELISTCTRL && !wxUSE_DATAVIEWCTRL
2310 #   ifdef wxABORT_ON_CONFIG_ERROR
2311 #       error "wxUSE_TREELISTCTRL requires wxDataViewCtrl"
2312 #   else
2313 #       undef wxUSE_TREELISTCTRL
2314 #       define wxUSE_TREELISTCTRL 0
2315 #   endif
2316 #endif /* wxUSE_TREELISTCTRL */
2317 
2318 #if wxUSE_WEBVIEW && !(wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_WEBKIT2 || \
2319                        wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_EDGE)
2320 #   ifdef wxABORT_ON_CONFIG_ERROR
2321 #       error "wxUSE_WEBVIEW requires at least one backend"
2322 #   else
2323 #       undef wxUSE_WEBVIEW
2324 #       define wxUSE_WEBVIEW 0
2325 #   endif
2326 #endif /* wxUSE_WEBVIEW && !any web view backend */
2327 
2328 #if wxUSE_WEBREQUEST && !(wxUSE_WEBREQUEST_WINHTTP || wxUSE_WEBREQUEST_URLSESSION || wxUSE_WEBREQUEST_CURL)
2329 #   ifdef wxABORT_ON_CONFIG_ERROR
2330 #       error "wxUSE_WEBREQUEST requires at least one backend"
2331 #   else
2332 #       undef wxUSE_WEBREQUEST
2333 #       define wxUSE_WEBREQUEST 0
2334 #   endif
2335 #endif /* wxUSE_WEBREQUEST && !any web request backend */
2336 
2337 #if wxUSE_PREFERENCES_EDITOR
2338     /*
2339         We can use either a generic implementation, using wxNotebook, or a
2340         native one under wxOSX/Cocoa but then we must be using the native
2341         toolbar.
2342     */
2343 #   if !wxUSE_NOTEBOOK
2344 #       ifdef __WXOSX_COCOA__
2345 #           if !wxUSE_TOOLBAR || !wxOSX_USE_NATIVE_TOOLBAR
2346 #               ifdef wxABORT_ON_CONFIG_ERROR
2347 #                   error "wxUSE_PREFERENCES_EDITOR requires native toolbar in wxOSX"
2348 #               else
2349 #                   undef wxUSE_PREFERENCES_EDITOR
2350 #                   define wxUSE_PREFERENCES_EDITOR 0
2351 #               endif
2352 #           endif
2353 #       else
2354 #           ifdef wxABORT_ON_CONFIG_ERROR
2355 #               error "wxUSE_PREFERENCES_EDITOR requires wxNotebook"
2356 #           else
2357 #               undef wxUSE_PREFERENCES_EDITOR
2358 #               define wxUSE_PREFERENCES_EDITOR 0
2359 #           endif
2360 #       endif
2361 #   endif
2362 #endif /* wxUSE_PREFERENCES_EDITOR */
2363 
2364 #if wxUSE_PRIVATE_FONTS
2365 #   if !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXOSX__)
2366 #       undef wxUSE_PRIVATE_FONTS
2367 #       define wxUSE_PRIVATE_FONTS 0
2368 #   endif
2369 #endif /* wxUSE_PRIVATE_FONTS */
2370 
2371 #if wxUSE_MEDIACTRL
2372 #   if !wxUSE_LONGLONG
2373 #       ifdef wxABORT_ON_CONFIG_ERROR
2374 #           error "wxMediaCtrl requires wxUSE_LONLONG"
2375 #       else
2376 #           undef wxUSE_LONLONG
2377 #           define wxUSE_LONLONG 1
2378 #       endif
2379 #   endif
2380 #endif /* wxUSE_MEDIACTRL */
2381 
2382 #if wxUSE_STC
2383 #   if !wxUSE_STOPWATCH
2384 #       ifdef wxABORT_ON_CONFIG_ERROR
2385 #           error "wxStyledTextCtrl requires wxUSE_STOPWATCH"
2386 #       else
2387 #           undef wxUSE_STC
2388 #           define wxUSE_STC 0
2389 #       endif
2390 #   endif
2391 
2392 #   if !wxUSE_SCROLLBAR
2393 #       ifdef wxABORT_ON_CONFIG_ERROR
2394 #           error "wxStyledTextCtrl requires wxUSE_SCROLLBAR"
2395 #       else
2396 #           undef wxUSE_STC
2397 #           define wxUSE_STC 0
2398 #       endif
2399 #   endif
2400 #endif /* wxUSE_STC */
2401 
2402 #if wxUSE_RICHTEXT
2403 #   if !wxUSE_HTML
2404 #       ifdef wxABORT_ON_CONFIG_ERROR
2405 #           error "wxRichTextCtrl requires wxUSE_HTML"
2406 #       else
2407 #           undef wxUSE_RICHTEXT
2408 #           define wxUSE_RICHTEXT 0
2409 #       endif
2410 #   endif
2411 #   if !wxUSE_LONGLONG
2412 #       ifdef wxABORT_ON_CONFIG_ERROR
2413 #           error "wxRichTextCtrl requires wxUSE_LONLONG"
2414 #       else
2415 #           undef wxUSE_LONLONG
2416 #           define wxUSE_LONLONG 1
2417 #       endif
2418 #   endif
2419 #   if !wxUSE_VARIANT
2420 #       ifdef wxABORT_ON_CONFIG_ERROR
2421 #           error "wxRichTextCtrl requires wxUSE_VARIANT"
2422 #       else
2423 #           undef wxUSE_VARIANT
2424 #           define wxUSE_VARIANT 1
2425 #       endif
2426 #   endif
2427 #endif /* wxUSE_RICHTEXT */
2428 
2429 #if wxUSE_RICHTOOLTIP
2430 #   if !wxUSE_POPUPWIN
2431 #       ifdef wxABORT_ON_CONFIG_ERROR
2432 #           error "wxRichToolTip requires wxUSE_POPUPWIN"
2433 #       else
2434 #           undef wxUSE_POPUPWIN
2435 #           define wxUSE_POPUPWIN 1
2436 #       endif
2437 #   endif
2438 #endif /* wxUSE_RICHTOOLTIP */
2439 
2440 #if wxUSE_PROPGRID
2441 #   if !wxUSE_VARIANT
2442 #       ifdef wxABORT_ON_CONFIG_ERROR
2443 #           error "wxPropertyGrid requires wxUSE_VARIANT"
2444 #       else
2445 #           undef wxUSE_VARIANT
2446 #           define wxUSE_VARIANT 1
2447 #       endif
2448 #   endif
2449 #endif /* wxUSE_PROPGRID */
2450 
2451 #if wxUSE_TIPWINDOW
2452 #   if !wxUSE_POPUPWIN
2453 #       ifdef wxABORT_ON_CONFIG_ERROR
2454 #           error "wxTipWindow requires wxUSE_POPUPWIN"
2455 #       else
2456 #           undef wxUSE_POPUPWIN
2457 #           define wxUSE_POPUPWIN 1
2458 #       endif
2459 #   endif
2460 #endif /* wxUSE_TIPWINDOW */
2461 
2462 #endif /* wxUSE_GUI */
2463 
2464 #endif /* _WX_CHKCONF_H_ */
2465