define __WXOSX__ for wxMac/Cocoa; document it

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2004-10-19 09:02:10 +00:00
parent 036277a790
commit d80fc6df55
2 changed files with 54 additions and 18 deletions

View File

@ -1,7 +1,11 @@
\section{Preprocesser symbols defined by wxWidgets}\label{cppconst}
Here is the list of preprocessor symbols used in the wxWidgets source grouped
by category (and sorted by alphabetical order inside each category).
by category (and sorted by alphabetical order inside each category). All of
these macros except for \texttt{wxUSE\_XXX} variety is defined if the
corresponding condition is true and undefined if it isn't, so they should be
always tested usin \texttt{#ifdef} and not \texttt{#if}.
\subsection{GUI system}\label{guisystemconst}
@ -10,7 +14,8 @@ by category (and sorted by alphabetical order inside each category).
\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}
\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{\_\_WXGTK\_\_}{GTK+}
\twocolitem{\_\_WXGTK12\_\_}{GTK+ 1.2 or higher}
@ -20,11 +25,12 @@ by category (and sorted by alphabetical order inside each category).
\twocolitem{\_\_WXMAC\_\_}{Mac OS all targets}
\twocolitem{\_\_WXMAC\_CLASSIC\_\_}{MacOS for Classic}
\twocolitem{\_\_WXMAC\_CARBON\_\_}{MacOS for Carbon CFM (running under Classic or OSX) or true OS X Mach-O Builds}
\twocolitem{\_\_WXMAC\_OSX\_\_}{MacOS X Mach-O Builds}
\twocolitem{\_\_WXMAC\_OSX\_\_}{MacOS X Carbon Mach-O Builds}
\twocolitem{\_\_WXMGL\_\_}{SciTech Soft MGL (\_\_WXUNIVERSAL\_\_ will be also
defined)}
\twocolitem{\_\_WXMSW\_\_}{Any Windows}
\twocolitem{\_\_WXOS2\_\_}{Identical to \_\_WXPM\_\_}
\twocolitem{\_\_WXOSX\_\_}{Any Mac OS X port (either Carbon or Cocoa)}
\twocolitem{\_\_WXPM\_\_}{OS/2 native Presentation Manager}
\twocolitem{\_\_WXSTUBS\_\_}{Stubbed version ('template' wxWin implementation)}
\twocolitem{\_\_WXXT\_\_}{Xt; mutually exclusive with WX\_MOTIF, not
@ -36,8 +42,27 @@ to one of the symbols above so this should be tested first.}
\twocolitem{\_\_X\_\_}{any X11-based GUI toolkit except GTK+}
\end{twocollist}
In fact, they should better all start with \_\_WX instead of \_\_ only,
so please start any new defines with \_\_WX.
Mac situation is a bit confusing so a few extra words to explain it: there are
2 wx ports to Mac OS. One of them, wxMac, exists in 2 versions: Classic and
Carbon. The Classic version is the only one to work on Mac OS version 8. The
Carbon version may be built either as CFM or Mach-O (binary format, like ELF)
and the former may run under OS 9 while the latter only runs under OS X.
Finally, there is a new Cocoa port which can only be used under OS X. To
summarize:
\begin{itemize}
\item If you want to test for all Mac platforms, classic and OS X, you
should test both \texttt{\_\_WXMAC\_\_} and \texttt{\_\_WXCOCOA\_\_}
\item If you want to test for any GUI Mac port under OS X, use
\texttt{\_\_WXOSX\_\_}
\item If you want to test for any port under Mac OS X, including, for
example, wxGTK and also wxBase, use \texttt{\_\_DARWIN\_\_} (see below)
\end{itemize}
Note to implementors: although some of the symbols above don't start with
\texttt{\_\_WX} prefix, they really should always use it, so please do start
any new symbols with it.
\subsection{Operating systems}\label{osconst}
@ -68,6 +93,7 @@ so please start any new defines with \_\_WX.
\twocolitem{\_\_WINDOWS\_\_}{any Windows}
\end{twocollist}
\subsection{Hardware architectures (CPU)}\label{cpuconst}
Note that not all of these symbols are always defined, it depends on the
@ -79,6 +105,7 @@ compiler used.
\twocolitem{\_\_POWERPC\_\_}{Motorola Power PC}
\end{twocollist}
\subsection{Hardware type}\label{hardwareconst}
Combination of these symbols with GUI symbols describes real hardware
@ -92,6 +119,7 @@ middle sized screen}
\twocolitem{\_\_HANDHELD\_\_}{Small enough but powerful computer}
\end{twocollist}
\subsection{Compilers}\label{compilerconst}
\begin{twocollist}\itemsep=0pt
@ -117,6 +145,7 @@ the compiler version, $1100$ is $11.0$ and $1200$ is OpenWatcom.}
\twocolitem{\_WIN32\_WCE}{Windows CE version}
\end{twocollist}
\subsection{Miscellaneous}\label{miscellaneousconst}
\begin{twocollist}\itemsep=0pt

View File

@ -30,19 +30,26 @@
builds, running under 10.2 + only
*/
#ifdef __WXMAC__
#if defined(__MACH__)
#define __WXMAC_OSX__ 1
#define __WXMAC_CARBON__ 1
#ifdef __WXMAC_XCODE__
#include "wx/mac/carbon/config_xcode.h"
#endif
#else
#if TARGET_CARBON
#define __WXMAC_CARBON__ 1
#else
#define __WXMAC_CLASSIC__ 1
#endif
#endif
# if defined(__MACH__)
# define __WXMAC_OSX__ 1
# define __WXMAC_CARBON__ 1
# ifdef __WXMAC_XCODE__
# include "wx/mac/carbon/config_xcode.h"
# endif
# else
# if TARGET_CARBON
# define __WXMAC_CARBON__ 1
# else
# define __WXMAC_CLASSIC__ 1
# endif
# endif
#endif
/*
__WXOSX__ is a common define to wxMac (Carbon) and wxCocoa ports under OS X.
*/
#if defined(__WXMAC_OSX__) || defined(__WXCOCOA__)
# define __WXOSX__
#endif
/*