1 \section{Preprocesser symbols defined by wxWidgets
}\label{cppconst
}
3 Here is the list of preprocessor symbols used in the wxWidgets source grouped
4 by category (and sorted by alphabetical order inside each category).
6 \subsection{GUI system
}
8 \begin{twocollist
}\itemsep=
0pt
9 \twocolitem{\_\_WINDOWS\_\_}{any Windows, yom may also use
\_\_WXMSW\_\_}
10 \twocolitem{\_\_WIN16\_\_}{Win16 API (not supported since wxWidgets
2.6)
}
11 \twocolitem{\_\_WIN32\_\_}{Win32 API
}
12 \twocolitem{\_\_WIN95\_\_}{Windows
95 or NT
4.0 and above system (not NT
3.5x)
}
13 \twocolitem{\_\_WXBASE\_\_}{Only wxBase, no GUI features
}
14 \twocolitem{\_\_WXWINCE\_\_}{Windows CE
}
15 \twocolitem{\_\_WXGTK\_\_}{GTK+
}
16 \twocolitem{\_\_WXGTK12\_\_}{GTK+
1.2 or higher
}
17 \twocolitem{\_\_WXGTK20\_\_}{GTK+
2.0 or higher
}
18 \twocolitem{\_\_WXMOTIF\_\_}{Motif
}
19 \twocolitem{\_\_WXMOTIF20\_\_}{Motif
2.0 or higher
}
20 \twocolitem{\_\_WXMAC\_\_}{Mac OS whether Classic (Mac OS
8/
9 TARGET
\_CARBON
21 ==
0) or Carbon (including Mac OS X TARGET
\_CARBON ==
1)
}
22 \twocolitem{\_\_WXMGL\_\_}{SciTech Soft MGL (
\_\_WXUNIVERSAL\_\_ will be also
24 \twocolitem{\_\_WXMSW\_\_}{Any Windows
}
25 \twocolitem{\_\_WXOS2\_\_}{Identical to
\_\_WXPM\_\_}
26 \twocolitem{\_\_WXPM\_\_}{OS/
2 native Presentation Manager
}
27 \twocolitem{\_\_WXSTUBS\_\_}{Stubbed version ('template' wxWin implementation)
}
28 \twocolitem{\_\_WXXT\_\_}{Xt; mutually exclusive with WX
\_MOTIF, not
29 implemented in wxWidgets
2.x
}
30 \twocolitem{\_\_WXX11\_\_}{wxX11 (
\_\_WXUNIVERSAL\_\_ will be also defined)
}
31 \twocolitem{\_\_WXWINE\_\_}{WINE (i.e. WIN32 on Unix)
}
32 \twocolitem{\_\_WXUNIVERSAL\_\_}{wxUniversal port, always defined in addition
33 to one of the symbols above so this should be tested first.
}
34 \twocolitem{\_\_X\_\_}{any X11-based GUI toolkit except GTK+
}
37 In fact, they should better all start with
\_\_WX instead of
\_\_ only,
38 so please start any new defines with
\_\_WX.
40 \subsection{Operating systems
}
42 \begin{twocollist
}\itemsep=
0pt
43 \twocolitem{\_\_APPLE\_\_}{any Mac OS version
}
44 \twocolitem{\_\_AIX\_\_}{AIX
}
45 \twocolitem{\_\_BSD\_\_}{Any *BSD system
}
46 \twocolitem{\_\_CYGWIN\_\_}{Cygwin: Unix on Win32
}
47 \twocolitem{\_\_DARWIN\_\_}{Mac OS X using the BSD Unix C library (as opposed to using the Metrowerks MSL C/C++ library)
}
48 \twocolitem{\_\_DATA\_GENERAL\_\_}{DG-UX
}
49 \twocolitem{\_\_DOS\_GENERAL\_\_}{DOS (used with wxMGL only)
}
50 \twocolitem{\_\_FREEBSD\_\_}{FreeBSD
}
51 \twocolitem{\_\_HPUX\_\_}{HP-UX (Unix)
}
52 \twocolitem{\_\_GNU\_\_}{GNU Hurd
}
53 \twocolitem{\_\_LINUX\_\_}{Linux
}
54 \twocolitem{\_\_MACH\_\_}{Mach-O Architecture (Mac OS X only builds)
}
55 \twocolitem{\_\_OSF\_\_}{OSF/
1}
56 \twocolitem{\_\_SGI\_\_}{IRIX
}
57 \twocolitem{\_\_SOLARIS\_\_}{Solaris
}
58 \twocolitem{\_\_SUN\_\_}{Any Sun
}
59 \twocolitem{\_\_SUNOS\_\_}{Sun OS
}
60 \twocolitem{\_\_SVR4\_\_}{SystemV R4
}
61 \twocolitem{\_\_SYSV\_\_}{SystemV generic
}
62 \twocolitem{\_\_ULTRIX\_\_}{Ultrix
}
63 \twocolitem{\_\_UNIX\_\_}{any Unix
}
64 \twocolitem{\_\_UNIX\_LIKE\_\_}{Unix, BeOS or VMS
}
65 \twocolitem{\_\_VMS\_\_}{VMS
}
66 \twocolitem{\_\_WINDOWS\_\_}{any Windows
}
69 \subsection{Hardware architectures
}
71 Note that not all of these symbols are always defined, it depends on the
74 \begin{twocollist
}\itemsep=
0pt
75 \twocolitem{\_\_ALPHA\_\_}{DEC Alpha architecture
}
76 \twocolitem{\_\_INTEL\_\_}{Intel i386 or compatible
}
77 \twocolitem{\_\_POWERPC\_\_}{Motorola Power PC
}
80 \subsection{Compilers
}
82 \begin{twocollist
}\itemsep=
0pt
83 \twocolitem{\_\_BORLANDC\_\_}{Borland C++. The value of the macro corresponds
84 to the compiler version: $
500$ is $
5.0$.
}
85 \twocolitem{\_\_DJGPP\_\_}{DJGPP
}
86 \twocolitem{\_\_DIGITALMARS\_\_}{Digital Mars
}
87 \twocolitem{\_\_GNUG\_\_}{Gnu C++ on any platform, see also
88 \helpref{wxCHECK
\_GCC\_VERSION}{wxcheckgccversion
}}
89 \twocolitem{\_\_GNUWIN32\_\_}{Gnu-Win32 compiler, see also
90 \helpref{wxCHECK
\_W32API\_VERSION}{wxcheckw32apiversion
}}
91 \twocolitem{\_\_MINGW32\_\_}{MinGW
}
92 \twocolitem{\_\_MWERKS\_\_}{CodeWarrior MetroWerks compiler
}
93 \twocolitem{\_\_SUNCC\_\_}{Sun CC
}
94 \twocolitem{\_\_SYMANTECC\_\_}{Symantec C++
}
95 \twocolitem{\_\_VISAGECPP\_\_}{IBM Visual Age (OS/
2)
}
96 \twocolitem{\_\_VISUALC\_\_}{Microsoft Visual C++. The value of this macro
97 corresponds to the compiler version: $
1020$ for $
4.2$ (the first supported
98 version), $
1100$ for $
5.0$, $
1200$ for $
6.0$ and so on
}
99 \twocolitem{\_\_XLC\_\_}{AIX compiler
}
100 \twocolitem{\_\_WATCOMC\_\_}{Watcom C++. The value of this macro corresponds to
101 the compiler version, $
1100$ is $
11.0$ and $
1200$ is OpenWatcom.
}
102 \twocolitem{\_WIN32\_WCE}{Windows CE version
}
105 \subsection{Miscellaneous
}
107 \begin{twocollist
}\itemsep=
0pt
108 \twocolitem{\_\_WXWINDOWS\_\_}{always defined in wxWidgets applications, see
109 also
\helpref{wxCHECK
\_VERSION}{wxcheckversion
}}
110 \twocolitem{\_\_WXDEBUG\_\_}{defined in debug mode, undefined in release mode
}
111 \twocolitem{wxUSE
\_XXX}{if defined as $
1$, feature XXX is active
112 (the symbols of this form are always defined, use \#if and not \#ifdef to test
114 \twocolitem{wxUSE
\_GUI}{this particular feature test macro is defined to $
1$
115 when compiling or using the library with the GUI features activated, if it is
116 defined as $
0$, only wxBase is available.
}
117 \twocolitem{wxUSE
\_BASE}{only used by wxWidgets internally (defined as $
1$ when
118 building wxBase code, either as a standalone library or as part of the
119 monolithic wxWidgets library, defined as $
0$ when building GUI library only)
}