Start the gauge widget.

This commit is contained in:
Arthur Sonzogni
2018-09-19 21:52:25 +02:00
parent 49aeaa49c5
commit e577d67f2a
17 changed files with 211 additions and 12 deletions

View File

@@ -7,17 +7,29 @@
namespace ftxui {
namespace dom {
using Child = std::unique_ptr<Node>;
using Element = std::unique_ptr<Node>;
using Children = std::vector<std::unique_ptr<Node>>;
// --- Layout ----
std::unique_ptr<Node> vbox(Children);
std::unique_ptr<Node> hbox(Children);
std::unique_ptr<Node> text(std::wstring text);
std::unique_ptr<Node> flex();
std::unique_ptr<Node> flex(Element);
// --- Widget --
std::unique_ptr<Node> text(std::wstring text);
std::unique_ptr<Node> separator();
std::unique_ptr<Node> gauge(float ratio);
// --- Decorator ---
std::unique_ptr<Node> hcenter(Element);
std::unique_ptr<Node> vcenter(Element);
std::unique_ptr<Node> center(Element);
template <class... Args>
std::vector<Child> unpack(Args... args) {
std::vector<Child> vec;
std::vector<Element> unpack(Args... args) {
std::vector<Element> vec;
(vec.push_back(std::forward<Args>(args)), ...);
return vec;
}

View File

@@ -3,8 +3,12 @@
#include <string>
#include <vector>
#include <memory>
namespace ftxui {
namespace dom {
class Node;
}
class Screen {
public:
@@ -16,6 +20,7 @@ class Screen {
size_t dimy() { return dimy_;}
static Screen WholeTerminal();
static Screen TerminalOutput(std::unique_ptr<dom::Node>& element);
private:
size_t dimx_;