FTXUI 7.0.3
C++ functional terminal UI.
Loading...
Searching...
No Matches
examples/component/resizable_split.cpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// Use of this source code is governed by the MIT license that can be found in
3// the LICENSE file.
4#include <memory> // for shared_ptr, allocator, __shared_ptr_access
5
6#include "ftxui/component/app.hpp" // for App
7#include "ftxui/component/component.hpp" // for Renderer, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
8#include "ftxui/component/component_base.hpp" // for ComponentBase
9#include "ftxui/dom/elements.hpp" // for Element, operator|, text, center, border
10
11using namespace ftxui;
12
13int main() {
14 auto screen = App::Fullscreen();
15
16 // État :
17 int left_size = 20;
18 int right_size = 20;
19 int top_size = 10;
20 int bottom_size = 10;
21
22 // Rendu :
23 auto RendererInfo = [](const std::string& name, int* size) {
24 return Renderer([name, size] {
25 return text(name + ": " + std::to_string(*size)) | center;
26 });
27 };
28 auto middle = Renderer([] { return text("Middle") | center; });
29 auto left = RendererInfo("Left", &left_size);
30 auto right = RendererInfo("Right", &right_size);
31 auto top = RendererInfo("Top", &top_size);
32 auto bottom = RendererInfo("Bottom", &bottom_size);
33
34 auto container = middle;
35 container = ResizableSplitLeft(left, container, &left_size);
36 container = ResizableSplitRight(right, container, &right_size);
37 container = ResizableSplitTop(top, container, &top_size);
38 container = ResizableSplitBottom(bottom, container, &bottom_size);
39
40 auto renderer =
41 Renderer(container, [&] { return container->Render() | border; });
42
43 screen.Loop(renderer);
44}
Component ResizableSplitTop(Component main, Component back, int *main_size)
Une division verticale entre deux composants, configurable en utilisant la souris.
Component Renderer(Component child, std::function< Element()>)
Retourne un nouveau Component, similaire à |child|, mais utilisant |render| comme événement Component...
Component ResizableSplitRight(Component main, Component back, int *main_size)
Une division horizontale entre deux composants, configurable en utilisant la souris.
Component ResizableSplitBottom(Component main, Component back, int *main_size)
Une division verticale entre deux composants, configurable en utilisant la souris.
Component ResizableSplitLeft(Component main, Component back, int *main_size)
Une division horizontale entre deux composants, configurable en utilisant la souris.
Element text(std::string_view text)
Affiche un morceau de texte unicode encodé en UTF8.
Decorator size(WidthOrHeight direction, Constraint constraint, int value)
Applique une contrainte sur la taille d'un élément.
Element center(Element child)
Centre un élément horizontalement et verticalement.
Element border(Element child)
Dessine une bordure autour de l'élément.
L'espace de noms FTXUI ftxui::
Definition animation.hpp:11
std::uint8_t top
Definition screen.cpp:148
std::uint8_t left
Definition screen.cpp:147
std::uint8_t right
Definition screen.cpp:149