FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
src/ftxui/component/collapsible.cpp
Go to the documentation of this file.
1// Copyright 2021 Arthur Sonzogni. Todos los derechos reservados.
2// El uso de este código fuente se rige por la licencia MIT que se puede encontrar en
3// el archivo LICENSE.
4#include <functional> // for function
5#include <utility> // for move
6
7#include "ftxui/component/component.hpp" // for Checkbox, Maybe, Make, Vertical, Collapsible
8#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
9#include "ftxui/component/component_options.hpp" // for CheckboxOption, EntryState
10#include "ftxui/dom/elements.hpp" // for operator|=, text, hbox, Element, bold, inverted
11#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef
12
13namespace ftxui {
14
15/// @brief Un componente plegable. Muestra una casilla de verificación con una flecha. Una vez
16/// activado, se muestra el componente hijo.
17/// @param label La etiqueta de la casilla de verificación.
18/// @param child El componente hijo a mostrar.
19/// @param show Mantiene el estado sobre si el componente hijo se muestra o no.
20///
21/// ### Ejemplo
22/// ```cpp
23/// auto component = Collapsible("Show details", details);
24/// ```
25///
26/// ### Salida
27/// ```
28///
29/// ▼ Show details
30/// <details component>
31/// ```
32// NOLINTNEXTLINE
34 class Impl : public ComponentBase {
35 public:
36 Impl(ConstStringRef label, Component child, Ref<bool> show) : show_(show) {
38 opt.transform = [](EntryState s) { // NOLINT
39 auto prefix = text(s.state ? "▼ " : "▶ "); // NOLINT
40 auto t = text(s.label);
41 if (s.active) {
42 t |= bold;
43 }
44 if (s.focused) {
45 t |= inverted;
46 }
47 return hbox({prefix, t});
48 };
49 Add(Container::Vertical({
50 Checkbox(std::move(label), show_.operator->(), opt),
51 Maybe(std::move(child), show_.operator->()),
52 }));
53 }
54 Ref<bool> show_;
55 };
56
57 return Make<Impl>(std::move(label), std::move(child), show);
58}
59
60} // namespace ftxui
Un adaptador. Posee o referencia una cadena constante. Para mayor comodidad, esta clase convierte múl...
Definition ref.hpp:94
Un adaptador. Posee o referencia un objeto mutable.
Definition ref.hpp:46
std::function< Element(const EntryState &)> transform
Implementa el renderizado de sí mismo como ftxui::Element. Implementa la navegación por teclado respo...
Opción para el componente Checkbox.
return hbox({ text(std::to_string(int(progress *100))+"% ")|size(WIDTH, EQUAL, 5), gauge(progress), })
El espacio de nombres ftxui:: de FTXUI.
Definition animation.hpp:10
std::shared_ptr< T > Make(Args &&... args)
Definition component.hpp:27
Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
Un componente plegable. Muestra una casilla de verificación con una flecha. Una vez activado,...
std::shared_ptr< ComponentBase > Component
Argumentos para la transformación de |ButtonOption|, |CheckboxOption|, |RadioboxOption|,...