2 #include "sf_windows.h"
8 const int taskbar::none = TBPF_NOPROGRESS;
9 const int taskbar::indeterminate = TBPF_INDETERMINATE;
10 const int taskbar::normal = TBPF_NORMAL;
11 const int taskbar::error = TBPF_ERROR;
12 const int taskbar::paused = TBPF_PAUSED;
16 typedef throw_if_err<sf::taskbar::exception> throw_if_err_;
25 throw_if_err_()(taskbar_.CreateInstance(CLSID_TaskbarList));
30 safe_release(taskbar_);
33 void overlay_icon(sf::base_window& w,HICON icon,std::wstring& description)
35 throw_if_err_()(taskbar_->SetOverlayIcon(reinterpret_cast<HWND>(w.raw_handle()),icon,description.c_str()));
38 void progress_state(sf::base_window& w,TBPFLAG state)
40 throw_if_err_()(taskbar_->SetProgressState(reinterpret_cast<HWND>(w.raw_handle()),state));
43 void progress_value(sf::base_window& w,boost::uint64_t completed, boost::uint64_t total)
45 throw_if_err_()(taskbar_->SetProgressValue(reinterpret_cast<HWND>(w.raw_handle()),completed,total));
49 _COM_SMARTPTR_TYPEDEF(ITaskbarList4,__uuidof(ITaskbarList4));
50 ITaskbarList4Ptr taskbar_;
54 taskbar::taskbar() : impl_(new sf::taskbar::impl()) {}
55 taskbar::~taskbar() { discard();};
57 void taskbar::create(){impl_->create();};
58 void taskbar::discard(){impl_->discard();};
59 void taskbar::overlay_icon(sf::base_window& w,HICON icon,std::wstring& description){impl_->overlay_icon(w,icon,description);};
60 void taskbar::progress_state(sf::base_window& w,int state){impl_->progress_state(w,(TBPFLAG)state);};
61 void taskbar::progress_value(sf::base_window& w,boost::uint64_t completed, boost::uint64_t total){impl_->progress_value(w,completed,total);};