X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4876436a6240109da0b947c4333b75eb98525d70..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/interface/wx/taskbar.h diff --git a/interface/wx/taskbar.h b/interface/wx/taskbar.h index 34aaf946fb..36096618a4 100644 --- a/interface/wx/taskbar.h +++ b/interface/wx/taskbar.h @@ -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 @@ -13,7 +46,9 @@ 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 "System Tray Protocol" (see http://freedesktop.org/wiki/Specifications/systemtray-spec) by freedesktop.org (WMs used by modern desktop environments such as GNOME >= 2, @@ -26,24 +61,24 @@ 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;