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: taskbar.h 35650 2005-09-23 12:56:45Z MR $
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#include "wx/icon.h"
16
17class WXDLLEXPORT wxIcon;
18class WXDLLEXPORT wxMenu;
19
20class wxTaskBarIconCocoaImpl;
21
22class WXDLLEXPORT wxTaskBarIcon : public wxTaskBarIconBase
23{
24    friend class wxTaskBarIconCocoaImpl;
25    DECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon)
26public:
27    //type of taskbar item to create (currently only DOCK is implemented)
28    enum wxTaskBarIconType
29    {   DOCK
30    ,   CUSTOM_STATUSITEM
31//    ,   STATUSITEM // TODO: Implement using NSStatusItem w/o custom NSView
32//    ,   MENUEXTRA // Menu extras require undocumented hacks
33    ,   DEFAULT_TYPE = CUSTOM_STATUSITEM
34    };
35
36    // Only one wxTaskBarIcon can be of the Dock type so by default
37    // create NSStatusItem for maximum source compatibility.
38    wxTaskBarIcon(wxTaskBarIconType iconType = DEFAULT_TYPE);
39    virtual ~wxTaskBarIcon();
40
41    bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString);
42    bool RemoveIcon();
43    bool PopupMenu(wxMenu *menu); //, int x, int y);
44protected:
45    wxTaskBarIconCocoaImpl *m_impl;
46};
47
48#endif // _WX_COCOA_TASKBAR_H__
49