Implement a lot of new features.

This commit deserve to be cut into at least 8 sub commit. Sorry, I
acknowledge this is bad... Here are the new features:

 * dom decorator: bold, dim, underlined, inverted.
 * component mechanism
 * components
   * menu
   * toogle
This commit is contained in:
Arthur Sonzogni
2018-10-09 19:06:03 +02:00
parent dd92b89611
commit 711b71688e
63 changed files with 1590 additions and 260 deletions

View File

@@ -2,33 +2,47 @@
#include <iostream>
#include <thread>
#include "ftxui/core/screen.hpp"
#include "ftxui/core/dom/elements.hpp"
#include "ftxui/screen.hpp"
#include "ftxui/dom/elements.hpp"
int main(int argc, const char *argv[])
{
using namespace ftxui::dom;
auto document =
hbox(
frame(
vbox(
text(L"Line 1"),
text(L"Line 2"),
text(L"Line 3"),
frame(
vbox(
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6")
)
),
text(L"Line 7"),
text(L"Line 8"),
text(L"Line 9")
)
),
flex()
);
auto document =
hbox(
frame(hcenter(text(L" main frame ")),
vbox(
text(L"Line 1"),
text(L"Line 2"),
text(L"Line 3"),
frame(
vbox(
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6")
)
),
hbox(
frame(text(L"frame 2"),
vbox(
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6")
)
),
frame(text(L"frame 3"),
vbox(
text(L"Line 7"),
text(L"Line 8"),
text(L"Line 9")
)
)
),
text(L"footer footer footer footer footer")
)
),
flex()
);
auto screen = ftxui::Screen::TerminalOutput(document);
Render(screen, document.get());
std::cout << screen.ToString() << std::endl;