mirror of
https://github.com/p-ranav/indicators.git
synced 2025-12-16 04:18:51 +08:00
Improved support for unicode including indeterminate progress bar. Updated unicode sample
This commit is contained in:
@@ -1,14 +1,21 @@
|
||||
#include <chrono>
|
||||
#include <indicators/progress_bar.hpp>
|
||||
#include <indicators/indeterminate_progress_bar.hpp>
|
||||
#include <indicators/cursor_control.hpp>
|
||||
#include <thread>
|
||||
|
||||
int main() {
|
||||
|
||||
indicators::show_console_cursor(false);
|
||||
std::cout << "\n\n";
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
|
||||
|
||||
{
|
||||
// Plain old ASCII
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"="},
|
||||
indicators::option::Lead{">"},
|
||||
indicators::option::Remainder{" "},
|
||||
@@ -32,7 +39,7 @@ int main() {
|
||||
// Unicode
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"驚くばかり"},
|
||||
indicators::option::Lead{">"},
|
||||
indicators::option::Remainder{" "},
|
||||
@@ -56,7 +63,7 @@ int main() {
|
||||
// Russian
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"Потрясающие"},
|
||||
indicators::option::Remainder{" "},
|
||||
indicators::option::End{" ]"},
|
||||
@@ -79,7 +86,7 @@ int main() {
|
||||
// Greek
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"Φοβερός"},
|
||||
indicators::option::Remainder{" "},
|
||||
indicators::option::End{" ]"},
|
||||
@@ -102,7 +109,7 @@ int main() {
|
||||
// Chinese
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"太棒了"},
|
||||
indicators::option::Remainder{" "},
|
||||
indicators::option::End{" ]"},
|
||||
@@ -125,7 +132,7 @@ int main() {
|
||||
// Emojis
|
||||
indicators::ProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{"["},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"🔥"},
|
||||
indicators::option::Lead{"🔥"},
|
||||
indicators::option::Remainder{" "},
|
||||
@@ -145,5 +152,37 @@ int main() {
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// Indeterminate progress bar
|
||||
indicators::IndeterminateProgressBar bar{
|
||||
indicators::option::BarWidth{50},
|
||||
indicators::option::Start{" ["},
|
||||
indicators::option::Fill{"✯"},
|
||||
indicators::option::Lead{"載入中"},
|
||||
indicators::option::End{" ]"},
|
||||
indicators::option::PostfixText{"Loading Progress Bar"},
|
||||
indicators::option::ForegroundColor{indicators::Color::yellow},
|
||||
indicators::option::FontStyles{
|
||||
std::vector<indicators::FontStyle>{indicators::FontStyle::bold}}
|
||||
};
|
||||
|
||||
auto job = [&bar]() {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10000));
|
||||
bar.mark_as_completed();
|
||||
};
|
||||
std::thread job_completion_thread(job);
|
||||
|
||||
// Update bar state
|
||||
while (!bar.is_completed()) {
|
||||
bar.tick();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
}
|
||||
|
||||
job_completion_thread.join();
|
||||
}
|
||||
|
||||
indicators::show_console_cursor(true);
|
||||
std::cout << "\n\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user