\section{\class{wxTaskBarIcon}}\label{wxtaskbaricon}

This class represents a taskbar icon. A taskbar icon is an icon that appears in the `system tray' and responds to mouse clicks, optionally with a tooltip above it to help provide information.

\wxheading{X Window System Note}

Under X Window System, the window manager must support either
the \urlref{System Tray Protocol by freedesktop.org}{http://freedesktop.org/Standards/systemtray-spec}
(WMs used by modern desktop environments such as GNOME >= 2, KDE
>= 3 and XFCE >= 4 all do) or the older methods used in GNOME 1.2 and
KDE 1 and 2. If it doesn't, the icon will appear as a toplevel window on
user's desktop.

Because not all window managers have system tray, there's no guarantee that
wxTaskBarIcon will work correctly under X Window System and so the applications
should use it only as an optional component of their user interface. The user
should be required to explicitly enable the taskbar icon on Unix, it shouldn't
be on by default.


\wxheading{Derived from}

\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}

\wxheading{Include files}

<wx/taskbar.h>

\wxheading{Event handling}

To process input from a taskbar icon, use the following event handler macros to direct input to member
functions that take a wxTaskBarIconEvent argument. Note that not all ports are
required to send these events and so it's better to override
\helpref{CreatePopupMenu}{wxtaskbariconcreatepopupmenu} if all that
the application does is that it shows a popup menu in reaction to mouse click.

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TASKBAR\_MOVE(func)}}{Process a
wxEVT\_TASKBAR\_MOVE event.}
\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_DOWN(func)}}{Process a
wxEVT\_TASKBAR\_LEFT\_DOWN event.}
\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_UP(func)}}{Process a
wxEVT\_TASKBAR\_LEFT\_UP event.}
\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_DOWN(func)}}{Process a
wxEVT\_TASKBAR\_RIGHT\_DOWN event.}
\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_UP(func)}}{Process a
wxEVT\_TASKBAR\_RIGHT\_UP event.}
\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_DCLICK(func)}}{Process a
wxEVT\_TASKBAR\_LEFT\_DCLICK event.}
\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_DCLICK(func)}}{Process a
wxEVT\_TASKBAR\_RIGHT\_DCLICK event.}
\twocolitem{{\bf EVT\_TASKBAR\_CLICK(func)}}{This is a synonym for either
EVT\_TASKBAR\_RIGHT\_DOWN or UP depending on the platform, use this event macro
to catch the event which should result in the menu being displayed on the
current platform.}
\end{twocollist}%

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxTaskBarIcon::wxTaskBarIcon}\label{wxtaskbariconctor}

\func{}{wxTaskBarIcon}{\void}

Default constructor.

\membersection{wxTaskBarIcon::\destruct{wxTaskBarIcon}}\label{wxtaskbaricondtor}

\func{}{\destruct{wxTaskBarIcon}}{\void}

Destroys the wxTaskBarIcon object, removing the icon if not already removed.

\membersection{wxTaskBarIcon::CreatePopupMenu}\label{wxtaskbariconcreatepopupmenu}

\func{virtual wxMenu*}{CreatePopupMenu}{\void}

This method is called by the library when the user requests popup menu
(on Windows and Unix platforms, this is when the user right-clicks the icon).
Override this function in order to provide popup menu associated with the icon.

If CreatePopupMenu returns NULL (this happens by default),
no menu is shown, otherwise the menu is
displayed and then deleted by the library as soon as the user dismisses it.
The events can be handled by a class derived from wxTaskBarIcon.

\membersection{wxTaskBarIcon::IsIconInstalled}\label{wxtaskbariconisiconinstalled}

\func{bool}{IsIconInstalled}{\void}

Returns true if \helpref{SetIcon}{wxtaskbariconseticon} was called with no subsequent \helpref{RemoveIcon}{wxtaskbariconremoveicon}.

\membersection{wxTaskBarIcon::IsOk}\label{wxtaskbariconisok}

\func{bool}{IsOk}{\void}

Returns true if the object initialized successfully.

\membersection{wxTaskBarIcon::PopupMenu}\label{wxtaskbariconpopupmenu}

\func{bool}{PopupMenu}{\param{wxMenu*}{ menu}}

Pops up a menu at the current mouse position. The events can be handled by
a class derived from wxTaskBarIcon.

\wxheading{Note}

It is recommended to override
\helpref{CreatePopupMenu}{wxtaskbariconcreatepopupmenu}
callback instead of calling this method from event handler, because some
ports (e.g. wxCocoa) may not implement PopupMenu and mouse click events at all.

\membersection{wxTaskBarIcon::RemoveIcon}\label{wxtaskbariconremoveicon}

\func{bool}{RemoveIcon}{\void}

Removes the icon previously set with \helpref{SetIcon}{wxtaskbariconseticon}.

\membersection{wxTaskBarIcon::SetIcon}\label{wxtaskbariconseticon}

\func{bool}{SetIcon}{\param{const wxIcon\&}{ icon}, \param{const wxString\& }{tooltip}}

Sets the icon, and optional tooltip text.


