Clean source code. Add to_wstring<T> T={int, float, double, ...}

This commit is contained in:
Arthur Sonzogni 2019-01-06 16:10:57 +01:00
parent c854d07d63
commit 805c9061e5
9 changed files with 52 additions and 71 deletions

View File

@ -10,7 +10,7 @@ int main(int argc, const char *argv[])
using namespace ftxui::dom;
auto document =
hbox(
window(hcenter(text(L" main frame ")),
window(text(L" main frame ") | hcenter,
vbox(
text(L"Line 1"),
text(L"Line 2"),

View File

@ -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);

View File

@ -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)

View File

@ -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

View File

@ -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));
}

View File

@ -18,7 +18,7 @@ TEST(GaugeTest, half) {
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ("█████▏▋ ", screen.ToString());
EXPECT_EQ("█████ ", screen.ToString());
//" ▏▎▍▌▊▉█";
}

View File

@ -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) {