elements.hpp
functional
memory
ftxui/dom/canvas.hpp
ftxui/dom/direction.hpp
ftxui/dom/flexbox_config.hpp
ftxui/dom/linear_gradient.hpp
ftxui/dom/node.hpp
ftxui/screen/box.hpp
ftxui/screen/color.hpp
ftxui/screen/terminal.hpp
ftxui/util/ref.hpp
ftxui/dom/take_any_args.hpp
ftxui/dom/deprecated.hpp
include/ftxui/component/component.hpp
include/ftxui/component/component_base.hpp
include/ftxui/component/component_options.hpp
include/ftxui/dom/table.hpp
src/ftxui/component/button.cpp
src/ftxui/component/checkbox.cpp
src/ftxui/component/collapsible.cpp
src/ftxui/component/component.cpp
src/ftxui/component/component_options.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/window.cpp
src/ftxui/dom/automerge.cpp
src/ftxui/dom/blink.cpp
src/ftxui/dom/bold.cpp
src/ftxui/dom/border.cpp
src/ftxui/dom/canvas.cpp
src/ftxui/dom/clear_under.cpp
src/ftxui/dom/color.cpp
src/ftxui/dom/composite_decorator.cpp
src/ftxui/dom/dbox.cpp
src/ftxui/dom/dim.cpp
src/ftxui/dom/flex.cpp
src/ftxui/dom/flexbox.cpp
src/ftxui/dom/focus.cpp
src/ftxui/dom/frame.cpp
src/ftxui/dom/gauge.cpp
src/ftxui/dom/graph.cpp
src/ftxui/dom/gridbox.cpp
src/ftxui/dom/hbox.cpp
src/ftxui/dom/hyperlink.cpp
src/ftxui/dom/inverted.cpp
src/ftxui/dom/italic.cpp
src/ftxui/dom/linear_gradient.cpp
src/ftxui/dom/node_decorator.hpp
src/ftxui/dom/paragraph.cpp
src/ftxui/dom/reflect.cpp
src/ftxui/dom/scroll_indicator.cpp
src/ftxui/dom/selection_style.cpp
src/ftxui/dom/separator.cpp
src/ftxui/dom/size.cpp
src/ftxui/dom/spinner.cpp
src/ftxui/dom/strikethrough.cpp
src/ftxui/dom/table.cpp
src/ftxui/dom/text.cpp
src/ftxui/dom/underlined.cpp
src/ftxui/dom/underlined_double.cpp
src/ftxui/dom/util.cpp
src/ftxui/dom/vbox.cpp
ftxui/dom/canvas.hpp
ftxui/dom/deprecated.hpp
ftxui/dom/direction.hpp
include/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
cstddef
cstdint
ftxui/dom/take_any_args.hpp
functional
memory
optional
sstream
string
unordered_map
utility
variant
vector
include/ftxui/component/component.hpp
include/ftxui/component/component_base.hpp
include/ftxui/component/component_options.hpp
include/ftxui/component/loop.hpp
include/ftxui/dom/elements.hpp
include/ftxui/dom/table.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/component_options.cpp
src/ftxui/component/container.cpp
src/ftxui/component/dropdown.cpp
src/ftxui/component/hoverable.cpp
src/ftxui/component/input.cpp
src/ftxui/component/loop.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/screen_interactive.cpp
src/ftxui/component/slider.cpp
src/ftxui/component/util.cpp
src/ftxui/component/window.cpp
src/ftxui/dom/automerge.cpp
src/ftxui/dom/blink.cpp
src/ftxui/dom/bold.cpp
src/ftxui/dom/border.cpp
src/ftxui/dom/canvas.cpp
src/ftxui/dom/clear_under.cpp
src/ftxui/dom/color.cpp
src/ftxui/dom/composite_decorator.cpp
src/ftxui/dom/dbox.cpp
src/ftxui/dom/dim.cpp
src/ftxui/dom/flex.cpp
src/ftxui/dom/flexbox.cpp
src/ftxui/dom/focus.cpp
src/ftxui/dom/frame.cpp
src/ftxui/dom/gauge.cpp
src/ftxui/dom/graph.cpp
src/ftxui/dom/gridbox.cpp
src/ftxui/dom/hbox.cpp
src/ftxui/dom/hyperlink.cpp
src/ftxui/dom/inverted.cpp
src/ftxui/dom/italic.cpp
src/ftxui/dom/linear_gradient.cpp
src/ftxui/dom/node_decorator.cpp
src/ftxui/dom/node_decorator.hpp
src/ftxui/dom/paragraph.cpp
src/ftxui/dom/reflect.cpp
src/ftxui/dom/scroll_indicator.cpp
src/ftxui/dom/selection.cpp
src/ftxui/dom/selection_style.cpp
src/ftxui/dom/separator.cpp
src/ftxui/dom/size.cpp
src/ftxui/dom/spinner.cpp
src/ftxui/dom/strikethrough.cpp
src/ftxui/dom/table.cpp
src/ftxui/dom/text.cpp
src/ftxui/dom/underlined.cpp
src/ftxui/dom/underlined_double.cpp
src/ftxui/dom/util.cpp
src/ftxui/dom/vbox.cpp
ftxui
ftxui::Dimension

    //Copyright2020ArthurSonzogni.Allrightsreserved.
    //UseofthissourcecodeisgovernedbytheMITlicensethatcanbefoundin
    //theLICENSEfile.
    #ifndefFTXUI_DOM_ELEMENTS_HPP
    #defineFTXUI_DOM_ELEMENTS_HPP

    #include<functional>
    #include<memory>

    #include"ftxui/dom/canvas.hpp"
    #include"ftxui/dom/direction.hpp"
    #include"ftxui/dom/flexbox_config.hpp"
    #include"ftxui/dom/linear_gradient.hpp"
    #include"ftxui/dom/node.hpp"
    #include"ftxui/screen/box.hpp"
    #include"ftxui/screen/color.hpp"
    #include"ftxui/screen/terminal.hpp"
    #include"ftxui/util/ref.hpp"

    namespaceftxui{
    classNode;
    usingElement=std::shared_ptr<Node>;
    usingElements=std::vector<Element>;
    usingDecorator=std::function<Element(Element)>;
    usingGraphFunction=std::function<std::vector<int>(int,int)>;

    enumBorderStyle{
    LIGHT,
    DASHED,
    HEAVY,
    DOUBLE,
    ROUNDED,
    EMPTY,
    };

    //Pipeelementsintodecoratortogethers.
    //Forinstancethenextlinesareequivalents:
    //->text("ftxui")|bold|underlined
    //->underlined(bold(text("FTXUI")))
    Elementoperator|(Element,Decorator);
    Element&operator|=(Element&,Decorator);
    Elementsoperator|(Elements,Decorator);
    Decoratoroperator|(Decorator,Decorator);

    //---Widget---
    Elementtext(std::stringtext);
    Elementvtext(std::stringtext);
    Elementseparator();
    ElementseparatorLight();
    ElementseparatorDashed();
    ElementseparatorHeavy();
    ElementseparatorDouble();
    ElementseparatorEmpty();
    ElementseparatorStyled(BorderStyle);
    Elementseparator(Pixel);
    ElementseparatorCharacter(std::string);
    ElementseparatorHSelector(floatleft,
    floatright,
    Colorunselected_color,
    Colorselected_color);
    ElementseparatorVSelector(floatup,
    floatdown,
    Colorunselected_color,
    Colorselected_color);
    Elementgauge(floatprogress);
    ElementgaugeLeft(floatprogress);
    ElementgaugeRight(floatprogress);
    ElementgaugeUp(floatprogress);
    ElementgaugeDown(floatprogress);
    ElementgaugeDirection(floatprogress,Directiondirection);
    Elementborder(Element);
    ElementborderLight(Element);
    ElementborderDashed(Element);
    ElementborderHeavy(Element);
    ElementborderDouble(Element);
    ElementborderRounded(Element);
    ElementborderEmpty(Element);
    DecoratorborderStyled(BorderStyle);
    DecoratorborderStyled(BorderStyle,Color);
    DecoratorborderStyled(Color);
    DecoratorborderWith(constPixel&);
    Elementwindow(Elementtitle,Elementcontent,BorderStyleborder=ROUNDED);
    Elementspinner(intcharset_index,size_timage_index);
    Elementparagraph(conststd::string&text);
    ElementparagraphAlignLeft(conststd::string&text);
    ElementparagraphAlignRight(conststd::string&text);
    ElementparagraphAlignCenter(conststd::string&text);
    ElementparagraphAlignJustify(conststd::string&text);
    Elementgraph(GraphFunction);
    ElementemptyElement();
    Elementcanvas(ConstRef<Canvas>);
    Elementcanvas(intwidth,intheight,std::function<void(Canvas&)>);
    Elementcanvas(std::function<void(Canvas&)>);

    //--Decorator---
    Elementbold(Element);
    Elementdim(Element);
    Elementitalic(Element);
    Elementinverted(Element);
    Elementunderlined(Element);
    ElementunderlinedDouble(Element);
    Elementblink(Element);
    Elementstrikethrough(Element);
    Decoratorcolor(Color);
    Decoratorbgcolor(Color);
    Decoratorcolor(constLinearGradient&);
    Decoratorbgcolor(constLinearGradient&);
    Elementcolor(Color,Element);
    Elementbgcolor(Color,Element);
    Elementcolor(constLinearGradient&,Element);
    Elementbgcolor(constLinearGradient&,Element);
    DecoratorfocusPosition(intx,inty);
    DecoratorfocusPositionRelative(floatx,floaty);
    Elementautomerge(Elementchild);
    Decoratorhyperlink(std::stringlink);
    Elementhyperlink(std::stringlink,Elementchild);
    ElementselectionStyleReset(Element);
    DecoratorselectionColor(Colorforeground);
    DecoratorselectionBackgroundColor(Colorforeground);
    DecoratorselectionForegroundColor(Colorforeground);
    DecoratorselectionStyle(std::function<void(Pixel&)>style);

    //---Layoutis
    //Horizontal,Verticalorstackedsetofelements.
    Elementhbox(Elements);
    Elementvbox(Elements);
    Elementdbox(Elements);
    Elementflexbox(Elements,FlexboxConfigconfig=FlexboxConfig());
    Elementgridbox(std::vector<Elements>lines);

    Elementhflow(Elements);//Helper:defaultflexboxwithrowdirection.
    Elementvflow(Elements);//Helper:defaultflexboxwithcolumndirection.

    //--Flexibility---
    //Definehowtosharetheremainingspacewhennotallofitisusedinsidea
    //container.
    Elementflex(Element);//Expand/Minimizeifpossible/needed.
    Elementflex_grow(Element);//Expandelementifpossible.
    Elementflex_shrink(Element);//Minimizeelementifneeded.

    Elementxflex(Element);//Expand/Minimizeifpossible/neededonXaxis.
    Elementxflex_grow(Element);//ExpandelementifpossibleonXaxis.
    Elementxflex_shrink(Element);//MinimizeelementifneededonXaxis.

    Elementyflex(Element);//Expand/Minimizeifpossible/neededonYaxis.
    Elementyflex_grow(Element);//ExpandelementifpossibleonYaxis.
    Elementyflex_shrink(Element);//MinimizeelementifneededonYaxis.

    Elementnotflex(Element);//Resettheflexattribute.
    Elementfiller();//Ablankexpandableelement.

    //--Sizeoverride;
    enumWidthOrHeight{WIDTH,HEIGHT};
    enumConstraint{LESS_THAN,EQUAL,GREATER_THAN};
    Decoratorsize(WidthOrHeight,Constraint,intvalue);

    //---Frame---
    //Aframeisascrollablearea.Theinternalareaispotentiallylargerthan
    //theexternalone.Theinternalareaisscrolledinordertomakevisiblethe
    //focusedelement.
    Elementframe(Element);
    Elementxframe(Element);
    Elementyframe(Element);
    Elementfocus(Element);
    Elementselect(Elemente);//Deprecated-Aliasforfocus.

    //---Cursor---
    //Thosearesimilarto`focus`,butalsochangetheshapeofthecursor.
    ElementfocusCursorBlock(Element);
    ElementfocusCursorBlockBlinking(Element);
    ElementfocusCursorBar(Element);
    ElementfocusCursorBarBlinking(Element);
    ElementfocusCursorUnderline(Element);
    ElementfocusCursorUnderlineBlinking(Element);

    //---Misc---
    Elementvscroll_indicator(Element);
    Elementhscroll_indicator(Element);
    Decoratorreflect(Box&box);
    //Beforedrawingthe|element|clearthepixelbelow.Thisisusefulin
    //combinaisonwithdbox.
    Elementclear_under(Elementelement);

    //---Util--------------------------------------------------------------------
    Elementhcenter(Element);
    Elementvcenter(Element);
    Elementcenter(Element);
    Elementalign_right(Element);
    Elementnothing(Elementelement);

    namespaceDimension{
    DimensionsFit(Element&,boolextend_beyond_screen=false);
    }//namespaceDimension

    }//namespaceftxui

    //Makecontainerabletotakeanynumberofchildrenasinput.
    #include"ftxui/dom/take_any_args.hpp"

    //Includeolddefinitionsusingwstring.
    #include"ftxui/dom/deprecated.hpp"
    #endif//FTXUI_DOM_ELEMENTS_HPP