14bool GeneratorBool(
const char*& data,
size_t& size) {
18 auto out = bool(data[0] % 2);
24std::string GeneratorString(
const char*& data,
size_t& size) {
26 while (index < size && data[index]) {
29 auto out = std::string(data, data + index);
41int GeneratorInt(
const char*& data,
size_t& size) {
45 auto out = int(data[0]);
51float GeneratorFloat(
const char*& data,
size_t& size) {
55 auto out = float(data[0]) / 255.0f;
61Elements GeneratorElements(
const char*& data,
size_t& size,
int depth);
63Element GeneratorElement(
const char*& data,
size_t& size,
int depth) {
65 int value = GeneratorInt(data, size);
67 int base_choice =
value % 5;
68 if (base_choice == 0) {
69 return text(GeneratorString(data, size));
71 if (base_choice == 1) {
72 return paragraph(GeneratorString(data, size));
74 if (base_choice == 2) {
77 if (base_choice == 3) {
78 return gauge(GeneratorFloat(data, size));
83 constexpr int value_max = 20;
84 value = (
value % value_max + value_max) % value_max;
87 return text(GeneratorString(data, size));
89 return paragraph(GeneratorString(data, size));
93 return gauge(GeneratorFloat(data, size));
95 return border(GeneratorElement(data, size, depth));
99 return window(
text(GeneratorString(data, size)),
100 GeneratorElement(data, size, depth));
102 return vbox(GeneratorElements(data, size, depth));
104 return hbox(GeneratorElements(data, size, depth));
106 return dbox(GeneratorElements(data, size, depth));
108 return flexbox(GeneratorElements(data, size, depth));
110 return bold(GeneratorElement(data, size, depth));
112 return dim(GeneratorElement(data, size, depth));
114 return italic(GeneratorElement(data, size, depth));
116 return inverted(GeneratorElement(data, size, depth));
118 return underlined(GeneratorElement(data, size, depth));
120 return blink(GeneratorElement(data, size, depth));
124 return flex(GeneratorElement(data, size, depth));
132Elements GeneratorElements(
const char*& data,
size_t& size,
int depth) {
135 while (size && (GeneratorInt(data, size) % 2)) {
136 out.push_back(GeneratorElement(data, size, depth - 1));
149 int width = GeneratorInt(data, size);
150 int height = GeneratorInt(data, size);
152 width = (width % 200) + 1;
153 height = (height % 200) + 1;
156 auto element = GeneratorElement(data, size, depth);
159 Screen::Create(Dimension::Fixed(width), Dimension::Fixed(height));
int LLVMFuzzerTestOneInput(const char *data, size_t size)
Element window(Element title, Element content, BorderStyle border=ROUNDED)
Dibuja una ventana con un título y un borde alrededor del elemento.
Element text(std::string_view text)
Muestra un fragmento de texto Unicode codificado en UTF8.
Element flex(Element child)
Hace que un elemento hijo se expanda proporcionalmente al espacio restante en un contenedor.
Element bold(Element child)
Utiliza una fuente en negrita, para elementos con más énfasis.
Element borderRounded(Element child)
Dibuja un borde redondeado alrededor del elemento.
Element underlined(Element child)
Subraya el elemento dado.
Element inverted(Element child)
Agrega un filtro que invertirá los colores de primer plano y de fondo. colores.
Element strikethrough(Element child)
Aplica un tachado al texto.
Element italic(Element child)
Aplica un doble subrayado al texto.
Element dbox(Elements children_)
Apila varios elementos uno encima de otro.
Element paragraph(std::string_view the_text)
Devuelve un elemento que dibuja el párrafo en varias líneas.
Element separator()
Dibuja una separación vertical u horizontal entre otros dos elementos.
Element filler()
Un elemento que se expandirá proporcionalmente al espacio restante en un contenedor.
Element dim(Element child)
Usa una fuente clara para elementos con menos énfasis.
Element blink(Element child)
El texto dibujado alterna entre visible y oculto.
Element gauge(float progress)
Dibuja una barra de progreso de alta definición.
Element border(Element child)
Dibuja un borde alrededor del elemento.
Element vbox(Elements children)
Un contenedor que muestra elementos verticalmente uno por uno.
El espacio de nombres ftxui:: de FTXUI.
Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
Un contenedor que muestra elementos en filas/columnas y es capaz de ajustarse a la siguiente columna/...
std::shared_ptr< Node > Element
Element hbox(Elements children)
Un contenedor que muestra elementos horizontalmente uno por uno.
std::vector< Element > Elements
FTXUI_EXPORT(SCREEN) std FTXUI_EXPORT(SCREEN) std std::wstring to_wstring(T s)
void Render(Screen &screen, Node *node, Selection &selection)