IndeterminateTaskBar::IndeterminateTaskBar(bool EndFlash): EndFlash(EndFlash) { if (Taskbar().GetProgressState()!=TBPF_INDETERMINATE) { Taskbar().SetProgressState(TBPF_INDETERMINATE); } }
IndeterminateTaskBar::~IndeterminateTaskBar() { if (Taskbar().GetProgressState()!=TBPF_NOPROGRESS) { Taskbar().SetProgressState(TBPF_NOPROGRESS); } if(EndFlash) { Taskbar().Flash(); } }
string make_progressbar(size_t Size, int Percent, bool ShowPercent, bool PropagateToTasbkar) { if (ShowPercent) { Size = std::max<size_t>(0, Size - 5); // where 5 is len(" 100%") } string Str(Size, BoxSymbols[BS_X_B0]); const auto Pos = std::min(Percent, 100) * Size / 100; std::fill_n(Str.begin(), Pos, BoxSymbols[BS_X_DB]); if (ShowPercent) { std::wostringstream oss; oss << std::setw(3) << Percent; Str += L' ' + oss.str() + L'%'; } if (PropagateToTasbkar) { Taskbar().SetProgressValue(Percent, 100); } return Str; }