From 16d3484788aa2064b211b4842708a013ef343e83 Mon Sep 17 00:00:00 2001 From: Pranav Srinivas Kumar Date: Mon, 6 Apr 2020 11:25:54 -0700 Subject: [PATCH] Fixed build --- demo/demo.cpp | 21 +++++++++++++++----- include/indicators/block_progress_bar.hpp | 10 ++++++++-- include/indicators/progress_bar.hpp | 4 +++- include/indicators/progress_spinner.hpp | 12 +++++++++--- samples/block_progress_bar.cpp | 6 +++++- samples/dynamic_progress.cpp | 24 +++++++++++++++++------ samples/multi_block_progress_bar.cpp | 12 +++++++++--- samples/multi_progress_bar.cpp | 12 +++++++++--- samples/multi_threaded_bar.cpp | 2 ++ samples/progress_bar_set_progress.cpp | 2 ++ samples/progress_bar_tick.cpp | 3 ++- samples/progress_spinner.cpp | 2 ++ samples/time_meter.cpp | 2 ++ 13 files changed, 87 insertions(+), 25 deletions(-) diff --git a/demo/demo.cpp b/demo/demo.cpp index 91d025b..eaa787c 100644 --- a/demo/demo.cpp +++ b/demo/demo.cpp @@ -17,7 +17,9 @@ int main() { option::Lead{"■"}, option::Remainder{" "}, option::End{" ]"}, - option::ForegroundColor{indicators::Color::yellow}}; + option::ForegroundColor{indicators::Color::yellow}, + option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; std::atomic index{0}; std::vector status_text = {"Rocket.exe is not responding", @@ -58,6 +60,7 @@ int main() { p.set_option(option::End{""}); p.set_option(option::ForegroundColor{indicators::Color::white}); p.set_option(option::ShowPercentage{false}); + p.set_option(option::FontStyles{std::vector{indicators::FontStyle::bold}}); auto job = [&p]() { while (true) { p.set_option( @@ -88,6 +91,7 @@ int main() { p.set_option(option::End{"]"}); p.set_option(option::PostfixText{"Getting started"}); p.set_option(option::ForegroundColor{indicators::Color::green}); + p.set_option(option::FontStyles{std::vector{indicators::FontStyle::bold}}); auto job = [&p]() { while (true) { auto ticks = p.current(); @@ -124,6 +128,7 @@ int main() { p4.set_option(option::ForegroundColor{indicators::Color::cyan}); p4.set_option(option::PostfixText{"Restoring system state"}); p4.set_option(option::ShowPercentage{false}); + p4.set_option(option::FontStyles{std::vector{indicators::FontStyle::bold}}); std::atomic index4{0}; auto job4 = [&p4, &index4, &lead_spinner]() { while (true) { @@ -163,7 +168,9 @@ int main() { option::Remainder{"-"}, option::End{"]"}, option::ForegroundColor{indicators::Color::white}, - option::PostfixText{"Reverting system restore"}}; + option::PostfixText{"Reverting system restore"}, + option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; p.set_progress(100); // TODO backwards as an option? std::atomic progress{100}; auto job = [&p, &progress]() { @@ -190,7 +197,8 @@ int main() { indicators::ProgressSpinner p{ option::PrefixText{""}, option::PostfixText{"Checking credentials"}, option::ForegroundColor{indicators::Color::yellow}, - option::SpinnerStates{std::vector{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}}}; + option::SpinnerStates{std::vector{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}}, + option::FontStyles{std::vector{indicators::FontStyle::bold}}}; auto job = [&p]() { while (true) { @@ -219,7 +227,8 @@ int main() { indicators::ProgressSpinner p{ option::PrefixText{" - "}, option::PostfixText{"Searching for the Moon"}, option::ForegroundColor{indicators::Color::white}, option::ShowPercentage{false}, - option::SpinnerStates{std::vector{"▖", "▘", "▝", "▗"}}}; + option::SpinnerStates{std::vector{"▖", "▘", "▝", "▗"}}, + option::FontStyles{std::vector{indicators::FontStyle::bold}}}; auto job = [&p]() { while (true) { auto current = p.current(); @@ -263,7 +272,9 @@ int main() { option::Remainder{" "}, option::End{"🌑"}, option::PostfixText{"Achieved low-Earth orbit"}, - option::ForegroundColor{indicators::Color::white}}; + option::ForegroundColor{indicators::Color::white}, + option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; std::vector ship_trail{"⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"}; std::atomic ship_trail_index{0}; auto job2 = [&p2, &ship_trail_index, &ship_trail]() { diff --git a/include/indicators/block_progress_bar.hpp b/include/indicators/block_progress_bar.hpp index 451eac4..c3108bd 100644 --- a/include/indicators/block_progress_bar.hpp +++ b/include/indicators/block_progress_bar.hpp @@ -46,7 +46,7 @@ class BlockProgressBar { using Settings = std::tuple; + option::SavedStartTime, option::MaxPostfixTextLen, option::FontStyles>; public: template ( option::SavedStartTime{false}, std::forward(args)...), details::get( - option::MaxPostfixTextLen{0}, std::forward(args)...)) {} + option::MaxPostfixTextLen{0}, std::forward(args)...), + details::get( + option::FontStyles{std::vector{}}, std::forward(args)...)) {} template void set_option(details::Setting &&setting) { @@ -190,6 +192,10 @@ private: if (get_value() != Color::unspecified) details::set_stream_color(std::cout, get_value()); + + for (auto &style : get_value()) + details::set_font_style(std::cout, style); + std::cout << get_value(); std::cout << get_value(); diff --git a/include/indicators/progress_bar.hpp b/include/indicators/progress_bar.hpp index 4e26175..11004b7 100644 --- a/include/indicators/progress_bar.hpp +++ b/include/indicators/progress_bar.hpp @@ -87,7 +87,9 @@ public: details::get( option::SavedStartTime{false}, std::forward(args)...), details::get( - option::ForegroundColor{Color::unspecified}, std::forward(args)...)) {} + option::ForegroundColor{Color::unspecified}, std::forward(args)...), + details::get( + option::FontStyles{std::vector{}}, std::forward(args)...)) {} template void set_option(details::Setting &&setting) { diff --git a/include/indicators/progress_spinner.hpp b/include/indicators/progress_spinner.hpp index c931449..62571d9 100644 --- a/include/indicators/progress_spinner.hpp +++ b/include/indicators/progress_spinner.hpp @@ -1,4 +1,4 @@ -/* + /* Activity Indicators for Modern C++ https://github.com/p-ranav/indicators @@ -49,7 +49,7 @@ class ProgressSpinner { std::tuple; + option::MaxPostfixTextLen, option::SpinnerStates, option::FontStyles>; public: template ( option::SpinnerStates{std::vector{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}}, - std::forward(args)...)) {} + std::forward(args)...), + details::get( + option::FontStyles{std::vector{}}, std::forward(args)...)) {} template void set_option(details::Setting &&setting) { @@ -184,6 +186,10 @@ private: if (get_value() != Color::unspecified) details::set_stream_color(std::cout, get_value()); + + for (auto &style : get_value()) + details::set_font_style(std::cout, style); + std::cout << get_value(); if (get_value()) std::cout << get_value() diff --git a/samples/block_progress_bar.cpp b/samples/block_progress_bar.cpp index 18357eb..d21a4d7 100644 --- a/samples/block_progress_bar.cpp +++ b/samples/block_progress_bar.cpp @@ -7,7 +7,11 @@ int main() { // Hide cursor std::cout << "\e[?25l"; - indicators::BlockProgressBar bar{indicators::option::BarWidth{80}}; + indicators::BlockProgressBar bar{ + indicators::option::BarWidth{80}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} + }; // Update bar state auto progress = 0.0f; diff --git a/samples/dynamic_progress.cpp b/samples/dynamic_progress.cpp index d16b04c..a5ccefb 100644 --- a/samples/dynamic_progress.cpp +++ b/samples/dynamic_progress.cpp @@ -6,27 +6,39 @@ int main() { ProgressBar bar1{option::BarWidth{50}, option::ForegroundColor{Color::red}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"5c90d4a2d1a8: Downloading "}}; + option::PrefixText{"5c90d4a2d1a8: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; ProgressBar bar2{option::BarWidth{50}, option::ForegroundColor{Color::yellow}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"22337bfd13a9: Downloading "}}; + option::PrefixText{"22337bfd13a9: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; ProgressBar bar3{option::BarWidth{50}, option::ForegroundColor{Color::green}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"10f26c680a34: Downloading "}}; + option::PrefixText{"10f26c680a34: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; ProgressBar bar4{option::BarWidth{50}, option::ForegroundColor{Color::white}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"6364e0d7a283: Downloading "}}; + option::PrefixText{"6364e0d7a283: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; ProgressBar bar5{option::BarWidth{50}, option::ForegroundColor{Color::blue}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"ff1356ba118b: Downloading "}}; + option::PrefixText{"ff1356ba118b: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; ProgressBar bar6{option::BarWidth{50}, option::ForegroundColor{Color::cyan}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"5a17453338b4: Downloading "}}; + option::PrefixText{"5a17453338b4: Downloading "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; std::cout << termcolor::bold << termcolor::white << "Pulling image foo:bar/baz\n"; diff --git a/samples/multi_block_progress_bar.cpp b/samples/multi_block_progress_bar.cpp index 9e0cc6e..0d7277c 100644 --- a/samples/multi_block_progress_bar.cpp +++ b/samples/multi_block_progress_bar.cpp @@ -5,15 +5,21 @@ int main() { using namespace indicators; BlockProgressBar bar1{option::BarWidth{50}, option::ForegroundColor{Color::yellow}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"Progress Bar #1 "}}; + option::PrefixText{"Progress Bar #1 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; BlockProgressBar bar2{option::BarWidth{50}, option::ForegroundColor{Color::cyan}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"Progress Bar #2 "}}; + option::PrefixText{"Progress Bar #2 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; BlockProgressBar bar3{option::BarWidth{50}, option::ForegroundColor{Color::red}, option::ShowElapsedTime{true}, option::ShowRemainingTime{true}, - option::PrefixText{"Progress Bar #3 "}}; + option::PrefixText{"Progress Bar #3 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; indicators::MultiProgress bars(bar1, bar2, bar3); diff --git a/samples/multi_progress_bar.cpp b/samples/multi_progress_bar.cpp index c022612..a457cab 100644 --- a/samples/multi_progress_bar.cpp +++ b/samples/multi_progress_bar.cpp @@ -12,7 +12,9 @@ int main() { indicators::option::ForegroundColor{indicators::Color::yellow}, indicators::option::ShowElapsedTime{true}, indicators::option::ShowRemainingTime{true}, - indicators::option::PrefixText{"Progress Bar #1 "}}; + indicators::option::PrefixText{"Progress Bar #1 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; indicators::ProgressBar bar2{indicators::option::BarWidth{50}, indicators::option::Start{"["}, @@ -23,7 +25,9 @@ int main() { indicators::option::ForegroundColor{indicators::Color::cyan}, indicators::option::ShowElapsedTime{true}, indicators::option::ShowRemainingTime{true}, - indicators::option::PrefixText{"Progress Bar #2 "}}; + indicators::option::PrefixText{"Progress Bar #2 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; indicators::ProgressBar bar3{indicators::option::BarWidth{50}, indicators::option::Start{"["}, @@ -34,7 +38,9 @@ int main() { indicators::option::ForegroundColor{indicators::Color::red}, indicators::option::ShowElapsedTime{true}, indicators::option::ShowRemainingTime{true}, - indicators::option::PrefixText{"Progress Bar #3 "}}; + indicators::option::PrefixText{"Progress Bar #3 "}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}}}; indicators::MultiProgress bars(bar1, bar2, bar3); diff --git a/samples/multi_threaded_bar.cpp b/samples/multi_threaded_bar.cpp index d5cc88c..d8b2c8e 100644 --- a/samples/multi_threaded_bar.cpp +++ b/samples/multi_threaded_bar.cpp @@ -11,6 +11,8 @@ int main() { indicators::option::Remainder{"-"}, indicators::option::End{" ]"}, indicators::option::ForegroundColor{indicators::Color::yellow}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} }; // As configured, the bar will look like this: diff --git a/samples/progress_bar_set_progress.cpp b/samples/progress_bar_set_progress.cpp index d8ea013..bbfe325 100644 --- a/samples/progress_bar_set_progress.cpp +++ b/samples/progress_bar_set_progress.cpp @@ -16,6 +16,8 @@ int main() { indicators::option::End{" ]"}, indicators::option::PostfixText{"Loading dependency 1/4"}, indicators::option::ForegroundColor{indicators::Color::cyan}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} }; // Update bar state diff --git a/samples/progress_bar_tick.cpp b/samples/progress_bar_tick.cpp index d75bbb8..c8a0e51 100644 --- a/samples/progress_bar_tick.cpp +++ b/samples/progress_bar_tick.cpp @@ -12,7 +12,8 @@ int main() { indicators::option::End{" ]"}, indicators::option::PostfixText{"Getting started"}, indicators::option::ForegroundColor{indicators::Color::green}, - indicators::option::FontStyles{std::vector{indicators::FontStyle::bold}} + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} }; // Update bar state diff --git a/samples/progress_spinner.cpp b/samples/progress_spinner.cpp index 8b694da..bbbe834 100644 --- a/samples/progress_spinner.cpp +++ b/samples/progress_spinner.cpp @@ -10,6 +10,8 @@ int main() { indicators::option::ForegroundColor{indicators::Color::yellow}, indicators::option::SpinnerStates{ std::vector{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} }; // Update spinner state diff --git a/samples/time_meter.cpp b/samples/time_meter.cpp index b19679e..e57c956 100644 --- a/samples/time_meter.cpp +++ b/samples/time_meter.cpp @@ -14,6 +14,8 @@ int main() { indicators::option::ForegroundColor{indicators::Color::yellow}, indicators::option::ShowElapsedTime{true}, indicators::option::ShowRemainingTime{true}, + indicators::option::FontStyles{ + std::vector{indicators::FontStyle::bold}} }; // Update bar state