// Purpose: Preprocessor symbols
// Author: Vadim Zeitlin
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@itemdef{__WIN16__, Win16 API (not supported since wxWidgets 2.6)}
@itemdef{__WIN32__, Win32 API}
@itemdef{__WXBASE__, Only wxBase, no GUI features (same as @c wxUSE_GUI == 0)}
-@itemdef{__WXCOCOA__, OS X using Cocoa API}
+@itemdef{__WXCOCOA__, OS X using wxCocoa Port}
@itemdef{__WXDFB__, wxUniversal using DirectFB}
@itemdef{__WXWINCE__, Windows CE}
@itemdef{__WXGTK__, GTK+}
@itemdef{__WXGTK24__, GTK+ 2.4 or higher}
@itemdef{__WXGTK26__, GTK+ 2.6 or higher}
@itemdef{__WXGTK210__, GTK+ 2.10 or higher}
+@itemdef{__WXMAC__, old define for Mac OS X}
@itemdef{__WXMOTIF__, Motif}
@itemdef{__WXMOTIF20__, Motif 2.0 or higher}
-@itemdef{__WXMAC__, Mac OS all targets}
-@itemdef{__WXMAC_CLASSIC__, MacOS for Classic}
-@itemdef{__WXMAC_CARBON__, MacOS for Carbon CFM (running under Classic or OSX)
- or true OS X Mach-O Builds}
-@itemdef{__WXMAC_OSX__, MacOS X Carbon Mach-O Builds}
@itemdef{__WXMGL__, SciTech Soft MGL (__WXUNIVERSAL__ will be also defined)}
@itemdef{__WXMSW__, Any Windows}
-@itemdef{__WXOSX__, Any Mac OS X port (either Carbon or Cocoa)}
+@itemdef{__WXOSX__, any OS X}
+@itemdef{__WXOSX_IPHONE__, OS X iPhone}
+@itemdef{__WXOSX_CARBON__, Mac OS X using Carbon}
+@itemdef{__WXOSX_COCOA__, Mac OS X using Cocoa}
+@itemdef{__WXOSX_MAC__, Mac OS X (Carbon or Cocoa)}
+@itemdef{__WXOSX_OR_COCOA__, Any Mac OS X port (wxOSX-Carbon, wxOSX-Cocoa or
+ wxCocoa)}
@itemdef{__WXPALMOS__, PalmOS}
@itemdef{__WXPM__, OS/2 native Presentation Manager}
@itemdef{__WXSTUBS__, Stubbed version ('template' wxWin implementation)}
@itemdef{__X__, any X11-based GUI toolkit except GTK+}
@endDefList
-There are two wxWidgets ports to Mac OS. One of them, wxMac, exists in two 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:
+There are two wxWidgets ports to Mac OS X. One of them, wxOSX is the successor of the
+venerable wxMac, it currently exists in three versions: Carbon and Cocoa for the
+desktop and a very early iPhone port. And there is the Cocoa port named wxCocoa
+which has not been updated very actively since beginning 2008. To summarize:
-@li If you want to test for all Mac platforms, classic and OS X, you
- should test both @c __WXMAC__ and @c __WXCOCOA__.
+@li If you want to test for wxOSX on the desktop, use
+ @c __WXOSX_MAC__.
+@li If you want to test for wxOSX on the iPhone, use
+ @c __WXOSX_IPHONE__.
@li If you want to test for any GUI Mac port under OS X, use
- @c __WXOSX__.
+ @c __WXOSX_OR_COCOA__.
@li If you want to test for any port under Mac OS X, including, for
example, wxGTK and also wxBase, use @c __DARWIN__ (see below).
@itemdef{__LINUX__, Linux}
@itemdef{__MACH__, Mach-O Architecture (Mac OS X only builds)}
@itemdef{__OSF__, OSF/1}
+@itemdef{__QNX__, QNX Neutrino RTOS}
@itemdef{__PALMOS__, PalmOS}
@itemdef{__SGI__, IRIX}
@itemdef{__SOLARIS__, Solaris}
@itemdef{__VMS__, VMS}
@itemdef{__WINDOWS__, any Windows}
@itemdef{__WINE__, Wine}
+@itemdef{_WIN32_WCE, Windows CE version}
@endDefList
to the compiler version: 500 is 5.0.}
@itemdef{__DJGPP__, DJGPP}
@itemdef{__DIGITALMARS__, Digital Mars}
+@itemdef{__EVC4__, Embedded Visual C++ 4 (can be only used for building wxWinCE)}
@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{__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.
+@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
+ 5 to 10, 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
Currently the following symbols exist:
@beginDefList
+@itemdef{wxHAS_3STATE_CHECKBOX, Defined if wxCheckBox supports wxCHK_3STATE
+ flag, i.e. is capable of showing three states and not only the usual two.
+ Currently defined for almost all ports.}
@itemdef{wxHAS_ATOMIC_OPS, Defined if wxAtomicInc() and wxAtomicDec() functions
have an efficient (CPU-specific) implementation. Notice that the functions
themselves are always available but can be prohibitively slow to use when
implemented in a generic way, using a critical section.}
+@itemdef{wxHAS_BITMAPTOGGLEBUTTON, Defined in @c wx/tglbtn.h if
+ wxBitmapToggleButton class is available in addition to wxToggleButton.}
@itemdef{wxHAS_CONFIG_TEMPLATE_RW, Defined if the currently used compiler
supports template Read() and Write() methods in wxConfig.}
-@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_LARGE_FILES, Defined if wxFile supports files more than 4GB in
+ size (notice that you must include @c wx/filefn.h before testing for this
+ symbol).}
+@itemdef{wxHAS_LARGE_FFILES, Defined if wxFFile supports files more than 4GB in
+ size (notice that you must include @c wx/filefn.h before testing for this
+ symbol).}
+@itemdef{wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG, Defined if compiler supports a
+ 64 bit integer type (available as @c wxLongLong_t) and this type is
+ different from long. Notice that, provided wxUSE_LONGLONG is not turned
+ off, some 64 bit type is always available to wxWidgets programs and this
+ symbol only indicates a presence of such primitive type. It is useful to
+ decide whether some function should be overloaded for both
+ <code>long</code> and <code>long long</code> types.}
@itemdef{wxHAS_MULTIPLE_FILEDLG_FILTERS, Defined if wxFileDialog supports multiple ('|'-separated) filters.}
@itemdef{wxHAS_POWER_EVENTS, Defined if wxPowerEvent are ever generated on the current platform.}
@itemdef{wxHAS_RADIO_MENU_ITEMS,
@beginDefList
@itemdef{__WXWINDOWS__,
always defined in wxWidgets applications, see also wxCHECK_VERSION}
-@itemdef{__WXDEBUG__, defined in debug mode, undefined in release mode}
+@itemdef{wxDEBUG_LEVEL, defined as 1 by default, may be pre-defined as 0 before
+ including wxWidgets headers to disable generation of any code at all
+ for the assertion macros, see @ref overview_debugging}
+@itemdef{__WXDEBUG__, defined if wxDEBUG_LEVEL is 1 or more, undefined otherwise}
@itemdef{wxUSE_XXX,
if defined as 1, feature XXX is active, see the
@ref page_wxusedef (the symbols of this form are always defined,
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}
+@itemdef{wxNO_T,
+ may be predefined to prevent the library from defining _T() macro}
@endDefList
*/