FTXUI
0.8.1
C++ functional terminal UI.
Tutorial
Examples
File List
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Pages
examples/component/resizable_split.cpp
#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(
int
argc,
const
char
* argv[]) {
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);
}
// 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.
ftxui::border
Element border(Element)
Draw a border around the element.
Definition:
border.cpp:138
ftxui::center
Element center(Element)
Center an element horizontally and vertically.
Definition:
composite_decorator.cpp:28
screen_interactive.hpp
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:296
ftxui
Definition:
captured_mouse.hpp:6
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:266
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:59
ftxui::ScreenInteractive::Fullscreen
static ScreenInteractive Fullscreen()
Definition:
screen_interactive.cpp:250
elements.hpp
captured_mouse.hpp
component.hpp
component_base.hpp
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:326
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:356
ftxui::text
Element text(std::wstring text)
Display a piece of unicode text.
Definition:
text.cpp:106