component.hpp
functional
memory
utility
ftxui/component/component_base.hpp
ftxui/component/component_options.hpp
ftxui/dom/elements.hpp
ftxui/util/ref.hpp
src/ftxui/component/button.cpp
src/ftxui/component/catch_event.cpp
src/ftxui/component/checkbox.cpp
src/ftxui/component/collapsible.cpp
src/ftxui/component/component.cpp
src/ftxui/component/component_fuzzer.cpp
src/ftxui/component/container.cpp
src/ftxui/component/dropdown.cpp
src/ftxui/component/hoverable.cpp
src/ftxui/component/input.cpp
src/ftxui/component/maybe.cpp
src/ftxui/component/menu.cpp
src/ftxui/component/modal.cpp
src/ftxui/component/radiobox.cpp
src/ftxui/component/renderer.cpp
src/ftxui/component/resizable_split.cpp
src/ftxui/component/slider.cpp
src/ftxui/component/util.cpp
src/ftxui/component/window.cpp
ftxui/component/animation.hpp
ftxui/component/captured_mouse.hpp
include/ftxui/component/component.hpp
ftxui/component/component_base.hpp
ftxui/component/component_options.hpp
ftxui/dom/canvas.hpp
ftxui/dom/deprecated.hpp
ftxui/dom/direction.hpp
ftxui/dom/elements.hpp
ftxui/dom/flexbox_config.hpp
ftxui/dom/linear_gradient.hpp
ftxui/dom/node.hpp
ftxui/dom/requirement.hpp
ftxui/dom/selection.hpp
ftxui/screen/box.hpp
ftxui/screen/color.hpp
ftxui/screen/image.hpp
ftxui/screen/pixel.hpp
ftxui/screen/screen.hpp
ftxui/screen/string.hpp
ftxui/screen/terminal.hpp
ftxui/util/autoreset.hpp
ftxui/util/ref.hpp
chrono
cstddef
cstdint
ftxui/dom/take_any_args.hpp
functional
memory
optional
sstream
string
unordered_map
utility
variant
vector
include/ftxui/component/component.hpp
src/ftxui/component/button.cpp
src/ftxui/component/catch_event.cpp
src/ftxui/component/checkbox.cpp
src/ftxui/component/collapsible.cpp
src/ftxui/component/component.cpp
src/ftxui/component/component_fuzzer.cpp
src/ftxui/component/container.cpp
src/ftxui/component/dropdown.cpp
src/ftxui/component/hoverable.cpp
src/ftxui/component/input.cpp
src/ftxui/component/maybe.cpp
src/ftxui/component/menu.cpp
src/ftxui/component/modal.cpp
src/ftxui/component/radiobox.cpp
src/ftxui/component/renderer.cpp
src/ftxui/component/resizable_split.cpp
src/ftxui/component/slider.cpp
src/ftxui/component/util.cpp
src/ftxui/component/window.cpp
ftxui
ftxui::Container

    //Copyright2021ArthurSonzogni.Allrightsreserved.
    //UseofthissourcecodeisgovernedbytheMITlicensethatcanbefoundin
    //theLICENSEfile.
    #ifndefFTXUI_COMPONENT_HPP
    #defineFTXUI_COMPONENT_HPP

    #include<functional>//forfunction
    #include<memory>//formake_shared,shared_ptr
    #include<utility>//forforward

    #include"ftxui/component/component_base.hpp"//forComponent,Components
    #include"ftxui/component/component_options.hpp"//forButtonOption,CheckboxOption,MenuOption
    #include"ftxui/dom/elements.hpp"//forElement
    #include"ftxui/util/ref.hpp"//forConstRef,Ref,ConstStringRef,ConstStringListRef,StringRef

    namespaceftxui{
    structButtonOption;
    structCheckboxOption;
    structEvent;
    structInputOption;
    structMenuOption;
    structRadioboxOption;
    structMenuEntryOption;

    template<classT,class...Args>
    std::shared_ptr<T>Make(Args&&...args){
    returnstd::make_shared<T>(std::forward<Args>(args)...);
    }

    //Pipeoperatortodecoratecomponents.
    usingComponentDecorator=std::function<Component(Component)>;
    usingElementDecorator=std::function<Element(Element)>;
    Componentoperator|(Componentcomponent,ComponentDecoratordecorator);
    Componentoperator|(Componentcomponent,ElementDecoratordecorator);
    Component&operator|=(Component&component,ComponentDecoratordecorator);
    Component&operator|=(Component&component,ElementDecoratordecorator);

    namespaceContainer{
    ComponentVertical(Componentschildren);
    ComponentVertical(Componentschildren,int*selector);
    ComponentHorizontal(Componentschildren);
    ComponentHorizontal(Componentschildren,int*selector);
    ComponentTab(Componentschildren,int*selector);
    ComponentStacked(Componentschildren);
    }//namespaceContainer

    ComponentButton(ButtonOptionoptions);
    ComponentButton(ConstStringReflabel,
    std::function<void()>on_click,
    ButtonOptionoptions=ButtonOption::Simple());

    ComponentCheckbox(CheckboxOptionoptions);
    ComponentCheckbox(ConstStringReflabel,
    bool*checked,
    CheckboxOptionoptions=CheckboxOption::Simple());

    ComponentInput(InputOptionoptions={});
    ComponentInput(StringRefcontent,InputOptionoptions={});
    ComponentInput(StringRefcontent,
    StringRefplaceholder,
    InputOptionoptions={});

    ComponentMenu(MenuOptionoptions);
    ComponentMenu(ConstStringListRefentries,
    int*selected_,
    MenuOptionoptions=MenuOption::Vertical());
    ComponentMenuEntry(MenuEntryOptionoptions);
    ComponentMenuEntry(ConstStringReflabel,MenuEntryOptionoptions={});

    ComponentRadiobox(RadioboxOptionoptions);
    ComponentRadiobox(ConstStringListRefentries,
    int*selected_,
    RadioboxOptionoptions={});

    ComponentDropdown(ConstStringListRefentries,int*selected);
    ComponentDropdown(DropdownOptionoptions);

    ComponentToggle(ConstStringListRefentries,int*selected);

    //Generalsliderconstructor:
    template<typenameT>
    ComponentSlider(SliderOption<T>options);

    //Shorthandwithoutthe`SliderOption`constructor:
    ComponentSlider(ConstStringReflabel,
    Ref<int>value,
    ConstRef<int>min=0,
    ConstRef<int>max=100,
    ConstRef<int>increment=5);
    ComponentSlider(ConstStringReflabel,
    Ref<float>value,
    ConstRef<float>min=0.f,
    ConstRef<float>max=100.f,
    ConstRef<float>increment=5.f);
    ComponentSlider(ConstStringReflabel,
    Ref<long>value,
    ConstRef<long>min=0L,
    ConstRef<long>max=100L,
    ConstRef<long>increment=5L);

    ComponentResizableSplit(ResizableSplitOptionoptions);
    ComponentResizableSplitLeft(Componentmain,Componentback,int*main_size);
    ComponentResizableSplitRight(Componentmain,Componentback,int*main_size);
    ComponentResizableSplitTop(Componentmain,Componentback,int*main_size);
    ComponentResizableSplitBottom(Componentmain,Componentback,int*main_size);

    ComponentRenderer(Componentchild,std::function<Element()>);
    ComponentRenderer(std::function<Element()>);
    ComponentRenderer(std::function<Element(bool/*focused*/)>);
    ComponentDecoratorRenderer(ElementDecorator);

    ComponentCatchEvent(Componentchild,std::function<bool(Event)>);
    ComponentDecoratorCatchEvent(std::function<bool(Event)>on_event);

    ComponentMaybe(Component,constbool*show);
    ComponentMaybe(Component,std::function<bool()>);
    ComponentDecoratorMaybe(constbool*show);
    ComponentDecoratorMaybe(std::function<bool()>);

    ComponentModal(Componentmain,Componentmodal,constbool*show_modal);
    ComponentDecoratorModal(Componentmodal,constbool*show_modal);

    ComponentCollapsible(ConstStringReflabel,
    Componentchild,
    Ref<bool>show=false);

    ComponentHoverable(Componentcomponent,bool*hover);
    ComponentHoverable(Componentcomponent,
    std::function<void()>on_enter,
    std::function<void()>on_leave);
    ComponentHoverable(Componentcomponent,//
    std::function<void(bool)>on_change);
    ComponentDecoratorHoverable(bool*hover);
    ComponentDecoratorHoverable(std::function<void()>on_enter,
    std::function<void()>on_leave);
    ComponentDecoratorHoverable(std::function<void(bool)>on_change);

    ComponentWindow(WindowOptionsoption);

    }//namespaceftxui

    #endif/*endofincludeguard:FTXUI_COMPONENT_HPP*/