FTXUI
6.1.9
C++ functional terminal UI.
Toggle main menu visibility
Loading...
Searching...
No Matches
examples/component/resizable_split.cpp
// Copyright 2020 Arthur Sonzogni. All rights reserved.
// Use of this source code is governed by the MIT license that can be found in
// the LICENSE file.
#include <memory>
// for shared_ptr, allocator, __shared_ptr_access
#include "
ftxui/component/captured_mouse.hpp
"
// for ftxui
#include "
ftxui/component/component.hpp
"
// for Renderer, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
#include "
ftxui/component/component_base.hpp
"
// for ComponentBase
#include "
ftxui/component/screen_interactive.hpp
"
// for ScreenInteractive
#include "
ftxui/dom/elements.hpp
"
// for Element, operator|, text, center, border
using namespace
ftxui
;
int
main() {
auto
screen =
ScreenInteractive::Fullscreen
();
auto
middle =
Renderer
([] {
return
text
(
"middle"
) |
center
; });
auto
left =
Renderer
([] {
return
text
(
"Left"
) |
center
; });
auto
right =
Renderer
([] {
return
text
(
"right"
) |
center
; });
auto
top =
Renderer
([] {
return
text
(
"top"
) |
center
; });
auto
bottom =
Renderer
([] {
return
text
(
"bottom"
) |
center
; });
int
left_size = 20;
int
right_size = 20;
int
top_size = 10;
int
bottom_size = 10;
auto
container = middle;
container =
ResizableSplitLeft
(left, container, &left_size);
container =
ResizableSplitRight
(right, container, &right_size);
container =
ResizableSplitTop
(top, container, &top_size);
container =
ResizableSplitBottom
(bottom, container, &bottom_size);
auto
renderer =
Renderer
(container, [&] {
return
container->Render() |
border
; });
screen.Loop(renderer);
}
captured_mouse.hpp
ftxui::ScreenInteractive::Fullscreen
static ScreenInteractive Fullscreen()
Definition
screen_interactive.cpp:374
component.hpp
component_base.hpp
elements.hpp
ftxui
Definition
animation.hpp:10
ftxui::ResizableSplitTop
Component ResizableSplitTop(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
Definition
resizable_split.cpp:283
ftxui::Renderer
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
Definition
renderer.cpp:61
ftxui::center
Element center(Element)
Center an element horizontally and vertically.
Definition
composite_decorator.cpp:31
ftxui::text
Element text(std::wstring text)
Display a piece of unicode text.
Definition
text.cpp:160
ftxui::ResizableSplitRight
Component ResizableSplitRight(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
Definition
resizable_split.cpp:249
ftxui::ResizableSplitBottom
Component ResizableSplitBottom(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
Definition
resizable_split.cpp:317
ftxui::ResizableSplitLeft
Component ResizableSplitLeft(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
Definition
resizable_split.cpp:215
ftxui::border
Element border(Element)
Draw a border around the element.
Definition
border.cpp:227
screen_interactive.hpp