]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/taskbar.h
Recognize VC12 (a.k.a. MSVS 2013) and define __VISUALC12__ for it.
[wxWidgets.git] / interface / wx / taskbar.h
index 3c17db5f76d4857697981c9c14694ffd70e5ded8..36096618a4ad337a18788773f3ad6105ea204305 100644 (file)
@@ -3,9 +3,42 @@
 // Purpose:     interface of wxTaskBarIcon
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+/**
+   On OSX Cocoa the taskbar icon can be in the doc or in the status area.
+   This enumeration can be used to select which will be instantiated.
+*/
+enum wxTaskBarIconType
+{
+    wxTBI_DOCK,
+    wxTBI_CUSTOM_STATUSITEM,
+    wxTBI_DEFAULT_TYPE
+};
+
+
+
+/**
+    @class wxTaskBarIconEvent
+
+    The event class used by wxTaskBarIcon.
+    For a list of the event macros meant to be used with wxTaskBarIconEvent,
+    please look at wxTaskBarIcon description.
+
+    @library{wxadv}
+    @category{events}
+*/
+class wxTaskBarIconEvent : public wxEvent
+{
+public:
+    /**
+        Constructor.
+    */
+    wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon);
+};
+
+
 /**
     @class wxTaskBarIcon
 
     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.
 
+
     @section taskbaricon_xnote X Window System Note
+
     Under X Window System, the window manager must support either the
-    @link http://freedesktop.org/wiki/Specifications/systemtray-spec "System Tray Protocol"
+    "System Tray Protocol" (see http://freedesktop.org/wiki/Specifications/systemtray-spec)
     by freedesktop.org (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.
 
     The user should be required to explicitly enable the taskbar icon on Unix,
     it shouldn't be on by default.
 
-    @beginEventTable{wxTaskBarIconEvent}
+    @beginEventEmissionTable{wxTaskBarIconEvent}
     Note that not all ports are required to send these events and so it's better
     to override wxTaskBarIcon::CreatePopupMenu() if all that the application does
     is that it shows a popup menu in reaction to mouse click.
     @event{EVT_TASKBAR_MOVE(func)}
-        Process a wxEVT_TASKBAR_MOVE event.
+        Process a @c wxEVT_TASKBAR_MOVE event.
     @event{EVT_TASKBAR_LEFT_DOWN(func)}
-        Process a wxEVT_TASKBAR_LEFT_DOWN event.
+        Process a @c wxEVT_TASKBAR_LEFT_DOWN event.
     @event{EVT_TASKBAR_LEFT_UP(func)}
-        Process a wxEVT_TASKBAR_LEFT_UP event.
+        Process a @c wxEVT_TASKBAR_LEFT_UP event.
     @event{EVT_TASKBAR_RIGHT_DOWN(func)}
-        Process a wxEVT_TASKBAR_RIGHT_DOWN event.
+        Process a @c wxEVT_TASKBAR_RIGHT_DOWN event.
     @event{EVT_TASKBAR_RIGHT_UP(func)}
-        Process a wxEVT_TASKBAR_RIGHT_UP event.
+        Process a @c wxEVT_TASKBAR_RIGHT_UP event.
     @event{EVT_TASKBAR_LEFT_DCLICK(func)}
-        Process a wxEVT_TASKBAR_LEFT_DCLICK event.
+        Process a @c wxEVT_TASKBAR_LEFT_DCLICK event.
     @event{EVT_TASKBAR_RIGHT_DCLICK(func)}
-        Process a wxEVT_TASKBAR_RIGHT_DCLICK event.
+        Process a @c wxEVT_TASKBAR_RIGHT_DCLICK event.
     @event{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
@@ -57,28 +92,15 @@ class wxTaskBarIcon : public wxEvtHandler
 {
 public:
     /**
-        Default constructor.
+        Default constructor.  The iconType is only applicable on wxOSX_Cocoa.
     */
-    wxTaskBarIcon();
+    wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE);
 
     /**
         Destroys the wxTaskBarIcon object, removing the icon if not already removed.
     */
     virtual ~wxTaskBarIcon();
 
-    /**
-        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.
-    */
-    virtual wxMenu* CreatePopupMenu();
-
     /**
         This method is similar to wxWindow::Destroy and can be used to schedule
         the task bar icon object for the delayed destruction: it will be deleted
@@ -116,7 +138,8 @@ public:
     /**
         Sets the icon, and optional tooltip text.
     */
-    bool SetIcon(const wxIcon& icon, const wxString& tooltip);
+    virtual bool SetIcon(const wxIcon& icon,
+                         const wxString& tooltip = wxEmptyString);
 
     /**
         Returns true if system tray is available in the desktop environment the
@@ -140,5 +163,31 @@ public:
         @since 2.9.0
     */
     static bool IsAvailable();
+
+protected:
+
+    /**
+        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.
+    */
+    virtual wxMenu* CreatePopupMenu();
 };
 
+
+wxEventType wxEVT_TASKBAR_MOVE;
+wxEventType wxEVT_TASKBAR_LEFT_DOWN;
+wxEventType wxEVT_TASKBAR_LEFT_UP;
+wxEventType wxEVT_TASKBAR_RIGHT_DOWN;
+wxEventType wxEVT_TASKBAR_RIGHT_UP;
+wxEventType wxEVT_TASKBAR_LEFT_DCLICK;
+wxEventType wxEVT_TASKBAR_RIGHT_DCLICK;
+wxEventType wxEVT_TASKBAR_CLICK;
+wxEventType wxEVT_TASKBAR_BALLOON_TIMEOUT;
+wxEventType wxEVT_TASKBAR_BALLOON_CLICK;