ProgressBar::ProgressBar(const Rect& r, ValueType m) : Control(r, NoBackgroundTag()), GMRange<float>(m == 0 ? 1 : m, 0) { auto& pal(FetchGUIState().Colors); BorderStyle style; style.ActiveColor = pal[Styles::InactiveBorder]; yunseq( Background = SolidBrush(pal[Styles::Track]), ForeColor = pal[Styles::HotTracking], FetchEvent<Paint>(*this).Add(BorderBrush(style), BoundaryPriority) ); }
ProgressBar::ProgressBar(const Rect& r, ValueType m) : Control(r), GMRange<float>(m == 0 ? 1 : m, 0) { const auto invalidator([this]{ Invalidate(*this); }); auto& pal(FetchGUIState().Colors); BorderStyle style; style.ActiveColor = pal[Styles::InactiveBorder]; yunseq( Background = SolidBrush(pal[Styles::Track]), ForeColor = pal[Styles::HotTracking], FetchEvent<Paint>(*this).Add(BorderBrush(style), BoundaryPriority), FetchEvent<GotFocus>(*this) += invalidator, FetchEvent<LostFocus>(*this) += invalidator ); }