From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Thu, 19 Jul 2007 01:02:28 +0000 (+0000)
Subject: added wxUSE_TASKBARICON; corrected condition for generating the taskbar sample makefi... 
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4f167b46b42b81f8f646e594057535f05b05027f

added wxUSE_TASKBARICON; corrected condition for generating the taskbar sample makefile in configure

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/configure b/configure
index daa5498652..dec4e288dc 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Id: configure.in 47513 2007-07-16 21:20:54Z VZ .
+# From configure.in Id: configure.in 47544 2007-07-18 12:58:28Z VZ .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
 #
@@ -1800,6 +1800,7 @@ Optional Features:
   --enable-stattext       use wxStaticText class
   --enable-statusbar      use wxStatusBar class
   --enable-tabdialog      use wxTabControl class
+  --enable-taskbaricon    use wxTaskBarIcon class
   --enable-textctrl       use wxTextCtrl class
   --enable-togglebtn      use wxToggleButton class
   --enable-toolbar        use wxToolBar class
@@ -13152,6 +13153,61 @@ fi
 echo "${ECHO_T}$result" >&6; }
 
 
+          enablestring=
+          defaultval=$wxUSE_ALL_FEATURES
+          if test -z "$defaultval"; then
+              if test x"$enablestring" = xdisable; then
+                  defaultval=yes
+              else
+                  defaultval=no
+              fi
+          fi
+
+          { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-taskbaricon" >&5
+echo $ECHO_N "checking for --${enablestring:-enable}-taskbaricon... $ECHO_C" >&6; }
+          no_cache=0
+          # Check whether --enable-taskbaricon was given.
+if test "${enable_taskbaricon+set}" = set; then
+  enableval=$enable_taskbaricon;
+                          if test "$enableval" = yes; then
+                            wx_cv_use_taskbaricon='wxUSE_TASKBARICON=yes'
+                          else
+                            wx_cv_use_taskbaricon='wxUSE_TASKBARICON=no'
+                          fi
+
+else
+
+                          LINE=`grep "^wxUSE_TASKBARICON=" ${wx_arg_cache_file}`
+                          if test "x$LINE" != x ; then
+                            eval "DEFAULT_$LINE"
+                          else
+                            no_cache=1
+                          fi
+
+                          wx_cv_use_taskbaricon='wxUSE_TASKBARICON=${'DEFAULT_wxUSE_TASKBARICON":-$defaultval}"
+
+fi
+
+
+          eval "$wx_cv_use_taskbaricon"
+          if test "$no_cache" != 1; then
+            echo $wx_cv_use_taskbaricon >> ${wx_arg_cache_file}.tmp
+          fi
+
+          if test x"$enablestring" = xdisable; then
+            if test $wxUSE_TASKBARICON = yes; then
+              result=no
+            else
+              result=yes
+            fi
+          else
+            result=$wxUSE_TASKBARICON
+          fi
+
+          { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+
+
           enablestring=
           defaultval=$wxUSE_ALL_FEATURES
           if test -z "$defaultval"; then
@@ -48477,10 +48533,14 @@ if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
 #define wxUSE_SYSTEM_OPTIONS 1
 _ACEOF
 
-    if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
-        "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
-    fi
+fi
+
+if test "$wxUSE_TASKBARICON" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define wxUSE_TASKBARICON 1
+_ACEOF
+
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
 fi
 
 
diff --git a/configure.in b/configure.in
index 2327e25613..5f00378d64 100644
--- a/configure.in
+++ b/configure.in
@@ -829,6 +829,7 @@ WX_ARG_FEATURE(statline,    [  --enable-statline       use wxStaticLine class],
 WX_ARG_FEATURE(stattext,    [  --enable-stattext       use wxStaticText class], wxUSE_STATTEXT)
 WX_ARG_FEATURE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
 WX_ARG_FEATURE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TAB_DIALOG)
+WX_ARG_FEATURE(taskbaricon, [  --enable-taskbaricon    use wxTaskBarIcon class], wxUSE_TASKBARICON)
 WX_ARG_FEATURE(textctrl,    [  --enable-textctrl       use wxTextCtrl class], wxUSE_TEXTCTRL)
 WX_ARG_FEATURE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
 WX_ARG_FEATURE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
@@ -6891,10 +6892,11 @@ fi
 
 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
-    if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
-        "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
-        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
-    fi
+fi
+
+if test "$wxUSE_TASKBARICON" = "yes"; then
+    AC_DEFINE(wxUSE_TASKBARICON)
+    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
 fi
 
 
diff --git a/docs/latex/wx/wxusedef.tex b/docs/latex/wx/wxusedef.tex
index 9c452dd6fc..ff732f2c49 100644
--- a/docs/latex/wx/wxusedef.tex
+++ b/docs/latex/wx/wxusedef.tex
@@ -1,200 +1,201 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Name:        wxusedef.tex
-%% Purpose:     wxUSE preprocessor symbols
-%% Author:      Tim Stahlhut
-%% Created:     2007-07-15
-%% RCS-ID:      $Id: $
-%% Copyright:   (c) 2007 wxWidgets
-%% License:     wxWindows license
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\section{wxUSE Preprocessor symbols defined by wxWidgets}\label{wxusedef}
-
-This section documents the wxUSE preprocessor symbols used in the wxWidgets
-source, grouped by category (and sorted by alphabetical order inside each
-category). These symbols are always defined and whether the given feature is
-active or not depends on their value: if defined as $1$, feature is active,
-otherwise it is disabled. Because of this these symbols should be always tested
-using \texttt{#if} and not \texttt{#ifdef}.
-
-\subsection{Generic wxUSE preprocessor symbols}\label{\helpref{wxusedefmulti}{wxusedefmulti}}
-
-\begin{twocollist}\itemsep=0pt
-\twocolitem{wxUSE\_ABOUTDLG}{Use \helpref{wxAboutDialogInfo}{wxaboutdialoginfo} class.}
-\twocolitem{wxUSE\_ACCEL}{Use \helpref{wxAcceleratorTable}{wxacceleratortable}/Entry classes and support for them in \helpref{wxMenu}{wxmenu}(Bar).}
-\twocolitem{wxUSE\_ANIMATIONCTRL}{Use \helpref{wxAnimationCtrl}{wxanimationctrl} class.}
-\twocolitem{wxUSE\_AUI}{Use AUI (dockable windows) library.}
-\twocolitem{wxUSE\_BASE64}{Enables Base64 support.}
-\twocolitem{wxUSE\_BITMAPCOMBOBOX}{}
-\twocolitem{wxUSE\_BMPBUTTON}{Use \helpref{wxBitmapButton}{wxbitmapbutton} class.}
-\twocolitem{wxUSE\_BUSYINFO}{Use \helpref{wxBusyInfo}{wxbusyinfo} class.}
-\twocolitem{wxUSE\_BUTTON}{Use \helpref{wxButton}{wxbutton} class.}
-\twocolitem{wxUSE\_CALENDARCTRL}{Use \helpref{wxCalendarCtrl}{wxcalendarctrl} class.}
-\twocolitem{wxUSE\_CARET}{Use \helpref{wxCaret}{wxcaret} class.}
-\twocolitem{wxUSE\_CHECKBOX}{Use \helpref{wxCheckBox}{wxcheckbox} class.}
-\twocolitem{wxUSE\_CHECKLISTBOX}{Use \helpref{wxCheckListBox}{wxchecklistbox} class.}
-\twocolitem{wxUSE\_CHOICE}{Use \helpref{wxChoice}{wxchoice} class.}
-\twocolitem{wxUSE\_CHOICEBOOK}{Use \helpref{wxChoicebook}{wxchoicebook} class.}
-\twocolitem{wxUSE\_CHOICEDLG}{Use \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} or \helpref{wxMultiChoiceDialog}{wxmultichoicedialog} classes.}
-\twocolitem{wxUSE\_CLIPBOARD}{Use \helpref{wxClipboard}{wxclipboard} class.}
-\twocolitem{wxUSE\_COLLPANE}{Use \helpref{wxCollapsiblePane}{wxcollapsiblepane} class.}
-\twocolitem{wxUSE\_COLOURDLG}{Use \helpref{wxColourDialog}{wxcolourdialog} class.}
-\twocolitem{wxUSE\_COLOURPICKERCTRL}{Use \helpref{wxColourPickerCtrl}{wxcolourpickerctrl} class.}
-\twocolitem{wxUSE\_COMBOBOX}{Use \helpref{wxComboBox}{wxcombobox} class.}
-\twocolitem{wxUSE\_COMBOCTRL}{Use \helpref{wxComboCtrl}{wxcomboctrl} class.}
-\twocolitem{wxUSE\_CONFIG}{Use \helpref{wxConfig}{wxconfigbase} and related classes.}
-\twocolitem{wxUSE\_CONSTRAINTS}{Use \helpref{wxLayoutConstraints}{wxlayoutconstraints}}
-\twocolitem{wxUSE\_CRASHREPORT}{Use wxCrashReport class.}
-\twocolitem{wxUSE\_DATAOBJ}{Use \helpref{wxDataObject}{wxdataobject} and related classes.}
-\twocolitem{wxUSE\_DATAVIEWCTRL}{Use \helpref{wxDataViewCtrl}{wxdataviewctrl} class.}
-\twocolitem{wxUSE\_DATEPICKCTRL}{Use \helpref{wxDatePickerCtrl}{wxdatepickerctrl} class.}
-\twocolitem{wxUSE\_DATETIME}{Use \helpref{wxDateTime}{wxdatetime} and related classes.}
-\twocolitem{wxUSE\_DEBUGREPORT}{Use \helpref{wxDebugReport}{wxdebugreport} class.}
-\twocolitem{wxUSE\_DIRDLG}{Use \helpref{wxDirDialog}{wxdirdialog} class.}
-\twocolitem{wxUSE\_DIRPICKERCTRL}{Use \helpref{wxDirPickerCtrl}{wxdirpickerctrl} class.}
-\twocolitem{wxUSE\_DISPLAY}{Use \helpref{wxDisplay}{wxdisplay} and related classes.}
-\twocolitem{wxUSE\_DOC\_VIEW\_ARCHITECTURE}{Use \helpref{wxDocument}{wxdocument} and related classes.}
-\twocolitem{wxUSE\_DRAGIMAGE}{Use \helpref{wxDragImage}{wxdragimage} class.}
-\twocolitem{wxUSE\_EDITABLELISTBOX}{Use \helpref{wxEditableListBox}{wxeditablelistbox} class.}
-\twocolitem{wxUSE\_EXCEPTIONS}{}
-\twocolitem{wxUSE\_FFILE}{Use \helpref{wxFFile}{wxffile} class.}
-\twocolitem{wxUSE\_FILE}{Use \helpref{wxFile}{wxfile} class.}
-\twocolitem{wxUSE\_FILEDLG}{Use \helpref{wxFileDialog}{wxfiledialog} class.}
-\twocolitem{wxUSE\_FILEPICKERCTRL}{Use \helpref{wxFilePickerCtrl}{wxfilepickerctrl} class.}
-\twocolitem{wxUSE\_FILESYSTEM}{Use \helpref{wxFileSystem}{wxfilesystem} and related classes.}
-\twocolitem{wxUSE\_FINDREPLDLG}{Use \helpref{wxFindReplaceDialog}{wxfindreplacedialog} class.}
-\twocolitem{wxUSE\_FONTDLG}{Use \helpref{wxFontDialog}{wxfontdialog} class.}
-\twocolitem{wxUSE\_FONTMAP}{Use \helpref{wxFontMapper}{wxfontmapper} class.}
-\twocolitem{wxUSE\_FONTPICKERCTRL}{Use \helpref{wxFontPickerCtrl}{wxfontpickerctrl} class.}
-\twocolitem{wxUSE\_FSVOLUME}{Use wxFSVolume class.}
-\twocolitem{wxUSE\_GAUGE}{Use \helpref{wxGauge}{wxgauge} class.}
-\twocolitem{wxUSE\_GEOMETRY}{Use Common Geometry Classes}
-\twocolitem{wxUSE\_GIF}{}
-\twocolitem{wxUSE\_GLCANVAS}{Enables OpenGL support.}
-\twocolitem{wxUSE\_GRID}{Use \helpref{wxGrid}{wxgrid} and related classes.}
-\twocolitem{wxUSE\_GUI}{Use the GUI classes; if set to $0$ only non-GUI classes
-are available.}
-\twocolitem{wxUSE\_HELP}{Use \helpref{wxHelpController}{wxhelpcontroller} and related classes.}
-\twocolitem{wxUSE\_HOTKEY}{}
-\twocolitem{wxUSE\_HTML}{Use \helpref{wxHtmlWindow}{wxhtmlwindow} and related classes.}
-\twocolitem{wxUSE\_HYPERLINKCTRL}{Use \helpref{wxHyperlinkCtrl}{wxhyperlinkctrl}}
-\twocolitem{wxUSE\_IFF}{Enables the \helpref{wxImage}{wximage} handler for Amiga IFF images.}
-\twocolitem{wxUSE\_IMAGE}{Use \helpref{wxImage}{wximage} and related classes.}
-\twocolitem{wxUSE\_IMAGLIST}{Use \helpref{wxImageList}{wximagelist} class.}
-\twocolitem{wxUSE\_INTL}{Use \helpref{wxLocale}{wxlocale} and related classes.}
-\twocolitem{wxUSE\_IOSTREAMH}{Use header <iostream.h> instead of <iostream>.}
-\twocolitem{wxUSE\_IPC}{Use Interprocess communication classes.}
-\twocolitem{wxUSE\_JOYSTICK}{Use \helpref{wxJoystick}{wxjoystick} class.}
-\twocolitem{wxUSE\_LIBJPEG}{Enables JPEG format support (requires libjpeg).}
-\twocolitem{wxUSE\_LIBPNG}{Enables PNG format support (requires libpng). 
-Also requires wxUSE\_ZLIB.}
-\twocolitem{wxUSE\_LIBTIFF}{Enables TIFF format support (requires libtiff).}
-\twocolitem{wxUSE\_LISTBOOK}{Use \helpref{wxListbook}{wxlistbook} class.}
-\twocolitem{wxUSE\_LISTBOX}{Use \helpref{wxListBox}{wxlistbox} class.}
-\twocolitem{wxUSE\_LISTCTRL}{Use \helpref{wxListCtrl}{wxlistctrl} class.}
-\twocolitem{wxUSE\_LOG}{Use \helpref{wxLog}{wxlog} and related classes.}
-\twocolitem{wxUSE\_LOGGUI}{Use \helpref{wxLogGui}{wxloggui} class.}
-\twocolitem{wxUSE\_LOGWINDOW}{Use wxLogFrame class.}
-\twocolitem{wxUSE\_LONGLONG}{Use \helpref{wxLongLong}{wxlonglong} class.}
-\twocolitem{wxUSE\_MDI}{}
-\twocolitem{wxUSE\_MDI\_ARCHITECTURE}{}
-\twocolitem{wxUSE\_MEDIACTRL}{Use \helpref{wxMediaCtrl}{wxmediactrl}.}
-\twocolitem{wxUSE\_MENUS}{Use \helpref{wxMenu}{wxmenu} and related classes.}
-\twocolitem{wxUSE\_METAFILE}{Use \helpref{wxMetaFile}{wxmetafile} and related classes.}
-\twocolitem{wxUSE\_MIMETYPE}{Use \helpref{wxFileType}{wxfiletype} class.}
-\twocolitem{wxUSE\_MINIFRAME}{Use \helpref{wxMiniFrame}{wxminiframe} class.}
-\twocolitem{wxUSE\_MOUSEWHEEL}{}
-\twocolitem{wxUSE\_MSGDLG}{Use wxMessageOutput class.}
-\twocolitem{wxUSE\_NOTEBOOK}{Use \helpref{wxNotebook}{wxnotebook} and related classes.}
-\twocolitem{wxUSE\_NUMBERDLG}{Use wxNumberEntryDialog class.}
-\twocolitem{wxUSE\_ODBC}{Use ODBC classes.}
-\twocolitem{wxUSE\_ODCOMBOBOX}{Use \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox} class.}
-\twocolitem{wxUSE\_OWNER\_DRAWN}{Use interface for owner-drawn GUI elements.}
-\twocolitem{wxUSE\_PALETTE}{Use \helpref{wxPalette}{wxpalette} and related classes.}
-\twocolitem{wxUSE\_PCX}{Enables \helpref{wxImage}{wximage} PCX handler.}
-\twocolitem{wxUSE\_PNM}{Enables \helpref{wxImage}{wximage} PNM handler.}
-\twocolitem{wxUSE\_POPUPWIN}{Use wxPopupWindow class.}
-\twocolitem{wxUSE\_POSTSCRIPT}{Use wxPostScriptPrinter class.}
-\twocolitem{wxUSE\_PRINTING\_ARCHITECTURE}{Enable printer classes.}
-\twocolitem{wxUSE\_PROGRESSDLG}{Enables progress dialog classes.}
-\twocolitem{wxUSE\_PROTOCOL}{Use \helpref{wxProtocol}{wxprotocol} class.}
-\twocolitem{wxUSE\_RADIOBOX}{Use \helpref{wxRadioBox}{wxradiobox} class.}
-\twocolitem{wxUSE\_RADIOBTN}{Use \helpref{wxRadioButton}{wxradiobutton} class.}
-\twocolitem{wxUSE\_REGEX}{Use \helpref{wxRegEx}{wxregex} class.}
-\twocolitem{wxUSE\_RICHEDIT}{}
-\twocolitem{wxUSE\_RICHTEXT}{Use \helpref{wxRichTextCtrl}{wxrichtextctrl} class.}
-\twocolitem{wxUSE\_SASH}{Use \helpref{wxSashWindow}{wxsashwindow} class.}
-\twocolitem{wxUSE\_SCROLLBAR}{Use \helpref{wxScrollBar}{wxscrollbar} class.}
-\twocolitem{wxUSE\_SEARCHCTRL}{Use \helpref{wxSearchCtrl}{wxsearchctrl} class.}
-\twocolitem{wxUSE\_SLIDER}{Use \helpref{wxSlider}{wxslider} class.}
-\twocolitem{wxUSE\_SOCKETS}{Enables Network address classes.}
-\twocolitem{wxUSE\_SOUND}{Use \helpref{wxSound}{wxsound} class.}
-\twocolitem{wxUSE\_SPINBTN}{Use \helpref{wxSpinButton}{wxspinbutton} class.}
-\twocolitem{wxUSE\_SPINCTRL}{Use \helpref{wxSpinCtrl}{wxspinctrl} class.}
-\twocolitem{wxUSE\_SPLASH}{Use \helpref{wxSplashScreen}{wxsplashscreen} class.}
-\twocolitem{wxUSE\_SPLINES}{}
-\twocolitem{wxUSE\_SPLITTER}{Use \helpref{wxSplitterWindow}{wxsplitterwindow} class.}
-\twocolitem{wxUSE\_STACKWALKER}{Enables \helpref{wxStackWalker}{wxstackwalker} and related classes.}
-\twocolitem{wxUSE\_STATBMP}{Use \helpref{wxStaticBitmap}{wxstaticbitmap} class.}
-\twocolitem{wxUSE\_STATBOX}{Use \helpref{wxStaticBox}{wxstaticbox} class.}
-\twocolitem{wxUSE\_STATLINE}{Use \helpref{wxStaticLine}{wxstaticline} class.}
-\twocolitem{wxUSE\_STATTEXT}{Use \helpref{wxStaticText}{wxstatictext} class.}
-\twocolitem{wxUSE\_STATUSBAR}{Use \helpref{wxStatusBar}{wxstatusbar} class.}
-\twocolitem{wxUSE\_STC}{Use wxStyledTextCtrl.}
-\twocolitem{wxUSE\_STDPATHS}{Use \helpref{wxStandardPaths}{wxstandardpaths} class.}
-\twocolitem{wxUSE\_STL}{Use Standard Template Library for the container classes
-and \helpref{wxString}{wxstring} implementation.}
-\twocolitem{wxUSE\_STOPWATCH}{Use \helpref{wxStopWatch}{wxstopwatch} class.}
-\twocolitem{wxUSE\_STREAMS}{Enable stream classes.}
-\twocolitem{wxUSE\_SVG}{Use wxSVGFileDC class.}
-\twocolitem{wxUSE\_TARSTREAM}{Enable Tar files support.}
-\twocolitem{wxUSE\_TEXTBUFFER}{Use wxTextBuffer class.}
-\twocolitem{wxUSE\_TEXTCTRL}{Use \helpref{wxTextCtrl}{wxtextctrl} class.}
-\twocolitem{wxUSE\_TEXTDLG}{Use \helpref{wxTextEntryDialog}{wxtextentrydialog} class.}
-\twocolitem{wxUSE\_TEXTFILE}{Use \helpref{wxTextFile}{wxtextfile} class.}
-\twocolitem{wxUSE\_TGA}{Enable \helpref{wxImage}{wximage} TGA handler.}
-\twocolitem{wxUSE\_THREADS}{Use \helpref{wxThread}{wxthread} and related classes.}
-\twocolitem{wxUSE\_TIMER}{Use \helpref{wxTimer}{wxtimer} class.}
-\twocolitem{wxUSE\_TIPWINDOW}{Use \helpref{wxTipWindow}{wxtipwindow} class.}
-\twocolitem{wxUSE\_TOGGLEBTN}{Use \helpref{wxToggleButton}{wxtogglebutton} class.}
-\twocolitem{wxUSE\_TOOLBAR}{Use \helpref{wxToolBar}{wxtoolbar} class.}
-\twocolitem{wxUSE\_TOOLBOOK}{Use \helpref{wxToolbook}{wxtoolbook} class.}
-\twocolitem{wxUSE\_TOOLTIPS}{Use \helpref{wxToolTip}{wxtooltip} class.}
-\twocolitem{wxUSE\_TREEBOOK}{Use \helpref{wxTreebook}{wxtreebook} class.}
-\twocolitem{wxUSE\_TREECTRL}{Use \helpref{wxTreeCtrl}{wxtreectrl} class.}
-\twocolitem{wxUSE\_URL}{Use \helpref{wxURL}{wxurl} class.}
-\twocolitem{wxUSE\_VALIDATORS}{Use \helpref{wxValidator}{wxvalidator} class.}
-\twocolitem{wxUSE\_VARIANT}{Use \helpref{wxVariant}{wxvariant} class.}
-\twocolitem{wxUSE\_WIZARDDLG}{Use \helpref{wxWizard}{wxwizard} class.}
-\twocolitem{wxUSE\_XML}{Use XML parsing classes.}
-\twocolitem{wxUSE\_XPM}{Enable XPM reader for \helpref{wxImage}{wximage} and \helpref{wxBitmap}{wxbitmap} classes.}
-\twocolitem{wxUSE\_XRC}{Use XRC XML-based resource system.}
-\twocolitem{wxUSE\_ZIPSTREAM}{Enable streams for Zip files.}                
-\twocolitem{wxUSE\_ZLIB}{Use \helpref{wxZlibInput}{wxzlibinputstream} and
-\helpref{wxZlibOutputStream}{wxzliboutputstream} classes, required by
-wxUSE\_LIBPNG.}
-\end{twocollist}
-
-\subsection{wxUSE preprocessor symbols used only under Unix platforms}\label{\helpref{wxusedefunix}{wxusedefunix}}
-\begin{twocollist}\itemsep=0pt
-\twocolitem{wxUSE\_GSTREAMER}{Use GStreamer library in \helpref{wxMediaCtrl}{wxmediactrl}.}
-\twocolitem{wxUSE\_LIBMSPACK}{Use libmspack library.}
-\end{twocollist}
-
-\subsection{wxUSE preprocessor symbols used only in wxMac port}\label{\helpref{wxusedefmac}{wxusedefmac}}
-\begin{twocollist}\itemsep=0pt
-\twocolitem{wxUSE\_WEBKIT}{Use wxWebKitCtrl class.}
-\end{twocollist}
-
-\subsection{wxUSE preprocessor symbols used only in wxMSW port}\label{\helpref{wxusedefmsw}{wxusedefmsw}}
-\begin{twocollist}\itemsep=0pt
-\twocolitem{wxUSE\_ACCESSIBILITY}{Enable accessibility support}
-\twocolitem{wxUSE\_ACTIVEX}{Use \helpref{wxActiveXContainer}{wxactivexcontainer} and related classes.}
-\twocolitem{wxUSE\_WXDIB}{Use wxDIB class.}
-\twocolitem{wxUSE\_ENH\_METAFILE}{Use wxEnhMetaFile.}
-\twocolitem{wxUSE\_OLE}{Enables OLE helper routines.}
-\twocolitem{wxUSE\_OLE\_AUTOMATION}{Enable OLE automation utilities.}
-\twocolitem{wxUSE\_RICHEDIT2}{Enable use of richtext20.dll in \helpref{wxTextCtrl}{wxtextctrl}}
-\twocolitem{wxUSE\_UXTHEME}{Enable support for XP themes.}
-\twocolitem{wxUSE\_XPM\_IN\_MSW}{See also wxUSE\_XPM}
-\end{twocollist}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name:        wxusedef.tex
+%% Purpose:     wxUSE preprocessor symbols
+%% Author:      Tim Stahlhut
+%% Created:     2007-07-15
+%% RCS-ID:      $Id: $
+%% Copyright:   (c) 2007 wxWidgets
+%% License:     wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{wxUSE Preprocessor symbols defined by wxWidgets}\label{wxusedef}
+
+This section documents the wxUSE preprocessor symbols used in the wxWidgets
+source, grouped by category (and sorted by alphabetical order inside each
+category). These symbols are always defined and whether the given feature is
+active or not depends on their value: if defined as $1$, feature is active,
+otherwise it is disabled. Because of this these symbols should be always tested
+using \texttt{#if} and not \texttt{#ifdef}.
+
+\subsection{Generic wxUSE preprocessor symbols}\label{\helpref{wxusedefmulti}{wxusedefmulti}}
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{wxUSE\_ABOUTDLG}{Use \helpref{wxAboutDialogInfo}{wxaboutdialoginfo} class.}
+\twocolitem{wxUSE\_ACCEL}{Use \helpref{wxAcceleratorTable}{wxacceleratortable}/Entry classes and support for them in \helpref{wxMenu}{wxmenu}(Bar).}
+\twocolitem{wxUSE\_ANIMATIONCTRL}{Use \helpref{wxAnimationCtrl}{wxanimationctrl} class.}
+\twocolitem{wxUSE\_AUI}{Use AUI (dockable windows) library.}
+\twocolitem{wxUSE\_BASE64}{Enables Base64 support.}
+\twocolitem{wxUSE\_BITMAPCOMBOBOX}{}
+\twocolitem{wxUSE\_BMPBUTTON}{Use \helpref{wxBitmapButton}{wxbitmapbutton} class.}
+\twocolitem{wxUSE\_BUSYINFO}{Use \helpref{wxBusyInfo}{wxbusyinfo} class.}
+\twocolitem{wxUSE\_BUTTON}{Use \helpref{wxButton}{wxbutton} class.}
+\twocolitem{wxUSE\_CALENDARCTRL}{Use \helpref{wxCalendarCtrl}{wxcalendarctrl} class.}
+\twocolitem{wxUSE\_CARET}{Use \helpref{wxCaret}{wxcaret} class.}
+\twocolitem{wxUSE\_CHECKBOX}{Use \helpref{wxCheckBox}{wxcheckbox} class.}
+\twocolitem{wxUSE\_CHECKLISTBOX}{Use \helpref{wxCheckListBox}{wxchecklistbox} class.}
+\twocolitem{wxUSE\_CHOICE}{Use \helpref{wxChoice}{wxchoice} class.}
+\twocolitem{wxUSE\_CHOICEBOOK}{Use \helpref{wxChoicebook}{wxchoicebook} class.}
+\twocolitem{wxUSE\_CHOICEDLG}{Use \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} or \helpref{wxMultiChoiceDialog}{wxmultichoicedialog} classes.}
+\twocolitem{wxUSE\_CLIPBOARD}{Use \helpref{wxClipboard}{wxclipboard} class.}
+\twocolitem{wxUSE\_COLLPANE}{Use \helpref{wxCollapsiblePane}{wxcollapsiblepane} class.}
+\twocolitem{wxUSE\_COLOURDLG}{Use \helpref{wxColourDialog}{wxcolourdialog} class.}
+\twocolitem{wxUSE\_COLOURPICKERCTRL}{Use \helpref{wxColourPickerCtrl}{wxcolourpickerctrl} class.}
+\twocolitem{wxUSE\_COMBOBOX}{Use \helpref{wxComboBox}{wxcombobox} class.}
+\twocolitem{wxUSE\_COMBOCTRL}{Use \helpref{wxComboCtrl}{wxcomboctrl} class.}
+\twocolitem{wxUSE\_CONFIG}{Use \helpref{wxConfig}{wxconfigbase} and related classes.}
+\twocolitem{wxUSE\_CONSTRAINTS}{Use \helpref{wxLayoutConstraints}{wxlayoutconstraints}}
+\twocolitem{wxUSE\_CRASHREPORT}{Use wxCrashReport class.}
+\twocolitem{wxUSE\_DATAOBJ}{Use \helpref{wxDataObject}{wxdataobject} and related classes.}
+\twocolitem{wxUSE\_DATAVIEWCTRL}{Use \helpref{wxDataViewCtrl}{wxdataviewctrl} class.}
+\twocolitem{wxUSE\_DATEPICKCTRL}{Use \helpref{wxDatePickerCtrl}{wxdatepickerctrl} class.}
+\twocolitem{wxUSE\_DATETIME}{Use \helpref{wxDateTime}{wxdatetime} and related classes.}
+\twocolitem{wxUSE\_DEBUGREPORT}{Use \helpref{wxDebugReport}{wxdebugreport} class.}
+\twocolitem{wxUSE\_DIRDLG}{Use \helpref{wxDirDialog}{wxdirdialog} class.}
+\twocolitem{wxUSE\_DIRPICKERCTRL}{Use \helpref{wxDirPickerCtrl}{wxdirpickerctrl} class.}
+\twocolitem{wxUSE\_DISPLAY}{Use \helpref{wxDisplay}{wxdisplay} and related classes.}
+\twocolitem{wxUSE\_DOC\_VIEW\_ARCHITECTURE}{Use \helpref{wxDocument}{wxdocument} and related classes.}
+\twocolitem{wxUSE\_DRAGIMAGE}{Use \helpref{wxDragImage}{wxdragimage} class.}
+\twocolitem{wxUSE\_EDITABLELISTBOX}{Use \helpref{wxEditableListBox}{wxeditablelistbox} class.}
+\twocolitem{wxUSE\_EXCEPTIONS}{}
+\twocolitem{wxUSE\_FFILE}{Use \helpref{wxFFile}{wxffile} class.}
+\twocolitem{wxUSE\_FILE}{Use \helpref{wxFile}{wxfile} class.}
+\twocolitem{wxUSE\_FILEDLG}{Use \helpref{wxFileDialog}{wxfiledialog} class.}
+\twocolitem{wxUSE\_FILEPICKERCTRL}{Use \helpref{wxFilePickerCtrl}{wxfilepickerctrl} class.}
+\twocolitem{wxUSE\_FILESYSTEM}{Use \helpref{wxFileSystem}{wxfilesystem} and related classes.}
+\twocolitem{wxUSE\_FINDREPLDLG}{Use \helpref{wxFindReplaceDialog}{wxfindreplacedialog} class.}
+\twocolitem{wxUSE\_FONTDLG}{Use \helpref{wxFontDialog}{wxfontdialog} class.}
+\twocolitem{wxUSE\_FONTMAP}{Use \helpref{wxFontMapper}{wxfontmapper} class.}
+\twocolitem{wxUSE\_FONTPICKERCTRL}{Use \helpref{wxFontPickerCtrl}{wxfontpickerctrl} class.}
+\twocolitem{wxUSE\_FSVOLUME}{Use wxFSVolume class.}
+\twocolitem{wxUSE\_GAUGE}{Use \helpref{wxGauge}{wxgauge} class.}
+\twocolitem{wxUSE\_GEOMETRY}{Use Common Geometry Classes}
+\twocolitem{wxUSE\_GIF}{}
+\twocolitem{wxUSE\_GLCANVAS}{Enables OpenGL support.}
+\twocolitem{wxUSE\_GRID}{Use \helpref{wxGrid}{wxgrid} and related classes.}
+\twocolitem{wxUSE\_GUI}{Use the GUI classes; if set to $0$ only non-GUI classes
+are available.}
+\twocolitem{wxUSE\_HELP}{Use \helpref{wxHelpController}{wxhelpcontroller} and related classes.}
+\twocolitem{wxUSE\_HOTKEY}{}
+\twocolitem{wxUSE\_HTML}{Use \helpref{wxHtmlWindow}{wxhtmlwindow} and related classes.}
+\twocolitem{wxUSE\_HYPERLINKCTRL}{Use \helpref{wxHyperlinkCtrl}{wxhyperlinkctrl}}
+\twocolitem{wxUSE\_IFF}{Enables the \helpref{wxImage}{wximage} handler for Amiga IFF images.}
+\twocolitem{wxUSE\_IMAGE}{Use \helpref{wxImage}{wximage} and related classes.}
+\twocolitem{wxUSE\_IMAGLIST}{Use \helpref{wxImageList}{wximagelist} class.}
+\twocolitem{wxUSE\_INTL}{Use \helpref{wxLocale}{wxlocale} and related classes.}
+\twocolitem{wxUSE\_IOSTREAMH}{Use header <iostream.h> instead of <iostream>.}
+\twocolitem{wxUSE\_IPC}{Use Interprocess communication classes.}
+\twocolitem{wxUSE\_JOYSTICK}{Use \helpref{wxJoystick}{wxjoystick} class.}
+\twocolitem{wxUSE\_LIBJPEG}{Enables JPEG format support (requires libjpeg).}
+\twocolitem{wxUSE\_LIBPNG}{Enables PNG format support (requires libpng). 
+Also requires wxUSE\_ZLIB.}
+\twocolitem{wxUSE\_LIBTIFF}{Enables TIFF format support (requires libtiff).}
+\twocolitem{wxUSE\_LISTBOOK}{Use \helpref{wxListbook}{wxlistbook} class.}
+\twocolitem{wxUSE\_LISTBOX}{Use \helpref{wxListBox}{wxlistbox} class.}
+\twocolitem{wxUSE\_LISTCTRL}{Use \helpref{wxListCtrl}{wxlistctrl} class.}
+\twocolitem{wxUSE\_LOG}{Use \helpref{wxLog}{wxlog} and related classes.}
+\twocolitem{wxUSE\_LOGGUI}{Use \helpref{wxLogGui}{wxloggui} class.}
+\twocolitem{wxUSE\_LOGWINDOW}{Use wxLogFrame class.}
+\twocolitem{wxUSE\_LONGLONG}{Use \helpref{wxLongLong}{wxlonglong} class.}
+\twocolitem{wxUSE\_MDI}{}
+\twocolitem{wxUSE\_MDI\_ARCHITECTURE}{}
+\twocolitem{wxUSE\_MEDIACTRL}{Use \helpref{wxMediaCtrl}{wxmediactrl}.}
+\twocolitem{wxUSE\_MENUS}{Use \helpref{wxMenu}{wxmenu} and related classes.}
+\twocolitem{wxUSE\_METAFILE}{Use \helpref{wxMetaFile}{wxmetafile} and related classes.}
+\twocolitem{wxUSE\_MIMETYPE}{Use \helpref{wxFileType}{wxfiletype} class.}
+\twocolitem{wxUSE\_MINIFRAME}{Use \helpref{wxMiniFrame}{wxminiframe} class.}
+\twocolitem{wxUSE\_MOUSEWHEEL}{}
+\twocolitem{wxUSE\_MSGDLG}{Use wxMessageOutput class.}
+\twocolitem{wxUSE\_NOTEBOOK}{Use \helpref{wxNotebook}{wxnotebook} and related classes.}
+\twocolitem{wxUSE\_NUMBERDLG}{Use wxNumberEntryDialog class.}
+\twocolitem{wxUSE\_ODBC}{Use ODBC classes.}
+\twocolitem{wxUSE\_ODCOMBOBOX}{Use \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox} class.}
+\twocolitem{wxUSE\_OWNER\_DRAWN}{Use interface for owner-drawn GUI elements.}
+\twocolitem{wxUSE\_PALETTE}{Use \helpref{wxPalette}{wxpalette} and related classes.}
+\twocolitem{wxUSE\_PCX}{Enables \helpref{wxImage}{wximage} PCX handler.}
+\twocolitem{wxUSE\_PNM}{Enables \helpref{wxImage}{wximage} PNM handler.}
+\twocolitem{wxUSE\_POPUPWIN}{Use wxPopupWindow class.}
+\twocolitem{wxUSE\_POSTSCRIPT}{Use wxPostScriptPrinter class.}
+\twocolitem{wxUSE\_PRINTING\_ARCHITECTURE}{Enable printer classes.}
+\twocolitem{wxUSE\_PROGRESSDLG}{Enables progress dialog classes.}
+\twocolitem{wxUSE\_PROTOCOL}{Use \helpref{wxProtocol}{wxprotocol} class.}
+\twocolitem{wxUSE\_RADIOBOX}{Use \helpref{wxRadioBox}{wxradiobox} class.}
+\twocolitem{wxUSE\_RADIOBTN}{Use \helpref{wxRadioButton}{wxradiobutton} class.}
+\twocolitem{wxUSE\_REGEX}{Use \helpref{wxRegEx}{wxregex} class.}
+\twocolitem{wxUSE\_RICHEDIT}{}
+\twocolitem{wxUSE\_RICHTEXT}{Use \helpref{wxRichTextCtrl}{wxrichtextctrl} class.}
+\twocolitem{wxUSE\_SASH}{Use \helpref{wxSashWindow}{wxsashwindow} class.}
+\twocolitem{wxUSE\_SCROLLBAR}{Use \helpref{wxScrollBar}{wxscrollbar} class.}
+\twocolitem{wxUSE\_SEARCHCTRL}{Use \helpref{wxSearchCtrl}{wxsearchctrl} class.}
+\twocolitem{wxUSE\_SLIDER}{Use \helpref{wxSlider}{wxslider} class.}
+\twocolitem{wxUSE\_SOCKETS}{Enables Network address classes.}
+\twocolitem{wxUSE\_SOUND}{Use \helpref{wxSound}{wxsound} class.}
+\twocolitem{wxUSE\_SPINBTN}{Use \helpref{wxSpinButton}{wxspinbutton} class.}
+\twocolitem{wxUSE\_SPINCTRL}{Use \helpref{wxSpinCtrl}{wxspinctrl} class.}
+\twocolitem{wxUSE\_SPLASH}{Use \helpref{wxSplashScreen}{wxsplashscreen} class.}
+\twocolitem{wxUSE\_SPLINES}{}
+\twocolitem{wxUSE\_SPLITTER}{Use \helpref{wxSplitterWindow}{wxsplitterwindow} class.}
+\twocolitem{wxUSE\_STACKWALKER}{Enables \helpref{wxStackWalker}{wxstackwalker} and related classes.}
+\twocolitem{wxUSE\_STATBMP}{Use \helpref{wxStaticBitmap}{wxstaticbitmap} class.}
+\twocolitem{wxUSE\_STATBOX}{Use \helpref{wxStaticBox}{wxstaticbox} class.}
+\twocolitem{wxUSE\_STATLINE}{Use \helpref{wxStaticLine}{wxstaticline} class.}
+\twocolitem{wxUSE\_STATTEXT}{Use \helpref{wxStaticText}{wxstatictext} class.}
+\twocolitem{wxUSE\_STATUSBAR}{Use \helpref{wxStatusBar}{wxstatusbar} class.}
+\twocolitem{wxUSE\_STC}{Use wxStyledTextCtrl.}
+\twocolitem{wxUSE\_STDPATHS}{Use \helpref{wxStandardPaths}{wxstandardpaths} class.}
+\twocolitem{wxUSE\_STL}{Use Standard Template Library for the container classes
+and \helpref{wxString}{wxstring} implementation.}
+\twocolitem{wxUSE\_STOPWATCH}{Use \helpref{wxStopWatch}{wxstopwatch} class.}
+\twocolitem{wxUSE\_STREAMS}{Enable stream classes.}
+\twocolitem{wxUSE\_SVG}{Use wxSVGFileDC class.}
+\twocolitem{wxUSE\_TARSTREAM}{Enable Tar files support.}
+\twocolitem{wxUSE\_TAASKBARICON}{Use \helpref{wxTaskBarIcon}{wxtaskbaricon} class.}
+\twocolitem{wxUSE\_TEXTBUFFER}{Use wxTextBuffer class.}
+\twocolitem{wxUSE\_TEXTCTRL}{Use \helpref{wxTextCtrl}{wxtextctrl} class.}
+\twocolitem{wxUSE\_TEXTDLG}{Use \helpref{wxTextEntryDialog}{wxtextentrydialog} class.}
+\twocolitem{wxUSE\_TEXTFILE}{Use \helpref{wxTextFile}{wxtextfile} class.}
+\twocolitem{wxUSE\_TGA}{Enable \helpref{wxImage}{wximage} TGA handler.}
+\twocolitem{wxUSE\_THREADS}{Use \helpref{wxThread}{wxthread} and related classes.}
+\twocolitem{wxUSE\_TIMER}{Use \helpref{wxTimer}{wxtimer} class.}
+\twocolitem{wxUSE\_TIPWINDOW}{Use \helpref{wxTipWindow}{wxtipwindow} class.}
+\twocolitem{wxUSE\_TOGGLEBTN}{Use \helpref{wxToggleButton}{wxtogglebutton} class.}
+\twocolitem{wxUSE\_TOOLBAR}{Use \helpref{wxToolBar}{wxtoolbar} class.}
+\twocolitem{wxUSE\_TOOLBOOK}{Use \helpref{wxToolbook}{wxtoolbook} class.}
+\twocolitem{wxUSE\_TOOLTIPS}{Use \helpref{wxToolTip}{wxtooltip} class.}
+\twocolitem{wxUSE\_TREEBOOK}{Use \helpref{wxTreebook}{wxtreebook} class.}
+\twocolitem{wxUSE\_TREECTRL}{Use \helpref{wxTreeCtrl}{wxtreectrl} class.}
+\twocolitem{wxUSE\_URL}{Use \helpref{wxURL}{wxurl} class.}
+\twocolitem{wxUSE\_VALIDATORS}{Use \helpref{wxValidator}{wxvalidator} class.}
+\twocolitem{wxUSE\_VARIANT}{Use \helpref{wxVariant}{wxvariant} class.}
+\twocolitem{wxUSE\_WIZARDDLG}{Use \helpref{wxWizard}{wxwizard} class.}
+\twocolitem{wxUSE\_XML}{Use XML parsing classes.}
+\twocolitem{wxUSE\_XPM}{Enable XPM reader for \helpref{wxImage}{wximage} and \helpref{wxBitmap}{wxbitmap} classes.}
+\twocolitem{wxUSE\_XRC}{Use XRC XML-based resource system.}
+\twocolitem{wxUSE\_ZIPSTREAM}{Enable streams for Zip files.}                
+\twocolitem{wxUSE\_ZLIB}{Use \helpref{wxZlibInput}{wxzlibinputstream} and
+\helpref{wxZlibOutputStream}{wxzliboutputstream} classes, required by
+wxUSE\_LIBPNG.}
+\end{twocollist}
+
+\subsection{wxUSE preprocessor symbols used only under Unix platforms}\label{\helpref{wxusedefunix}{wxusedefunix}}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{wxUSE\_GSTREAMER}{Use GStreamer library in \helpref{wxMediaCtrl}{wxmediactrl}.}
+\twocolitem{wxUSE\_LIBMSPACK}{Use libmspack library.}
+\end{twocollist}
+
+\subsection{wxUSE preprocessor symbols used only in wxMac port}\label{\helpref{wxusedefmac}{wxusedefmac}}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{wxUSE\_WEBKIT}{Use wxWebKitCtrl class.}
+\end{twocollist}
+
+\subsection{wxUSE preprocessor symbols used only in wxMSW port}\label{\helpref{wxusedefmsw}{wxusedefmsw}}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{wxUSE\_ACCESSIBILITY}{Enable accessibility support}
+\twocolitem{wxUSE\_ACTIVEX}{Use \helpref{wxActiveXContainer}{wxactivexcontainer} and related classes.}
+\twocolitem{wxUSE\_WXDIB}{Use wxDIB class.}
+\twocolitem{wxUSE\_ENH\_METAFILE}{Use wxEnhMetaFile.}
+\twocolitem{wxUSE\_OLE}{Enables OLE helper routines.}
+\twocolitem{wxUSE\_OLE\_AUTOMATION}{Enable OLE automation utilities.}
+\twocolitem{wxUSE\_RICHEDIT2}{Enable use of richtext20.dll in \helpref{wxTextCtrl}{wxtextctrl}}
+\twocolitem{wxUSE\_UXTHEME}{Enable support for XP themes.}
+\twocolitem{wxUSE\_XPM\_IN\_MSW}{See also wxUSE\_XPM}
+\end{twocollist}
diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h
index c808d500f1..d03d33d53a 100644
--- a/include/wx/chkconf.h
+++ b/include/wx/chkconf.h
@@ -916,6 +916,14 @@
 #   endif
 #endif /* !defined(wxUSE_TAB_DIALOG) */
 
+#ifndef wxUSE_TASKBARICON
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_TASKBARICON must be defined."
+#   else
+#       define wxUSE_TASKBARICON 0
+#   endif
+#endif /* !defined(wxUSE_TASKBARICON) */
+
 #ifndef wxUSE_TEXTCTRL
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_TEXTCTRL must be defined."
diff --git a/include/wx/features.h b/include/wx/features.h
index 13fb102e92..9d400205f2 100644
--- a/include/wx/features.h
+++ b/include/wx/features.h
@@ -38,6 +38,8 @@
     || defined(__WXMAC_OSX__) || defined(__WXCOCOA__)
     #define wxHAS_TASK_BAR_ICON
 #else
+    #undef wxUSE_TASKBARICON
+    #define wxUSE_TASKBARICON 0
     #undef wxHAS_TASK_BAR_ICON
 #endif
 
diff --git a/include/wx/mac/setup0.h b/include/wx/mac/setup0.h
index 2b55bba682..5583f84ad0 100644
--- a/include/wx/mac/setup0.h
+++ b/include/wx/mac/setup0.h
@@ -756,6 +756,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h
index 4f643f333e..a87494d58b 100644
--- a/include/wx/motif/setup0.h
+++ b/include/wx/motif/setup0.h
@@ -755,6 +755,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h
index 311559ffef..50ee712377 100644
--- a/include/wx/msw/setup0.h
+++ b/include/wx/msw/setup0.h
@@ -755,6 +755,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/msw/wince/setup.h b/include/wx/msw/wince/setup.h
index 953f07ca9f..1b647c578c 100644
--- a/include/wx/msw/wince/setup.h
+++ b/include/wx/msw/wince/setup.h
@@ -755,6 +755,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h
index 8e7f3214d6..b1d8003bca 100644
--- a/include/wx/os2/setup0.h
+++ b/include/wx/os2/setup0.h
@@ -755,6 +755,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/palmos/setup0.h b/include/wx/palmos/setup0.h
index 75686beaa3..e45042039d 100644
--- a/include/wx/palmos/setup0.h
+++ b/include/wx/palmos/setup0.h
@@ -755,6 +755,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h
index 2bf77dd7a4..ae0eeac492 100644
--- a/include/wx/setup_inc.h
+++ b/include/wx/setup_inc.h
@@ -751,6 +751,14 @@
 // Recommended setting: 0 (use wxNotebook)
 #define wxUSE_TAB_DIALOG    0
 
+// wxTaskBarIcon is a small notification icon shown in the system toolbar or
+// dock.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be set to 0 if you don't need it)
+#define wxUSE_TASKBARICON 1
+
 // wxGrid class
 //
 // Default is 1, set to 0 to cut down compilation time and binaries size if you
diff --git a/include/wx/string.h b/include/wx/string.h
index 83d702c5bc..b6002fd5aa 100644
--- a/include/wx/string.h
+++ b/include/wx/string.h
@@ -1202,17 +1202,20 @@ public:
     // implicit conversion to C string
     operator wxCStrData() const { return c_str(); }
 
-    // these operators conflict with operators for conversion to std::string,
-    // so they must be disabled in STL build:
+    // the first two operators conflict with operators for conversion to
+    // std::string and they must be disabled in STL build; the next one only
+    // makes sense if conversions to char* are also defined and not defining it
+    // in STL build also helps us to get more clear error messages for the code
+    // which relies on implicit conversion to char* in STL build
 #if !wxUSE_STL
     operator const char*() const { return c_str(); }
     operator const wchar_t*() const { return c_str(); }
-#endif
 
     // implicit conversion to untyped pointer for compatibility with previous
     // wxWidgets versions: this is the same as conversion to const char * so it
     // may fail!
     operator const void*() const { return c_str(); }
+#endif // wxUSE_STL
 
     // identical to c_str(), for MFC compatibility
     const wxCStrData GetData() const { return c_str(); }
diff --git a/include/wx/taskbar.h b/include/wx/taskbar.h
index 799792b7bb..ab10e8b5fe 100644
--- a/include/wx/taskbar.h
+++ b/include/wx/taskbar.h
@@ -14,7 +14,7 @@
 
 #include "wx/defs.h"
 
-#ifdef wxHAS_TASK_BAR_ICON
+#if wxUSE_TASKBARICON
 
 #include "wx/event.h"
 
@@ -119,6 +119,6 @@ END_DECLARE_EVENT_TYPES()
 #endif
 #define EVT_TASKBAR_CLICK(fn)        wx__DECLARE_TASKBAREVT(CLICK, fn)
 
-#endif // wxHAS_TASK_BAR_ICON
+#endif // wxUSE_TASKBARICON
 
 #endif // _WX_TASKBAR_H_BASE_
diff --git a/setup.h.in b/setup.h.in
index e77e00e343..1c8a340172 100644
--- a/setup.h.in
+++ b/setup.h.in
@@ -370,6 +370,8 @@
 
 #define wxUSE_TAB_DIALOG    0
 
+#define wxUSE_TASKBARICON 0
+
 #define wxUSE_GRID         0
 
 #define wxUSE_MINIFRAME 0
diff --git a/src/common/taskbarcmn.cpp b/src/common/taskbarcmn.cpp
index 08a5c86116..29f39c23ee 100644
--- a/src/common/taskbarcmn.cpp
+++ b/src/common/taskbarcmn.cpp
@@ -16,7 +16,7 @@
     #pragma hdrstop
 #endif
 
-#ifdef wxHAS_TASK_BAR_ICON
+#if wxUSE_TASKBARICON
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
@@ -51,4 +51,4 @@ void wxTaskBarIconBase::OnRightButtonDown(wxTaskBarIconEvent& WXUNUSED(event))
     }
 }
 
-#endif // defined(wxHAS_TASK_BAR_ICON)
+#endif // wxUSE_TASKBARICON
diff --git a/src/gtk/taskbar.cpp b/src/gtk/taskbar.cpp
index 70f600372d..bfd2341e2d 100644
--- a/src/gtk/taskbar.cpp
+++ b/src/gtk/taskbar.cpp
@@ -12,6 +12,8 @@
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
+#if wxUSE_TASKBARICON
+
 #include "wx/gtk/taskbarpriv.h"
 
 #ifndef WX_PRECOMP
@@ -144,3 +146,5 @@ bool wxTaskBarIconAreaBase::DoPopupMenu( wxMenu *menu, int x, int y )
 
 #endif // __WXGTK20__
 #endif // GTK_CHECK_VERSION(2, 1, 0)
+
+#endif // wxUSE_TASKBARICON
diff --git a/src/mac/carbon/taskbar.cpp b/src/mac/carbon/taskbar.cpp
index 326e764eaa..693f6c766b 100644
--- a/src/mac/carbon/taskbar.cpp
+++ b/src/mac/carbon/taskbar.cpp
@@ -11,7 +11,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef wxHAS_TASK_BAR_ICON
+#if wxUSE_TASKBARICON
 
 #include "wx/taskbar.h"
 
@@ -521,4 +521,4 @@ bool wxTaskBarIcon::RemoveIcon()
 bool wxTaskBarIcon::PopupMenu(wxMenu *menu)
 { return m_impl->PopupMenu(menu); }
 
-#endif // wxHAS_TASK_BAR_ICON
+#endif // wxUSE_TASKBARICON
diff --git a/src/msw/taskbar.cpp b/src/msw/taskbar.cpp
index 3ed327f627..0a6277803f 100644
--- a/src/msw/taskbar.cpp
+++ b/src/msw/taskbar.cpp
@@ -17,6 +17,8 @@
     #pragma hdrstop
 #endif
 
+#if wxUSE_TASKBARICON
+
 #ifndef WX_PRECOMP
     #include "wx/window.h"
     #include "wx/frame.h"
@@ -288,3 +290,6 @@ long wxTaskBarIcon::WindowProc(unsigned int msg,
 
     return 0;
 }
+
+#endif // wxUSE_TASKBARICON
+
diff --git a/src/palmos/taskbar.cpp b/src/palmos/taskbar.cpp
index 8ab4274bb2..5bdb1f8551 100644
--- a/src/palmos/taskbar.cpp
+++ b/src/palmos/taskbar.cpp
@@ -17,6 +17,8 @@
     #pragma hdrstop
 #endif
 
+#if wxUSE_TASKBARICON
+
 #ifndef WX_PRECOMP
     #include "wx/window.h"
     #include "wx/frame.h"
@@ -106,3 +108,5 @@ long wxTaskBarIcon::WindowProc(unsigned int msg,
 }
 
 #endif // __WIN95__
+
+#endif // wxUSE_TASKBARICON
diff --git a/src/unix/taskbarx11.cpp b/src/unix/taskbarx11.cpp
index cf5e12e52a..c335b5d7af 100644
--- a/src/unix/taskbarx11.cpp
+++ b/src/unix/taskbarx11.cpp
@@ -21,7 +21,7 @@
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#ifdef wxHAS_TASK_BAR_ICON
+#if wxUSE_TASKBARICON
 
 #include "wx/taskbar.h"
 
@@ -328,4 +328,4 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu)
     return true;
 }
 
-#endif // wxHAS_TASK_BAR_ICON
+#endif // wxUSE_TASKBARICON