examples/dom/spinner.cpp

    //Copyright2020ArthurSonzogni.Allrightsreserved.
    //UseofthissourcecodeisgovernedbytheMITlicensethatcanbefoundin
    //theLICENSEfile.
    #include<chrono>//foroperator""s,chrono_literals
    #include<ftxui/dom/elements.hpp>//forElement,operator|,separator,filler,hbox,size,spinner,text,vbox,bold,border,Fit,EQUAL,WIDTH
    #include<ftxui/screen/screen.hpp>//forFull,Screen
    #include<iostream>//forcout,endl,ostream
    #include<string>//forto_string,operator<<,string
    #include<thread>//forsleep_for
    #include<utility>//formove
    #include<vector>//forvector

    #include"ftxui/dom/node.hpp"//forRender
    #include"ftxui/screen/color.hpp"//forftxui

    intmain(){
    usingnamespaceftxui;
    usingnamespacestd::chrono_literals;

    std::stringreset_position;
    for(intindex=0;index<200;++index){
    std::vector<Element>entries;
    for(inti=0;i<23;++i){
    if(i!=0)
    entries.push_back(separator());
    entries.push_back(//
    hbox({
    text(std::to_string(i))|size(WIDTH,EQUAL,2),
    separator(),
    spinner(i,index)|bold,
    }));
    }
    autodocument=hbox({
    vbox(std::move(entries))|border,
    filler(),
    });
    autoscreen=Screen::Create(Dimension::Full(),Dimension::Fit(document));
    Render(screen,document);
    std::cout<<reset_position;
    screen.Print();
    reset_position=screen.ResetPosition();

    std::this_thread::sleep_for(0.1s);
    }
    std::cout<<std::endl;
    }