mirror of
https://github.com/p-ranav/indicators.git
synced 2025-12-10 07:08:51 +08:00
Fixed build
This commit is contained in:
@@ -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>{indicators::FontStyle::bold}}};
|
||||
|
||||
std::atomic<size_t> index{0};
|
||||
std::vector<std::string> 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>{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>{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>{indicators::FontStyle::bold}});
|
||||
std::atomic<size_t> 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>{indicators::FontStyle::bold}}};
|
||||
p.set_progress(100); // TODO backwards as an option?
|
||||
std::atomic<size_t> 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<std::string>{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}}};
|
||||
option::SpinnerStates{std::vector<std::string>{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}},
|
||||
option::FontStyles{std::vector<indicators::FontStyle>{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<std::string>{"▖", "▘", "▝", "▗"}}};
|
||||
option::SpinnerStates{std::vector<std::string>{"▖", "▘", "▝", "▗"}},
|
||||
option::FontStyles{std::vector<indicators::FontStyle>{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>{indicators::FontStyle::bold}}};
|
||||
std::vector<std::string> ship_trail{"⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"};
|
||||
std::atomic<int> ship_trail_index{0};
|
||||
auto job2 = [&p2, &ship_trail_index, &ship_trail]() {
|
||||
|
||||
@@ -46,7 +46,7 @@ class BlockProgressBar {
|
||||
using Settings = std::tuple<option::ForegroundColor, option::BarWidth, option::Start, option::End,
|
||||
option::PrefixText, option::PostfixText, option::ShowPercentage,
|
||||
option::ShowElapsedTime, option::ShowRemainingTime, option::Completed,
|
||||
option::SavedStartTime, option::MaxPostfixTextLen>;
|
||||
option::SavedStartTime, option::MaxPostfixTextLen, option::FontStyles>;
|
||||
|
||||
public:
|
||||
template <typename... Args,
|
||||
@@ -77,7 +77,9 @@ public:
|
||||
details::get<details::ProgressBarOption::saved_start_time>(
|
||||
option::SavedStartTime{false}, std::forward<Args>(args)...),
|
||||
details::get<details::ProgressBarOption::max_postfix_text_len>(
|
||||
option::MaxPostfixTextLen{0}, std::forward<Args>(args)...)) {}
|
||||
option::MaxPostfixTextLen{0}, std::forward<Args>(args)...),
|
||||
details::get<details::ProgressBarOption::font_styles>(
|
||||
option::FontStyles{std::vector<FontStyle>{}}, std::forward<Args>(args)...)) {}
|
||||
|
||||
template <typename T, details::ProgressBarOption id>
|
||||
void set_option(details::Setting<T, id> &&setting) {
|
||||
@@ -190,6 +192,10 @@ private:
|
||||
|
||||
if (get_value<details::ProgressBarOption::foreground_color>() != Color::unspecified)
|
||||
details::set_stream_color(std::cout, get_value<details::ProgressBarOption::foreground_color>());
|
||||
|
||||
for (auto &style : get_value<details::ProgressBarOption::font_styles>())
|
||||
details::set_font_style(std::cout, style);
|
||||
|
||||
std::cout << get_value<details::ProgressBarOption::prefix_text>();
|
||||
std::cout << get_value<details::ProgressBarOption::start>();
|
||||
|
||||
|
||||
@@ -87,7 +87,9 @@ public:
|
||||
details::get<details::ProgressBarOption::saved_start_time>(
|
||||
option::SavedStartTime{false}, std::forward<Args>(args)...),
|
||||
details::get<details::ProgressBarOption::foreground_color>(
|
||||
option::ForegroundColor{Color::unspecified}, std::forward<Args>(args)...)) {}
|
||||
option::ForegroundColor{Color::unspecified}, std::forward<Args>(args)...),
|
||||
details::get<details::ProgressBarOption::font_styles>(
|
||||
option::FontStyles{std::vector<FontStyle>{}}, std::forward<Args>(args)...)) {}
|
||||
|
||||
template <typename T, details::ProgressBarOption id>
|
||||
void set_option(details::Setting<T, id> &&setting) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
Activity Indicators for Modern C++
|
||||
https://github.com/p-ranav/indicators
|
||||
|
||||
@@ -49,7 +49,7 @@ class ProgressSpinner {
|
||||
std::tuple<option::ForegroundColor, option::PrefixText, option::PostfixText,
|
||||
option::ShowPercentage, option::ShowElapsedTime, option::ShowRemainingTime,
|
||||
option::ShowSpinner, option::SavedStartTime, option::Completed,
|
||||
option::MaxPostfixTextLen, option::SpinnerStates>;
|
||||
option::MaxPostfixTextLen, option::SpinnerStates, option::FontStyles>;
|
||||
|
||||
public:
|
||||
template <typename... Args,
|
||||
@@ -80,7 +80,9 @@ public:
|
||||
details::get<details::ProgressBarOption::spinner_states>(
|
||||
option::SpinnerStates{std::vector<std::string>{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴",
|
||||
"⠦", "⠧", "⠇", "⠏"}},
|
||||
std::forward<Args>(args)...)) {}
|
||||
std::forward<Args>(args)...),
|
||||
details::get<details::ProgressBarOption::font_styles>(
|
||||
option::FontStyles{std::vector<FontStyle>{}}, std::forward<Args>(args)...)) {}
|
||||
|
||||
template <typename T, details::ProgressBarOption id>
|
||||
void set_option(details::Setting<T, id> &&setting) {
|
||||
@@ -184,6 +186,10 @@ private:
|
||||
|
||||
if (get_value<details::ProgressBarOption::foreground_color>() != Color::unspecified)
|
||||
details::set_stream_color(std::cout, get_value<details::ProgressBarOption::foreground_color>());
|
||||
|
||||
for (auto &style : get_value<details::ProgressBarOption::font_styles>())
|
||||
details::set_font_style(std::cout, style);
|
||||
|
||||
std::cout << get_value<details::ProgressBarOption::prefix_text>();
|
||||
if (get_value<details::ProgressBarOption::spinner_show>())
|
||||
std::cout << get_value<details::ProgressBarOption::spinner_states>()
|
||||
|
||||
@@ -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>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// Update bar state
|
||||
auto progress = 0.0f;
|
||||
|
||||
@@ -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>{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>{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>{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>{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>{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>{indicators::FontStyle::bold}}};
|
||||
|
||||
std::cout << termcolor::bold << termcolor::white << "Pulling image foo:bar/baz\n";
|
||||
|
||||
|
||||
@@ -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>{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>{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>{indicators::FontStyle::bold}}};
|
||||
|
||||
indicators::MultiProgress<indicators::BlockProgressBar, 3> bars(bar1, bar2, bar3);
|
||||
|
||||
|
||||
@@ -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>{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>{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>{indicators::FontStyle::bold}}};
|
||||
|
||||
indicators::MultiProgress<indicators::ProgressBar, 3> bars(bar1, bar2, bar3);
|
||||
|
||||
|
||||
@@ -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>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// As configured, the bar will look like this:
|
||||
|
||||
@@ -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>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// Update bar state
|
||||
|
||||
@@ -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>{indicators::FontStyle::bold}}
|
||||
indicators::option::FontStyles{
|
||||
std::vector<indicators::FontStyle>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// Update bar state
|
||||
|
||||
@@ -10,6 +10,8 @@ int main() {
|
||||
indicators::option::ForegroundColor{indicators::Color::yellow},
|
||||
indicators::option::SpinnerStates{
|
||||
std::vector<std::string>{"⠈", "⠐", "⠠", "⢀", "⡀", "⠄", "⠂", "⠁"}},
|
||||
indicators::option::FontStyles{
|
||||
std::vector<indicators::FontStyle>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// Update spinner state
|
||||
|
||||
@@ -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>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
// Update bar state
|
||||
|
||||
Reference in New Issue
Block a user