%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: cppconst.tex
-%% Purpose: Peprocessor symbols
-%% Author:
-%% Modified by:
-%% Created:
+%% Purpose: Preprocessor symbols
+%% Author: Vadim Zeitlin
+%% Created: 2002-08-22
%% RCS-ID: $Id$
-%% Copyright: (c) wxWidgets
+%% Copyright: (c) 2002-2006 wxWidgets
%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\twocolitem{\_\_WINDOWS\_\_}{any Windows, yom may also use \_\_WXMSW\_\_}
\twocolitem{\_\_WIN16\_\_}{Win16 API (not supported since wxWidgets 2.6)}
\twocolitem{\_\_WIN32\_\_}{Win32 API}
-\twocolitem{\_\_WIN95\_\_}{Windows 95 or NT 4.0 and above system (not NT 3.5x)}
\twocolitem{\_\_WXBASE\_\_}{Only wxBase, no GUI features (same as \texttt{wxUSE\_GUI} $== 0$)}
\twocolitem{\_\_WXCOCOA\_\_}{OS X using Cocoa API}
\twocolitem{\_\_WXWINCE\_\_}{Windows CE}
\twocolitem{\_\_UNIX\_LIKE\_\_}{Unix, BeOS or VMS}
\twocolitem{\_\_VMS\_\_}{VMS}
\twocolitem{\_\_WINDOWS\_\_}{any Windows}
+\twocolitem{\_\_WINE\_\_}{Wine}
\end{twocollist}
\end{twocollist}
+\subsection{Feature tests}\label{featuretests}
+
+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 \texttt{wxHAS\_FEATURE}. Unlike
+\texttt{wxUSE\_FEATURE} symbols which are defined by the library user (directly
+in \texttt{setup.h} or by running configure script) and which must be always
+defined as either $0$ or $1$, the \texttt{wxHAS} symbols are only defined if
+the corresponding feature is available and not defined at all otherwise.
+
+Currently the following symbols exist:
+\begin{twocollist}\itemsep=0pt
+\twocolitem{wxHAS\_LARGE\_FILES}{Defined if \helpref{wxFile}{wxfile} supports
+files more than 4GB in size.}
+\twocolitem{wxHAS\_LARGE\_FFILES}{Defined if \helpref{wxFFile}{wxffile}
+supports files more than 4GB in size.}
+\twocolitem{wxHAS\_POWER\_EVENTS}{Defined if
+\helpref{wxPowerEvent}{wxpowerevent} are ever generated on the current platform.}
+\twocolitem{wxHAS\_RADIO\_MENU\_ITEMS}{Defined if the current port supports
+\helpref{radio menu items}{wxmenuappendradioitem}.}
+\twocolitem{wxHAS\_RAW\_KEY\_CODES}{Defined if
+\helpref{raw key codes}{wxkeyeventgetrawkeycode} are supported.}
+\twocolitem{wxHAS\_REGEX\_ADVANCED}{Defined if advanced syntax is available in
+\helpref{wxRegEx}{wxregex}.}
+\twocolitem{wxHAS\_TASK\_BAR\_ICON}{Defined if
+\helpref{wxTaskBarIcon}{wxtaskbaricon} is available on the current platform.}
+\end{twocollist}
+
+
\subsection{Miscellaneous}\label{miscellaneousconst}
\begin{twocollist}\itemsep=0pt
exceptions has been switched off}
\twocolitem{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
+implies that wxUSE\_THREADS is $0$ and also that other (non-wx-based) threading
packages cannot be used neither.}
\end{twocollist}