- @itemdef{__DJGPP__, DJGPP}
- @itemdef{__DIGITALMARS__, Digital Mars}
- @itemdef{__GNUG__, Gnu C++ on any platform, see also wxCHECK_GCC_VERSION}
- @itemdef{__GNUWIN32__, Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION}
- @itemdef{__MINGW32__, MinGW}
- @itemdef{__MWERKS__, CodeWarrior MetroWerks compiler}
- @itemdef{__SUNCC__, Sun CC, see also wxCHECK_SUNCC_VERSION}
- @itemdef{__SYMANTECC__, Symantec C++}
- @itemdef{__VISAGECPP__, IBM Visual Age (OS/2)}
- @itemdef{__VISUALC__, Microsoft Visual C++, see also wxCHECK_VISUALC_VERSION.
- The value of this macro corresponds to the compiler version:
- $1020$ for $4.2$ (the first supported version), $1100$ for
- $5.0$, $1200$ for $6.0$ and so on. For convenience, the symbols
- __VISUALCn__ are also defined for each major compiler version from
- 5 to 9, i.e. you can use tests such @ifdef __VISUALC7__ to test
- for compiler version being precisely 7.}
- @itemdef{__XLC__, AIX compiler}
- @itemdef{__WATCOMC__, Watcom C++. The value of this macro corresponds to
- the compiler version, $1100$ is $11.0$ and $1200$ is OpenWatcom.}
- @itemdef{_WIN32_WCE, Windows CE version}
- @endDefList
-
-
-
- @section page_cppconst_featuretests Feature tests
-
- Some library features may not be always available even if they were selected
- by the user. To make it possible to check if this is the case, the library
- predefines the symbols in the form @c wxHAS_FEATURE. Unlike
- @c wxUSE_FEATURE symbols which are defined by the library user (directly
- in @c setup.h or by running configure script) and which must be always
- defined as either $0$ or $1$, the @c wxHAS symbols are only defined if
- the corresponding feature is available and not defined at all otherwise.
-
- Currently the following symbols exist:
-
- @beginDefList
- @itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in size.}
- @itemdef{wxHAS_LARGE_FFILES, Defined if wxFFile supports files more than 4GB in size.}
- @itemdef{wxHAS_POWER_EVENTS, Defined if wxPowerEvent are ever generated on the current platform.}
- @itemdef{wxHAS_RADIO_MENU_ITEMS,
- Defined if the current port supports radio menu items (see wxMenu::AppendRadioItem).}
- @itemdef{wxHAS_RAW_KEY_CODES, Defined if raw key codes (see wxKeyEvent::GetRawKeyCode are supported.}
- @itemdef{wxHAS_REGEX_ADVANCED, Defined if advanced syntax is available in wxRegEx.}
- @itemdef{wxHAS_TASK_BAR_ICON, Defined if wxTaskBarIcon is available on the current platform.}
- @endDefList
-
-
-
- @section page_cppconst_miscellaneous Miscellaneous
-
- @beginDefList
- @itemdef{__WXWINDOWS__,
- always defined in wxWidgets applications, see also wxCHECK_VERSION}
- @itemdef{__WXDEBUG__, defined in debug mode, undefined in release mode}
- @itemdef{wxUSE_XXX,
- if defined as $1$, feature XXX is active, see the
- @ref page_wxusedef (the symbols of this form are always defined,
- use @if and not @ifdef to test for them)}
- @itemdef{WX_PRECOMP,
- is defined if precompiled headers (PCH) are in use. In
- this case, @c wx/wxprec.h includes @c wx/wx.h which, in turn,
- includes a number of wxWidgets headers thus making it unnecessary to include
- them explicitly. However if this is not defined, you do need to include them
- and so the usual idiom which allows to support both cases is to first include
- @c wx/wxprec.h} and then, inside @ifndef WX_PRECOMP, individual
- headers you need.}
- @itemdef{_UNICODE and UNICODE, both are defined if wxUSE_UNICODE is set to $1$}
- @itemdef{wxUSE_GUI,
- this particular feature test macro is defined to $1$
- when compiling or using the library with the GUI features activated,
- if it is defined as $0$, only wxBase is available.}
- @itemdef{wxUSE_BASE,
- only used by wxWidgets internally (defined as $1$ when
- building wxBase code, either as a standalone library or as part of the
- monolithic wxWidgets library, defined as $0$ when building GUI library only)}
- @itemdef{wxNO_RTTI, is defined if the compiler RTTI support has been switched off}
- @itemdef{wxNO_EXCEPTIONS,
- is defined if the compiler support for C++ exceptions has been switched off}
- @itemdef{wxNO_THREADS,
- if this macro is defined, the compilation options
- don't include compiler flags needed for multithreaded code generation. This
- implies that wxUSE_THREADS is $0$ and also that other (non-wx-based) threading
- packages cannot be used neither.}
- @itemdef{WXMAKINGDLL_XXX,
- used internally and defined when building the
- library @c XXX as a DLL; when a monolithic wxWidgets build is used only a
- single @c WXMAKINGDLL symbol is defined}
- @itemdef{WXUSINGDLL,
- defined when compiling code which uses wxWidgets as a DLL/shared library}
- @itemdef{WXBUILDING,
- defined when building wxWidgets itself, whether as a static or shared library}
- @endDefList
+@itemdef{__DJGPP__, DJGPP}
+@itemdef{__DIGITALMARS__, Digital Mars}
+@itemdef{__GNUG__, Gnu C++ on any platform, see also wxCHECK_GCC_VERSION}
+@itemdef{__GNUWIN32__, Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION}
+@itemdef{__MINGW32__, MinGW}
+@itemdef{__MWERKS__, CodeWarrior MetroWerks compiler}
+@itemdef{__SUNCC__, Sun CC, see also wxCHECK_SUNCC_VERSION}
+@itemdef{__SYMANTECC__, Symantec C++}
+@itemdef{__VISAGECPP__, IBM Visual Age (OS/2)}
+@itemdef{__VISUALC__, Microsoft Visual C++, see also wxCHECK_VISUALC_VERSION.
+ The value of this macro corresponds to the compiler version:
+ @c 1020 for @c 4.2 (the first supported version), @c 1100 for
+ @c 5.0, @c 1200 for @c 6.0 and so on. For convenience, the symbols
+ __VISUALCn__ are also defined for each major compiler version from
+ 5 to 9, i.e. you can use tests such @ifdef_ __VISUALC7__ to test
+ for compiler version being precisely 7.}
+@itemdef{__XLC__, AIX compiler}
+@itemdef{__WATCOMC__, Watcom C++. The value of this macro corresponds to
+ the compiler version, @c 1100 is @c 11.0 and @c 1200 is OpenWatcom.}
+@itemdef{_WIN32_WCE, Windows CE version}
+@endDefList
+
+
+
+@section page_cppconst_featuretests Feature tests
+
+Some library features may not be always available even if they were selected
+by the user. To make it possible to check if this is the case, the library
+predefines the symbols in the form @c wxHAS_FEATURE. Unlike
+@c wxUSE_FEATURE symbols which are defined by the library user (directly
+in @c setup.h or by running configure script) and which must be always
+defined as either $0$ or $1$, the @c wxHAS symbols are only defined if
+the corresponding feature is available and not defined at all otherwise.
+
+Currently the following symbols exist:
+
+@beginDefList
+@itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in size.}
+@itemdef{wxHAS_LARGE_FFILES, Defined if wxFFile supports files more than 4GB in size.}
+@itemdef{wxHAS_POWER_EVENTS, Defined if wxPowerEvent are ever generated on the current platform.}
+@itemdef{wxHAS_RADIO_MENU_ITEMS,
+ Defined if the current port supports radio menu items (see wxMenu::AppendRadioItem).}
+@itemdef{wxHAS_RAW_KEY_CODES, Defined if raw key codes (see wxKeyEvent::GetRawKeyCode are supported.}
+@itemdef{wxHAS_REGEX_ADVANCED, Defined if advanced syntax is available in wxRegEx.}
+@itemdef{wxHAS_TASK_BAR_ICON, Defined if wxTaskBarIcon is available on the current platform.}
+@endDefList
+
+
+
+@section page_cppconst_msvc_setup_h Libraries selection for MSVC setup.h
+
+Microsoft Visual C++ users may use the special @c wx/setup.h file for this
+compiler in @c include/msvc subdirectory. This file implicitly links in all the
+wxWidgets libraries using MSVC-specific pragmas which usually is much more
+convenient than manually specifying the libraries list in all of the project
+configurations. However sometimes linking with all the libraries is not
+desirable, for example because some of them were not built and this is where
+the symbols in this section can be helpful: defining them allows to not link
+with the corresponding library. The following symbols are honoured:
+ - wxNO_ADV_LIB
+ - wxNO_AUI_LIB
+ - wxNO_HTML_LIB
+ - wxNO_MEDIA_LIB
+ - wxNO_NET_LIB
+ - wxNO_QA_LIB
+ - wxNO_RICHTEXT_LIB
+ - wxNO_XML_LIB
+ - wxNO_REGEX_LIB
+ - wxNO_EXPAT_LIB
+ - wxNO_JPEG_LIB
+ - wxNO_PNG_LIB
+ - wxNO_TIFF_LIB
+ - wxNO_ZLIB_LIB
+
+Notice that the base library is always included and the core is always included
+for the GUI applications (i.e. those which don't define @c wxUSE_GUI as 0).
+
+
+@section page_cppconst_miscellaneous Miscellaneous
+
+@beginDefList
+@itemdef{__WXWINDOWS__,
+ always defined in wxWidgets applications, see also wxCHECK_VERSION}
+@itemdef{__WXDEBUG__, defined in debug mode, undefined in release mode}
+@itemdef{wxUSE_XXX,
+ if defined as $1$, feature XXX is active, see the
+ @ref page_wxusedef (the symbols of this form are always defined,
+ use @if_ and not @ifdef_ to test for them)}
+@itemdef{WX_PRECOMP,
+ is defined if precompiled headers (PCH) are in use. In
+ this case, @c wx/wxprec.h includes @c wx/wx.h which, in turn,
+ includes a number of wxWidgets headers thus making it unnecessary to include
+ them explicitly. However if this is not defined, you do need to include them
+ and so the usual idiom which allows to support both cases is to first include
+ @c wx/wxprec.h} and then, inside @ifndef_ WX_PRECOMP, individual
+ headers you need.}
+@itemdef{_UNICODE and UNICODE, both are defined if wxUSE_UNICODE is set to @c 1}
+@itemdef{wxUSE_GUI,
+ this particular feature test macro is defined to $1$
+ when compiling or using the library with the GUI features activated,
+ if it is defined as @c 0, only wxBase is available.}
+@itemdef{wxUSE_BASE,
+ only used by wxWidgets internally (defined as $1$ when
+ building wxBase code, either as a standalone library or as part of the
+ monolithic wxWidgets library, defined as $0$ when building GUI library only)}
+@itemdef{wxNO_RTTI, is defined if the compiler RTTI support has been switched off}
+@itemdef{wxNO_EXCEPTIONS,
+ is defined if the compiler support for C++ exceptions has been switched off}
+@itemdef{wxNO_THREADS,
+ if this macro is defined, the compilation options
+ don't include compiler flags needed for multithreaded code generation. This
+ implies that wxUSE_THREADS is $0$ and also that other (non-wx-based) threading
+ packages cannot be used neither.}
+@itemdef{WXMAKINGDLL_XXX,
+ used internally and defined when building the
+ library @c XXX as a DLL; when a monolithic wxWidgets build is used only a
+ single @c WXMAKINGDLL symbol is defined}
+@itemdef{WXUSINGDLL,
+ defined when compiling code which uses wxWidgets as a DLL/shared library}
+@itemdef{WXBUILDING,
+ defined when building wxWidgets itself, whether as a static or shared library}
+@endDefList