mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-26 04:31:34 +08:00
Clean source code. Add to_wstring<T> T={int, float, double, ...}
This commit is contained in:
parent
c854d07d63
commit
805c9061e5
@ -8,41 +8,41 @@
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
using namespace ftxui::dom;
|
||||
auto document =
|
||||
hbox(
|
||||
window(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(
|
||||
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 document =
|
||||
hbox(
|
||||
window(text(L" main frame ") | hcenter,
|
||||
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(
|
||||
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 = ftxui::Screen::TerminalOutput(document);
|
||||
Render(screen, document.get());
|
||||
std::cout << screen.ToString() << std::endl;
|
||||
|
@ -44,7 +44,7 @@ int main(int argc, const char *argv[])
|
||||
int nb_done = 0;
|
||||
|
||||
auto to_text = [](int number) {
|
||||
std::wstring t = to_wstring(std::to_string(number));
|
||||
std::wstring t = to_wstring(number);
|
||||
while(t.size() < 3)
|
||||
t = L" " + t;
|
||||
return text(t);
|
||||
|
@ -23,7 +23,7 @@ class Input : public Component {
|
||||
|
||||
// Component implementation.
|
||||
dom::Element Render() override;
|
||||
bool OnEvent(Event) override;
|
||||
bool OnEvent(Event) override;
|
||||
|
||||
private:
|
||||
int cursor_position = 0;
|
||||
|
@ -27,7 +27,7 @@ class Menu : public Component {
|
||||
|
||||
// Component implementation.
|
||||
dom::Element Render() override;
|
||||
bool OnEvent(Event) override;
|
||||
bool OnEvent(Event) override;
|
||||
};
|
||||
|
||||
} // namespace component
|
||||
|
@ -52,20 +52,8 @@ Element nothing(Element element);
|
||||
Element operator|(Element, Decorator);
|
||||
Decorator operator|(Decorator, Decorator);
|
||||
|
||||
// Make container able to take several children.
|
||||
template <class... Args>
|
||||
Children unpack(Args... args) {
|
||||
Children vec;
|
||||
(vec.push_back(std::forward<Args>(args)), ...);
|
||||
return vec;
|
||||
}
|
||||
|
||||
#define TAKE_ANY_ARGS(container) \
|
||||
template <class... Args> \
|
||||
Element container(Args... children) { \
|
||||
return container(unpack(std::forward<Args>(children)...)); \
|
||||
} \
|
||||
|
||||
// Make container able to take any number of children as input.
|
||||
#include "take_any_args.hpp"
|
||||
TAKE_ANY_ARGS(vbox)
|
||||
TAKE_ANY_ARGS(hbox)
|
||||
TAKE_ANY_ARGS(dbox)
|
||||
|
@ -4,23 +4,11 @@
|
||||
namespace ftxui {
|
||||
|
||||
struct Requirement {
|
||||
// Minimal dimensions.
|
||||
struct {
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
} min;
|
||||
// The required size to fully draw the element.
|
||||
struct { int x = 0; int y = 0; } min;
|
||||
|
||||
// Maximal dimensions.
|
||||
struct {
|
||||
int x = -1;
|
||||
int y = -1;
|
||||
} max;
|
||||
|
||||
// Flex.
|
||||
struct {
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
} flex;
|
||||
// How much flexibility is given to the component.
|
||||
struct { int x = 0; int y = 0; } flex;
|
||||
};
|
||||
|
||||
}; // namespace ftxui
|
||||
|
@ -2,3 +2,8 @@
|
||||
|
||||
std::string to_string(const std::wstring& s);
|
||||
std::wstring to_wstring(const std::string& s);
|
||||
|
||||
template<typename T>
|
||||
std::wstring to_wstring(T s) {
|
||||
return to_wstring(std::to_string(s));
|
||||
}
|
||||
|
@ -18,8 +18,8 @@ TEST(GaugeTest, half) {
|
||||
Screen screen(11,1);
|
||||
Render(screen, root.get());
|
||||
|
||||
EXPECT_EQ("█████▏▋ ", screen.ToString());
|
||||
//" ▏▎▍▌▊▉█";
|
||||
EXPECT_EQ("█████▍ ", screen.ToString());
|
||||
//" ▏▎▍▌▊▉█";
|
||||
}
|
||||
|
||||
TEST(GaugeTest, one) {
|
||||
|
@ -10,7 +10,7 @@ TEST(VBoxTest, ScreenSmaller1) {
|
||||
Screen screen(6, 1);
|
||||
Render(screen, root.get());
|
||||
|
||||
EXPECT_EQ("text_1", screen.ToString());
|
||||
EXPECT_EQ("text_2", screen.ToString());
|
||||
}
|
||||
|
||||
TEST(VBoxTest, ScreenFit) {
|
||||
|
Loading…
Reference in New Issue
Block a user