22 int direction_index = 0;
24 int justify_content_index = 0;
25 int align_items_index = 0;
26 int align_content_index = 0;
28 std::vector<std::string> directions = {
35 std::vector<std::string> wraps = {
41 std::vector<std::string> justify_content = {
42 "FlexStart",
"FlexEnd",
"Center",
"Stretch",
43 "SpaceBetween",
"SpaceAround",
"SpaceEvenly",
46 std::vector<std::string> align_items = {
53 std::vector<std::string> align_content = {
54 "FlexStart",
"FlexEnd",
"Center",
"Stretch",
55 "SpaceBetween",
"SpaceAround",
"SpaceEvenly",
58 auto radiobox_direction =
Radiobox(&directions, &direction_index);
59 auto radiobox_wrap =
Radiobox(&wraps, &wrap_index);
60 auto radiobox_justify_content =
61 Radiobox(&justify_content, &justify_content_index);
62 auto radiobox_align_items =
Radiobox(&align_items, &align_items_index);
63 auto radiobox_align_content =
Radiobox(&align_content, &align_content_index);
65 bool element_xflex_grow =
false;
66 bool element_yflex_grow =
false;
67 bool group_xflex_grow =
true;
68 bool group_yflex_grow =
true;
69 auto checkbox_element_xflex_grow =
70 Checkbox(
"element |= xflex_grow", &element_xflex_grow);
71 auto checkbox_element_yflex_grow =
72 Checkbox(
"element |= yflex_grow", &element_yflex_grow);
73 auto checkbox_group_xflex_grow =
74 Checkbox(
"group |= xflex_grow", &group_xflex_grow);
75 auto checkbox_group_yflex_grow =
76 Checkbox(
"group |= yflex_grow", &group_yflex_grow);
78 auto make_box = [&](
size_t dimx,
size_t dimy,
size_t index) {
79 std::string title = std::to_string(dimx) +
"x" + std::to_string(dimy);
80 auto element =
window(
text(title) | hcenter | bold,
81 text(std::to_string(index)) | hcenter | dim) |
85 if (element_xflex_grow) {
88 if (element_yflex_grow) {
94 auto content_renderer =
Renderer([&] {
124 if (!group_xflex_grow) {
127 if (!group_yflex_grow) {
131 group = group |
flex;
138 int space_right = 10;
139 int space_bottom = 1;
142 content_renderer, &space_right);
145 content_renderer, &space_bottom);
147 auto main_container = Container::Vertical({
148 Container::Horizontal({
151 Container::Vertical({
152 checkbox_element_xflex_grow,
153 checkbox_element_yflex_grow,
154 checkbox_group_xflex_grow,
155 checkbox_group_yflex_grow,
158 Container::Horizontal({
159 radiobox_justify_content,
160 radiobox_align_items,
161 radiobox_align_content,
166 auto main_renderer =
Renderer(main_container, [&] {
170 radiobox_direction->
Render()),
174 checkbox_element_xflex_grow->Render(),
175 checkbox_element_yflex_grow->Render(),
176 checkbox_group_xflex_grow->Render(),
177 checkbox_group_yflex_grow->Render(),
182 radiobox_justify_content->
Render()),
184 radiobox_align_items->
Render()),
186 radiobox_align_content->
Render()),
188 content_renderer->Render() | flex |
border,
192 screen.Loop(main_renderer);