event.hpp
ftxui/component/mouse.hpp
string
include/ftxui/component/screen_interactive.hpp
include/ftxui/component/task.hpp
src/ftxui/component/button.cpp
src/ftxui/component/catch_event.cpp
src/ftxui/component/checkbox.cpp
src/ftxui/component/component.cpp
src/ftxui/component/container.cpp
src/ftxui/component/dropdown.cpp
src/ftxui/component/event.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/screen_interactive.cpp
src/ftxui/component/slider.cpp
src/ftxui/component/terminal_input_parser.cpp
include/ftxui/component/event.hpp
ftxui/component/mouse.hpp
string
include/ftxui/component/event.hpp
include/ftxui/component/screen_interactive.hpp
include/ftxui/component/task.hpp
src/ftxui/component/button.cpp
src/ftxui/component/catch_event.cpp
src/ftxui/component/checkbox.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/event.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/terminal_input_parser.cpp
src/ftxui/component/terminal_input_parser.hpp
src/ftxui/component/terminal_input_parser_test_fuzzer.cpp
src/ftxui/component/window.cpp
ftxui::Event
ftxui::Event::Cursor
ftxui

    //Copyright2020ArthurSonzogni.Allrightsreserved.
    //UseofthissourcecodeisgovernedbytheMITlicensethatcanbefoundin
    //theLICENSEfile.
    #ifndefFTXUI_COMPONENT_EVENT_HPP
    #defineFTXUI_COMPONENT_EVENT_HPP

    #include<ftxui/component/mouse.hpp>//forMouse
    #include<string>//forstring,operator==

    namespaceftxui{

    classScreenInteractive;
    classComponentBase;

    ///@briefRepresentanevent.Itcanbekeypressevent,aterminalresize,or
    ///more...
    ///
    ///Forexample:
    ///-PrintablecharactercanbecreatedusingEvent::Character('a').
    ///-Somespecialarepredefined,likeEvent::ArrowLeft.
    ///-OnecanfindarbitrarycodeforspecialEventsusing:
    ///./example/util/print_key_press
    ///Forinstance,CTLR+AmapstoEvent::Special({1});
    ///
    ///Usefuldocumentationaboutxtermspecification:
    ///https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
    structEvent{
    //---Constructorsection---------------------------------------------------
    staticEventCharacter(std::string);
    staticEventCharacter(char);
    staticEventCharacter(wchar_t);
    staticEventSpecial(std::string);
    staticEventMouse(std::string,Mousemouse);
    staticEventCursorPosition(std::string,intx,inty);//Internal
    staticEventCursorShape(std::string,intshape);//Internal

    //---Arrow---
    staticconstEventArrowLeft;
    staticconstEventArrowRight;
    staticconstEventArrowUp;
    staticconstEventArrowDown;

    staticconstEventArrowLeftCtrl;
    staticconstEventArrowRightCtrl;
    staticconstEventArrowUpCtrl;
    staticconstEventArrowDownCtrl;

    //---Other---
    staticconstEventBackspace;
    staticconstEventDelete;
    staticconstEventReturn;
    staticconstEventEscape;
    staticconstEventTab;
    staticconstEventTabReverse;

    //---Navigationkeys---
    staticconstEventInsert;
    staticconstEventHome;
    staticconstEventEnd;
    staticconstEventPageUp;
    staticconstEventPageDown;

    //---Functionkeys---
    staticconstEventF1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12;

    //---Controlkeys---
    staticconstEventa,A,CtrlA,AltA,CtrlAltA;
    staticconstEventb,B,CtrlB,AltB,CtrlAltB;
    staticconstEventc,C,CtrlC,AltC,CtrlAltC;
    staticconstEventd,D,CtrlD,AltD,CtrlAltD;
    staticconstEvente,E,CtrlE,AltE,CtrlAltE;
    staticconstEventf,F,CtrlF,AltF,CtrlAltF;
    staticconstEventg,G,CtrlG,AltG,CtrlAltG;
    staticconstEventh,H,CtrlH,AltH,CtrlAltH;
    staticconstEventi,I,CtrlI,AltI,CtrlAltI;
    staticconstEventj,J,CtrlJ,AltJ,CtrlAltJ;
    staticconstEventk,K,CtrlK,AltK,CtrlAltK;
    staticconstEventl,L,CtrlL,AltL,CtrlAltL;
    staticconstEventm,M,CtrlM,AltM,CtrlAltM;
    staticconstEventn,N,CtrlN,AltN,CtrlAltN;
    staticconstEvento,O,CtrlO,AltO,CtrlAltO;
    staticconstEventp,P,CtrlP,AltP,CtrlAltP;
    staticconstEventq,Q,CtrlQ,AltQ,CtrlAltQ;
    staticconstEventr,R,CtrlR,AltR,CtrlAltR;
    staticconstEvents,S,CtrlS,AltS,CtrlAltS;
    staticconstEventt,T,CtrlT,AltT,CtrlAltT;
    staticconstEventu,U,CtrlU,AltU,CtrlAltU;
    staticconstEventv,V,CtrlV,AltV,CtrlAltV;
    staticconstEventw,W,CtrlW,AltW,CtrlAltW;
    staticconstEventx,X,CtrlX,AltX,CtrlAltX;
    staticconstEventy,Y,CtrlY,AltY,CtrlAltY;
    staticconstEventz,Z,CtrlZ,AltZ,CtrlAltZ;

    //---Custom---
    staticconstEventCustom;

    //---Methodsection---------------------------------------------------------
    booloperator==(constEvent&other)const{returninput_==other.input_;}
    booloperator!=(constEvent&other)const{return!operator==(other);}
    booloperator<(constEvent&other)const{returninput_<other.input_;}

    conststd::string&input()const{returninput_;}

    boolis_character()const{returntype_==Type::Character;}
    std::stringcharacter()const{returninput_;}

    boolis_mouse()const{returntype_==Type::Mouse;}
    structMouse&mouse(){returndata_.mouse;}

    //---InternalMethodsection-----------------------------------------------
    boolis_cursor_position()const{returntype_==Type::CursorPosition;}
    intcursor_x()const{returndata_.cursor.x;}
    intcursor_y()const{returndata_.cursor.y;}

    boolis_cursor_shape()const{returntype_==Type::CursorShape;}
    intcursor_shape()const{returndata_.cursor_shape;}

    //Debug
    std::stringDebugString()const;

    //---Statesection----------------------------------------------------------
    ScreenInteractive*screen_=nullptr;

    private:
    friendComponentBase;
    friendScreenInteractive;
    enumclassType{
    Unknown,
    Character,
    Mouse,
    CursorPosition,
    CursorShape,
    };
    Typetype_=Type::Unknown;

    structCursor{
    intx=0;
    inty=0;
    };

    union{
    structMousemouse;
    structCursorcursor;
    intcursor_shape;
    }data_={};

    std::stringinput_;
    };

    }//namespaceftxui

    #endif/*endofincludeguard:FTXUI_COMPONENT_EVENT_HPP*/