FTXUI
6.1.9
C++ functional terminal UI.
Toggle main menu visibility
Loading...
Searching...
No Matches
examples/dom/gauge.cpp
// Copyright 2020 Arthur Sonzogni. All rights reserved.
// Use of this source code is governed by the MIT license that can be found in
// the LICENSE file.
#include <chrono>
// for operator""s, chrono_literals
#include <
ftxui/dom/elements.hpp
>
// for text, gauge, operator|, flex, hbox, Element
#include <
ftxui/screen/screen.hpp
>
// for Screen
#include <iostream>
// for cout, endl, ostream
#include <string>
// for allocator, char_traits, operator+, operator<<, string, to_string, basic_string
#include <thread>
// for sleep_for
#include "
ftxui/dom/node.hpp
"
// for Render
#include "
ftxui/screen/color.hpp
"
// for ftxui
int
main() {
using namespace
ftxui
;
using namespace
std::chrono_literals;
std::string reset_position;
for
(
float
percentage = 0.0f; percentage <= 1.0f; percentage += 0.002f) {
std::string data_downloaded =
std::to_string(
int
(percentage * 5000)) +
"/5000"
;
auto
document =
hbox
({
text
(
"downloading:"
),
gauge
(percentage) |
flex
,
text
(
" "
+ data_downloaded),
});
auto
screen =
Screen
(100, 1);
Render
(screen, document);
std::cout << reset_position;
screen.Print();
reset_position = screen.ResetPosition();
std::this_thread::sleep_for(0.01s);
}
std::cout << std::endl;
}
ftxui::Screen
A rectangular grid of Pixel.
Definition
screen.hpp:27
color.hpp
elements.hpp
ftxui
Definition
animation.hpp:10
ftxui::flex
Element flex(Element)
Make a child element to expand proportionally to the space left in a container.
Definition
flex.cpp:123
ftxui::hbox
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition
hbox.cpp:94
ftxui::text
Element text(std::wstring text)
Display a piece of unicode text.
Definition
text.cpp:160
ftxui::Render
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition
node.cpp:88
ftxui::gauge
Element gauge(float progress)
Draw a high definition progress bar.
Definition
gauge.cpp:293
node.hpp
screen.hpp