Handle taskbar button recreation better in wxMSW.

Store the various parameters in wxTaskBarButton itself and reapply them when
the button is (re)created. This fixes problems with getting the "taskbar
button created" message twice, e.g. because Explorer was restarted, or getting
it too late, as now wxTaskBarButton can be configured both before and after
receiving this message.

Closes #16566.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-10-19 12:56:47 +00:00
parent b8f5856171
commit 870051c765
4 changed files with 49 additions and 17 deletions

View File

@@ -44,18 +44,25 @@ public:
virtual wxThumbBarButton* RemoveThumbBarButton(int id) wxOVERRIDE;
wxThumbBarButton* GetThumbBarButtonByIndex(size_t index);
bool InitOrUpdateThumbBarButtons();
virtual void Realize() wxOVERRIDE;
private:
// This ctor is only used by wxTaskBarButton::New()
wxTaskBarButtonImpl(wxITaskbarList3* taskbarList, wxWindow* parent);
WXHWND m_hwnd;
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*);