Use shared_ptr instead of unique_ptr for elements.

This allow users to pass it into initializer list. Then clang-format
will produce 'acceptable' indentations.

This fixes:
https://github.com/ArthurSonzogni/FTXUI/issues/18
This commit is contained in:
ArthurSonzogni
2020-05-20 20:36:47 +02:00
parent 0aabc258a9
commit e1a71d5b9f
53 changed files with 520 additions and 523 deletions

View File

@@ -11,41 +11,33 @@
int main(int argc, const char* argv[]) {
using namespace ftxui;
// clang-format off
auto document =
hbox(
auto document = hbox({
window(text(L" main frame ") | hcenter,
vbox(
text(L"Line 1"),
text(L"Line 2"),
text(L"Line 3"),
vbox(
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6")
) | border,
hbox(
window(text(L"frame 2"),
vbox(
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6")
)
),
window(text(L"frame 3"),
vbox(
text(L"Line 7"),
text(L"Line 8"),
text(L"Line 9")
)
)
),
text(L"footer footer footer footer footer")
)
),
filler()
);
// clang-format on
vbox({
text(L"Line 1"),
text(L"Line 2"),
text(L"Line 3"),
vbox({
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6"),
}) | border,
hbox({
window(text(L"frame 2"), vbox({
text(L"Line 4"),
text(L"Line 5"),
text(L"Line 6"),
})),
window(text(L"frame 3"), vbox({
text(L"Line 7"),
text(L"Line 8"),
text(L"Line 9"),
})),
}),
text(L"footer footer footer footer footer"),
})),
filler(),
});
auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
Render(screen, document.get());
std::cout << screen.ToString() << std::endl;