/////////////////////////////////////////////////////////////////////////////
// Name: include/wx/msw/taskbarbutton.h
// Purpose: Defines wxTaskBarButtonImpl class.
// Author: Chaobin Zhang <zhchbin@gmail.com>
// Created: 2014-06-01
// Copyright: (c) 2014 wxWidgets development team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MSW_TASKBARBUTTON_H_
#define _WX_MSW_TASKBARBUTTON_H_
#include "wx/defs.h"
#if wxUSE_TASKBARBUTTON
#include "wx/vector.h"
#include "wx/taskbarbutton.h"
class WXDLLIMPEXP_FWD_CORE wxITaskbarList3;
class WXDLLIMPEXP_CORE wxTaskBarButtonImpl : public wxTaskBarButton
{
public:
virtual ~wxTaskBarButtonImpl();
virtual void SetProgressRange(int range) override;
virtual void SetProgressValue(int value) override;
virtual void PulseProgress() override;
virtual void Show(bool show = true) override;
virtual void Hide() override;
virtual void SetThumbnailTooltip(const wxString& tooltip) override;
virtual void SetProgressState(wxTaskBarButtonState state) override;
virtual void SetOverlayIcon(const wxIcon& icon,
const wxString& description = wxString()) override;
virtual void SetThumbnailClip(const wxRect& rect) override;
virtual void SetThumbnailContents(const wxWindow *child) override;
virtual bool InsertThumbBarButton(size_t pos,
wxThumbBarButton *button) override;
virtual bool AppendThumbBarButton(wxThumbBarButton *button) override;
virtual bool AppendSeparatorInThumbBar() override;
virtual wxThumbBarButton* RemoveThumbBarButton(
wxThumbBarButton *button) override;
virtual wxThumbBarButton* RemoveThumbBarButton(int id) override;
wxThumbBarButton* GetThumbBarButtonByIndex(size_t index);
bool InitOrUpdateThumbBarButtons();
virtual void Realize() override;
private:
// This ctor is only used by wxTaskBarButton::New()
wxTaskBarButtonImpl(wxITaskbarList3* taskbarList, wxWindow* parent);
wxWindow* m_parent;
wxITaskbarList3 *m_taskbarList;
typedef wxVector<wxThumbBarButton*> wxThumbBarButtons;
wxThumbBarButtons m_thumbBarButtons;
int m_progressRange;
int m_progressValue;
wxTaskBarButtonState m_progressState;
wxString m_thumbnailTooltip;
wxIcon m_overlayIcon;
wxString m_overlayIconDescription;
wxRect m_thumbnailClipRect;
bool m_hasInitThumbnailToolbar;
friend wxTaskBarButton* wxTaskBarButton::New(wxWindow*);
wxDECLARE_NO_COPY_CLASS(wxTaskBarButtonImpl);
};
#endif // wxUSE_TASKBARBUTTON
#endif // _WX_MSW_TASKBARBUTTON_H_