wxCocoa: Added wxTaskBarIcon
[wxWidgets.git] / include / wx / cocoa / taskbar.h
1 /////////////////////////////////////////////////////////////////////////
2 // File: wx/cocoa/taskbar.h
3 // Purpose: Defines wxTaskBarIcon class
4 // Author: David Elliott
5 // Modified by:
6 // Created: 2004/01/24
7 // RCS-ID: $Id$
8 // Copyright: (c) 2004 David Elliott
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_COCOA_TASKBAR_H__
13 #define _WX_COCOA_TASKBAR_H__
14
15 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16 #pragma interface "taskbar.h"
17 #endif
18
19 #include "wx/icon.h"
20
21 class WXDLLEXPORT wxIcon;
22 class WXDLLEXPORT wxMenu;
23
24 class wxTaskBarIconCocoaImpl;
25 class wxTaskBarIconDockImpl;
26
27 class WXDLLEXPORT wxTaskBarIcon : public wxTaskBarIconBase
28 {
29 friend class wxTaskBarIconDockImpl;
30 DECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon)
31 public:
32 //type of taskbar item to create (currently only DOCK is implemented)
33 enum wxTaskBarIconType
34 { DOCK
35 , CUSTOM_STATUSITEM
36 // , STATUSITEM // TODO: Implement using NSStatusItem w/o custom NSView
37 // , MENUEXTRA // Menu extras require undocumented hacks
38 , DEFAULT_TYPE = CUSTOM_STATUSITEM
39 };
40
41 // Only one wxTaskBarIcon can be of the Dock type so by default
42 // create NSStatusItem for maximum source compatibility.
43 wxTaskBarIcon(wxTaskBarIconType iconType = DEFAULT_TYPE);
44 virtual ~wxTaskBarIcon();
45
46 bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString);
47 bool RemoveIcon();
48 bool PopupMenu(wxMenu *menu); //, int x, int y);
49 protected:
50 wxTaskBarIconCocoaImpl *m_impl;
51 };
52
53 #endif // _WX_COCOA_TASKBAR_H__