FTXUI  5.0.0
C++ functional terminal UI.
Screen Class Reference

A rectangular grid of Pixel. More...

+ Inheritance diagram for Screen:

Data Structures

struct  Cursor
 

Public Member Functions

 Screen (int dimx, int dimy)
 
std::string & at (int x, int y)
 Access a character in a cell at a given position. More...
 
const std::string & at (int x, int y) const
 Access a character in a cell at a given position. More...
 
PixelPixelAt (int x, int y)
 Access a cell (Pixel) at a given position. More...
 
const PixelPixelAt (int x, int y) const
 Access a cell (Pixel) at a given position. More...
 
std::string ToString () const
 
void Print () const
 
int dimx () const
 
int dimy () const
 
std::string ResetPosition (bool clear=false) const
 Return a string to be printed in order to reset the cursor position to the beginning of the screen. More...
 
void Clear ()
 Clear all the pixel from the screen. More...
 
void ApplyShader ()
 
Cursor cursor () const
 
void SetCursor (Cursor cursor)
 
uint8_t RegisterHyperlink (const std::string &link)
 
const std::string & Hyperlink (uint8_t id) const
 

Static Public Member Functions

static Screen Create (Dimensions dimension)
 Create a screen with the given dimension. More...
 
static Screen Create (Dimensions width, Dimensions height)
 Create a screen with the given dimension along the x-axis and y-axis. More...
 

Data Fields

Box stencil
 

Protected Attributes

int dimx_
 
int dimy_
 
std::vector< std::vector< Pixel > > pixels_
 
Cursor cursor_
 
std::vector< std::string > hyperlinks_ = {""}
 

Detailed Description

A rectangular grid of Pixel.

Definition at line 63 of file screen.hpp.

Constructor & Destructor Documentation

◆ Screen()

Screen ( int  dimx,
int  dimy 
)

Definition at line 395 of file screen.cpp.

Member Function Documentation

◆ Create() [1/2]

◆ Create() [2/2]

Screen Create ( Dimensions  width,
Dimensions  height 
)
static

Create a screen with the given dimension along the x-axis and y-axis.

Definition at line 385 of file screen.cpp.

◆ at() [1/2]

std::string & at ( int  x,
int  y 
)

Access a character in a cell at a given position.

Parameters
xThe cell position along the x-axis.
yThe cell position along the y-axis.

Definition at line 456 of file screen.cpp.

◆ at() [2/2]

const std::string & at ( int  x,
int  y 
) const

Access a character in a cell at a given position.

Parameters
xThe cell position along the x-axis.
yThe cell position along the y-axis.

Definition at line 463 of file screen.cpp.

◆ PixelAt() [1/2]

Pixel & PixelAt ( int  x,
int  y 
)

Access a cell (Pixel) at a given position.

Parameters
xThe cell position along the x-axis.
yThe cell position along the y-axis.

Definition at line 470 of file screen.cpp.

◆ PixelAt() [2/2]

const Pixel & PixelAt ( int  x,
int  y 
) const

Access a cell (Pixel) at a given position.

Parameters
xThe cell position along the x-axis.
yThe cell position along the y-axis.

Definition at line 477 of file screen.cpp.

◆ ToString()

std::string ToString ( ) const

Produce a std::string that can be used to print the Screen on the terminal.

Note
Don't forget to flush stdout. Alternatively, you can use Screen::Print();

Definition at line 416 of file screen.cpp.

◆ Print()

void Print ( ) const

Definition at line 449 of file screen.cpp.

◆ dimx()

int dimx ( ) const
inline

Definition at line 84 of file screen.hpp.

◆ dimy()

int dimy ( ) const
inline

Definition at line 85 of file screen.hpp.

◆ ResetPosition()

std::string ResetPosition ( bool  clear = false) const

Return a string to be printed in order to reset the cursor position to the beginning of the screen.

std::string reset_position;
while(true) {
auto document = render();
auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
Render(screen, document);
std::cout << reset_position << screen.ToString() << std::flush;
reset_position = screen.ResetPosition();
using namespace std::chrono_literals;
std::this_thread::sleep_for(0.01s);
}
static Screen Create(Dimensions dimension)
Create a screen with the given dimension.
Definition: screen.cpp:391
Dimensions Fit(Element &)
Definition: util.cpp:95
Dimensions Full()
Definition: screen.cpp:379
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition: node.cpp:47
Returns
The string to print in order to reset the cursor position to the beginning.

Definition at line 500 of file screen.cpp.

◆ Clear()

void Clear ( )

Clear all the pixel from the screen.

Definition at line 519 of file screen.cpp.

◆ ApplyShader()

void ApplyShader ( )

Definition at line 534 of file screen.cpp.

◆ cursor()

Cursor cursor ( ) const
inline

Definition at line 110 of file screen.hpp.

◆ SetCursor()

void SetCursor ( Cursor  cursor)
inline

Definition at line 111 of file screen.hpp.

◆ RegisterHyperlink()

uint8_t RegisterHyperlink ( const std::string &  link)

Definition at line 561 of file screen.cpp.

◆ Hyperlink()

const std::string & Hyperlink ( uint8_t  id) const

Definition at line 574 of file screen.cpp.

Field Documentation

◆ stencil

Box stencil

Definition at line 118 of file screen.hpp.

◆ dimx_

int dimx_
protected

Definition at line 121 of file screen.hpp.

◆ dimy_

int dimy_
protected

Definition at line 122 of file screen.hpp.

◆ pixels_

std::vector<std::vector<Pixel> > pixels_
protected

Definition at line 123 of file screen.hpp.

◆ cursor_

Cursor cursor_
protected

Definition at line 124 of file screen.hpp.

◆ hyperlinks_

std::vector<std::string> hyperlinks_ = {""}
protected

Definition at line 125 of file screen.hpp.


The documentation for this class was generated from the following files: