]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/features.h
do platform-specific checks after ensuring that the symbols we use are defined; extra...
[wxWidgets.git] / include / wx / features.h
index 61b46a21999c65020534165efa42e039fbc121c3..9d400205f22a5ca97484ab0336308e002bcf670c 100644 (file)
@@ -1,39 +1,78 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        wx/features.h
-// Purpose:     test macros for the features which might be available in some
-//              wxWindows ports but not others
-// Author:      Vadim Zeitlin
-// Modified by:
-// Created:     18.03.02
-// RCS-ID:      $Id$
-// Copyright:   (c) 2002 Vadim Zeitlin <vadim@wxwindows.org>
-// Licence:     wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
+/**
+*  Name:        wx/features.h
+*  Purpose:     test macros for the features which might be available in some
+*               wxWidgets ports but not others
+*  Author:      Vadim Zeitlin
+*  Modified by: Ryan Norton (Converted to C)
+*  Created:     18.03.02
+*  RCS-ID:      $Id$
+*  Copyright:   (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org>
+*  Licence:     wxWindows licence
+*/
+
+/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
 
 #ifndef _WX_FEATURES_H_
 #define _WX_FEATURES_H_
 
-// radio menu items are currently only implemented in wxGTK and wxMSW
-#if defined(__WXGTK__) || defined(__WXMSW__)
+/*  radio menu items are currently not implemented in wxMotif, use this
+    symbol (kept for compatibility from the time when they were not implemented
+    under other platforms as well) to test for this */
+#if !defined(__WXMOTIF__)
     #define wxHAS_RADIO_MENU_ITEMS
 #else
     #undef wxHAS_RADIO_MENU_ITEMS
 #endif
 
-// the raw keyboard codes are generated under wxGTK and wxMSW only
-#if defined(__WXGTK__) || defined(__WXMSW__)
+/*  the raw keyboard codes are generated under wxGTK and wxMSW only */
+#if defined(__WXGTK__) || defined(__WXMSW__) || defined(__WXMAC__) \
+    || defined(__WXDFB__)
     #define wxHAS_RAW_KEY_CODES
 #else
     #undef wxHAS_RAW_KEY_CODES
 #endif
 
-// taskbar is only implemented in wxMSW and X11 ports
-#if defined(__WXMSW__) || \
-        defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__X11__)
+/*  taskbar is implemented in the major ports */
+#if defined(__WXMSW__) || defined(__WXCOCOA__) \
+    || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) \
+    || defined(__WXMAC_OSX__) || defined(__WXCOCOA__)
     #define wxHAS_TASK_BAR_ICON
 #else
+    #undef wxUSE_TASKBARICON
+    #define wxUSE_TASKBARICON 0
     #undef wxHAS_TASK_BAR_ICON
 #endif
 
-#endif // _WX_FEATURES_H_
+/*  wxIconLocation appeared in the middle of 2.5.0 so it's handy to have a */
+/*  separate define for it */
+#define wxHAS_ICON_LOCATION
+
+/*  same for wxCrashReport */
+#ifdef __WXMSW__
+    #define wxHAS_CRASH_REPORT
+#else
+    #undef wxHAS_CRASH_REPORT
+#endif
+
+/*  wxRE_ADVANCED is not always available, depending on regex library used
+ *  (it's unavailable only if compiling via configure against system library) */
+#ifndef WX_NO_REGEX_ADVANCED
+    #define wxHAS_REGEX_ADVANCED
+#else
+    #undef wxHAS_REGEX_ADVANCED
+#endif
+
+/* Pango-based ports and wxDFB use UTF-8 for text and font encodings
+ * internally and so their fonts can handle any encodings: */
+#if wxUSE_PANGO || defined(__WXDFB__)
+    #define wxHAS_UTF8_FONTS
+#endif
+
+/* This is defined when the underlying toolkit handles tab traversal natively.
+   Otherwise we implement it ourselves in wxControlContainer. */
+#ifdef __WXGTK20__
+    #define wxHAS_NATIVE_TAB_TRAVERSAL
+#endif
+
+#endif /*  _WX_FEATURES_H_ */