FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
ftxui/screen

Detailed Description

Please check the tutorial of the ftxui/screen module.

Namespaces

namespace  ftxui::Dimension
 Define how the Screen's dimensions should look like.
 

Classes

struct  Box
 Box is a structure that represents a rectangular area in a 2D space. More...
 
class  Color
 Color is a class that represents a color in the terminal user interface. More...
 
struct  ColorInfo
 ColorInfo is a structure that contains information about the terminal color palette. More...
 
class  Image
 A rectangular grid of Pixel. More...
 
struct  Pixel
 A Unicode character and its associated style. More...
 
class  Screen
 A rectangular grid of Pixel. More...
 
struct  Dimensions
 Dimensions is a structure that represents the size of the terminal. More...
 

Enumerations

enum  Color {
  Palette1 ,
  Palette16 ,
  Palette256 ,
  TrueColor
}
 Color is an enumeration that represents the color support of the terminal. More...
 

Functions

Dimensions Size ()
 Get the terminal size.
 
Color ColorSupport ()
 Get the color support of the terminal.
 

Class Documentation

◆ ftxui::Box

struct ftxui::Box

Box is a structure that represents a rectangular area in a 2D space.

It is defined by its minimum and maximum coordinates along the x and y axes. Note that the coordinates are inclusive, meaning that the box includes both the minimum and maximum values.

Definition at line 16 of file box.hpp.

Public Member Functions

void Shift (int x, int y)
 
bool Contain (int x, int y) const
 
bool IsEmpty () const
 
bool operator== (const Box &other) const
 
bool operator!= (const Box &other) const
 

Static Public Member Functions

static auto Intersection (Box a, Box b) -> Box
 
static auto Union (Box a, Box b) -> Box
 

Public Attributes

int x_min = 0
 
int x_max = 0
 
int y_min = 0
 
int y_max = 0
 

Member Function Documentation

◆ Intersection()

Box Intersection ( Box a,
Box b ) -> Box
static
Returns
the biggest Box contained in both |a| and |b|.

Definition at line 11 of file box.cpp.

◆ Union()

Box Union ( Box a,
Box b ) -> Box
static
Returns
the smallest Box containing both |a| and |b|.

Definition at line 22 of file box.cpp.

◆ Shift()

void Shift ( int x,
int y )

Shift the box by (x,y).

Parameters
xhorizontal shift.
yvertical shift.

Definition at line 34 of file box.cpp.

◆ Contain()

bool Contain ( int x,
int y ) const
Returns
whether (x,y) is contained inside the box.

Definition at line 42 of file box.cpp.

◆ IsEmpty()

bool IsEmpty ( ) const
Returns
whether the box is empty.

Definition at line 50 of file box.cpp.

◆ operator==()

bool operator== ( const Box & other) const
Returns
whether |other| is the same as |this|

Definition at line 55 of file box.cpp.

◆ operator!=()

bool operator!= ( const Box & other) const
Returns
whether |other| and |this| are different.

Definition at line 61 of file box.cpp.

Member Data Documentation

◆ x_min

int x_min = 0

Definition at line 17 of file box.hpp.

◆ x_max

int x_max = 0

Definition at line 18 of file box.hpp.

◆ y_min

int y_min = 0

Definition at line 19 of file box.hpp.

◆ y_max

int y_max = 0

Definition at line 20 of file box.hpp.

◆ ftxui::Color

class ftxui::Color

Color is a class that represents a color in the terminal user interface.

Definition at line 22 of file color.hpp.

Public Types

enum  Palette1 : uint8_t { Default }
 
enum  Palette16 : uint8_t {
  Black = 0 ,
  Red = 1 ,
  Green = 2 ,
  Yellow = 3 ,
  Blue = 4 ,
  Magenta = 5 ,
  Cyan = 6 ,
  GrayLight = 7 ,
  GrayDark = 8 ,
  RedLight = 9 ,
  GreenLight = 10 ,
  YellowLight = 11 ,
  BlueLight = 12 ,
  MagentaLight = 13 ,
  CyanLight = 14 ,
  White = 15
}
 
enum  Palette256 : uint8_t {
  Aquamarine1 = 122 ,
  Aquamarine1Bis = 86 ,
  Aquamarine3 = 79 ,
  Blue1 = 21 ,
  Blue3 = 19 ,
  Blue3Bis = 20 ,
  BlueViolet = 57 ,
  CadetBlue = 72 ,
  CadetBlueBis = 73 ,
  Chartreuse1 = 118 ,
  Chartreuse2 = 112 ,
  Chartreuse2Bis = 82 ,
  Chartreuse3 = 70 ,
  Chartreuse3Bis = 76 ,
  Chartreuse4 = 64 ,
  CornflowerBlue = 69 ,
  Cornsilk1 = 230 ,
  Cyan1 = 51 ,
  Cyan2 = 50 ,
  Cyan3 = 43 ,
  DarkBlue = 18 ,
  DarkCyan = 36 ,
  DarkGoldenrod = 136 ,
  DarkGreen = 22 ,
  DarkKhaki = 143 ,
  DarkMagenta = 90 ,
  DarkMagentaBis = 91 ,
  DarkOliveGreen1 = 191 ,
  DarkOliveGreen1Bis = 192 ,
  DarkOliveGreen2 = 155 ,
  DarkOliveGreen3 = 107 ,
  DarkOliveGreen3Bis = 113 ,
  DarkOliveGreen3Ter = 149 ,
  DarkOrange = 208 ,
  DarkOrange3 = 130 ,
  DarkOrange3Bis = 166 ,
  DarkRed = 52 ,
  DarkRedBis = 88 ,
  DarkSeaGreen = 108 ,
  DarkSeaGreen1 = 158 ,
  DarkSeaGreen1Bis = 193 ,
  DarkSeaGreen2 = 151 ,
  DarkSeaGreen2Bis = 157 ,
  DarkSeaGreen3 = 115 ,
  DarkSeaGreen3Bis = 150 ,
  DarkSeaGreen4 = 65 ,
  DarkSeaGreen4Bis = 71 ,
  DarkSlateGray1 = 123 ,
  DarkSlateGray2 = 87 ,
  DarkSlateGray3 = 116 ,
  DarkTurquoise = 44 ,
  DarkViolet = 128 ,
  DarkVioletBis = 92 ,
  DeepPink1 = 198 ,
  DeepPink1Bis = 199 ,
  DeepPink2 = 197 ,
  DeepPink3 = 161 ,
  DeepPink3Bis = 162 ,
  DeepPink4 = 125 ,
  DeepPink4Bis = 89 ,
  DeepPink4Ter = 53 ,
  DeepSkyBlue1 = 39 ,
  DeepSkyBlue2 = 38 ,
  DeepSkyBlue3 = 31 ,
  DeepSkyBlue3Bis = 32 ,
  DeepSkyBlue4 = 23 ,
  DeepSkyBlue4Bis = 24 ,
  DeepSkyBlue4Ter = 25 ,
  DodgerBlue1 = 33 ,
  DodgerBlue2 = 27 ,
  DodgerBlue3 = 26 ,
  Gold1 = 220 ,
  Gold3 = 142 ,
  Gold3Bis = 178 ,
  Green1 = 46 ,
  Green3 = 34 ,
  Green3Bis = 40 ,
  Green4 = 28 ,
  GreenYellow = 154 ,
  Grey0 = 16 ,
  Grey100 = 231 ,
  Grey11 = 234 ,
  Grey15 = 235 ,
  Grey19 = 236 ,
  Grey23 = 237 ,
  Grey27 = 238 ,
  Grey3 = 232 ,
  Grey30 = 239 ,
  Grey35 = 240 ,
  Grey37 = 59 ,
  Grey39 = 241 ,
  Grey42 = 242 ,
  Grey46 = 243 ,
  Grey50 = 244 ,
  Grey53 = 102 ,
  Grey54 = 245 ,
  Grey58 = 246 ,
  Grey62 = 247 ,
  Grey63 = 139 ,
  Grey66 = 248 ,
  Grey69 = 145 ,
  Grey7 = 233 ,
  Grey70 = 249 ,
  Grey74 = 250 ,
  Grey78 = 251 ,
  Grey82 = 252 ,
  Grey84 = 188 ,
  Grey85 = 253 ,
  Grey89 = 254 ,
  Grey93 = 255 ,
  Honeydew2 = 194 ,
  HotPink = 205 ,
  HotPink2 = 169 ,
  HotPink3 = 132 ,
  HotPink3Bis = 168 ,
  HotPinkBis = 206 ,
  IndianRed = 131 ,
  IndianRed1 = 203 ,
  IndianRed1Bis = 204 ,
  IndianRedBis = 167 ,
  Khaki1 = 228 ,
  Khaki3 = 185 ,
  LightCoral = 210 ,
  LightCyan1Bis = 195 ,
  LightCyan3 = 152 ,
  LightGoldenrod1 = 227 ,
  LightGoldenrod2 = 186 ,
  LightGoldenrod2Bis = 221 ,
  LightGoldenrod2Ter = 222 ,
  LightGoldenrod3 = 179 ,
  LightGreen = 119 ,
  LightGreenBis = 120 ,
  LightPink1 = 217 ,
  LightPink3 = 174 ,
  LightPink4 = 95 ,
  LightSalmon1 = 216 ,
  LightSalmon3 = 137 ,
  LightSalmon3Bis = 173 ,
  LightSeaGreen = 37 ,
  LightSkyBlue1 = 153 ,
  LightSkyBlue3 = 109 ,
  LightSkyBlue3Bis = 110 ,
  LightSlateBlue = 105 ,
  LightSlateGrey = 103 ,
  LightSteelBlue = 147 ,
  LightSteelBlue1 = 189 ,
  LightSteelBlue3 = 146 ,
  LightYellow3 = 187 ,
  Magenta1 = 201 ,
  Magenta2 = 165 ,
  Magenta2Bis = 200 ,
  Magenta3 = 127 ,
  Magenta3Bis = 163 ,
  Magenta3Ter = 164 ,
  MediumOrchid = 134 ,
  MediumOrchid1 = 171 ,
  MediumOrchid1Bis = 207 ,
  MediumOrchid3 = 133 ,
  MediumPurple = 104 ,
  MediumPurple1 = 141 ,
  MediumPurple2 = 135 ,
  MediumPurple2Bis = 140 ,
  MediumPurple3 = 97 ,
  MediumPurple3Bis = 98 ,
  MediumPurple4 = 60 ,
  MediumSpringGreen = 49 ,
  MediumTurquoise = 80 ,
  MediumVioletRed = 126 ,
  MistyRose1 = 224 ,
  MistyRose3 = 181 ,
  NavajoWhite1 = 223 ,
  NavajoWhite3 = 144 ,
  NavyBlue = 17 ,
  Orange1 = 214 ,
  Orange3 = 172 ,
  Orange4 = 58 ,
  Orange4Bis = 94 ,
  OrangeRed1 = 202 ,
  Orchid = 170 ,
  Orchid1 = 213 ,
  Orchid2 = 212 ,
  PaleGreen1 = 121 ,
  PaleGreen1Bis = 156 ,
  PaleGreen3 = 114 ,
  PaleGreen3Bis = 77 ,
  PaleTurquoise1 = 159 ,
  PaleTurquoise4 = 66 ,
  PaleVioletRed1 = 211 ,
  Pink1 = 218 ,
  Pink3 = 175 ,
  Plum1 = 219 ,
  Plum2 = 183 ,
  Plum3 = 176 ,
  Plum4 = 96 ,
  Purple = 129 ,
  Purple3 = 56 ,
  Purple4 = 54 ,
  Purple4Bis = 55 ,
  PurpleBis = 93 ,
  Red1 = 196 ,
  Red3 = 124 ,
  Red3Bis = 160 ,
  RosyBrown = 138 ,
  RoyalBlue1 = 63 ,
  Salmon1 = 209 ,
  SandyBrown = 215 ,
  SeaGreen1 = 84 ,
  SeaGreen1Bis = 85 ,
  SeaGreen2 = 83 ,
  SeaGreen3 = 78 ,
  SkyBlue1 = 117 ,
  SkyBlue2 = 111 ,
  SkyBlue3 = 74 ,
  SlateBlue1 = 99 ,
  SlateBlue3 = 61 ,
  SlateBlue3Bis = 62 ,
  SpringGreen1 = 48 ,
  SpringGreen2 = 42 ,
  SpringGreen2Bis = 47 ,
  SpringGreen3 = 35 ,
  SpringGreen3Bis = 41 ,
  SpringGreen4 = 29 ,
  SteelBlue = 67 ,
  SteelBlue1 = 75 ,
  SteelBlue1Bis = 81 ,
  SteelBlue3 = 68 ,
  Tan = 180 ,
  Thistle1 = 225 ,
  Thistle3 = 182 ,
  Turquoise2 = 45 ,
  Turquoise4 = 30 ,
  Violet = 177 ,
  Wheat1 = 229 ,
  Wheat4 = 101 ,
  Yellow1 = 226 ,
  Yellow2 = 190 ,
  Yellow3 = 148 ,
  Yellow3Bis = 184 ,
  Yellow4 = 100 ,
  Yellow4Bis = 106
}
 

Public Member Functions

 Color ()
 Build a transparent color.
 
 Color (Palette1 index)
 Build a transparent color.
 
 Color (Palette16 index)
 Build a color using the Palette16 colors.
 
 Color (Palette256 index)
 Build a color using Palette256 colors.
 
 Color (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=255)
 Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
 
bool operator== (const Color &rhs) const
 
bool operator!= (const Color &rhs) const
 
std::string Print (bool is_background_color) const
 
bool IsOpaque () const
 

Static Public Member Functions

static Color RGB (uint8_t red, uint8_t green, uint8_t blue)
 Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.
 
static Color HSV (uint8_t hue, uint8_t saturation, uint8_t value)
 Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
 
static Color RGBA (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
 Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.
 
static Color HSVA (uint8_t hue, uint8_t saturation, uint8_t value, uint8_t alpha)
 Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.
 
static Color Interpolate (float t, const Color &a, const Color &b)
 
static Color Blend (const Color &lhs, const Color &rhs)
 Blend two colors together using the alpha channel.
 

Member Enumeration Documentation

◆ Palette1

enum Palette1 : uint8_t
Enumerator
Default 

Definition at line 49 of file color.hpp.

◆ Palette16

enum Palette16 : uint8_t
Enumerator
Black 
Red 
Green 
Yellow 
Blue 
Magenta 
Cyan 
GrayLight 
GrayDark 
RedLight 
GreenLight 
YellowLight 
BlueLight 
MagentaLight 
CyanLight 
White 

Definition at line 53 of file color.hpp.

◆ Palette256

enum Palette256 : uint8_t
Enumerator
Aquamarine1 
Aquamarine1Bis 
Aquamarine3 
Blue1 
Blue3 
Blue3Bis 
BlueViolet 
CadetBlue 
CadetBlueBis 
Chartreuse1 
Chartreuse2 
Chartreuse2Bis 
Chartreuse3 
Chartreuse3Bis 
Chartreuse4 
CornflowerBlue 
Cornsilk1 
Cyan1 
Cyan2 
Cyan3 
DarkBlue 
DarkCyan 
DarkGoldenrod 
DarkGreen 
DarkKhaki 
DarkMagenta 
DarkMagentaBis 
DarkOliveGreen1 
DarkOliveGreen1Bis 
DarkOliveGreen2 
DarkOliveGreen3 
DarkOliveGreen3Bis 
DarkOliveGreen3Ter 
DarkOrange 
DarkOrange3 
DarkOrange3Bis 
DarkRed 
DarkRedBis 
DarkSeaGreen 
DarkSeaGreen1 
DarkSeaGreen1Bis 
DarkSeaGreen2 
DarkSeaGreen2Bis 
DarkSeaGreen3 
DarkSeaGreen3Bis 
DarkSeaGreen4 
DarkSeaGreen4Bis 
DarkSlateGray1 
DarkSlateGray2 
DarkSlateGray3 
DarkTurquoise 
DarkViolet 
DarkVioletBis 
DeepPink1 
DeepPink1Bis 
DeepPink2 
DeepPink3 
DeepPink3Bis 
DeepPink4 
DeepPink4Bis 
DeepPink4Ter 
DeepSkyBlue1 
DeepSkyBlue2 
DeepSkyBlue3 
DeepSkyBlue3Bis 
DeepSkyBlue4 
DeepSkyBlue4Bis 
DeepSkyBlue4Ter 
DodgerBlue1 
DodgerBlue2 
DodgerBlue3 
Gold1 
Gold3 
Gold3Bis 
Green1 
Green3 
Green3Bis 
Green4 
GreenYellow 
Grey0 
Grey100 
Grey11 
Grey15 
Grey19 
Grey23 
Grey27 
Grey3 
Grey30 
Grey35 
Grey37 
Grey39 
Grey42 
Grey46 
Grey50 
Grey53 
Grey54 
Grey58 
Grey62 
Grey63 
Grey66 
Grey69 
Grey7 
Grey70 
Grey74 
Grey78 
Grey82 
Grey84 
Grey85 
Grey89 
Grey93 
Honeydew2 
HotPink 
HotPink2 
HotPink3 
HotPink3Bis 
HotPinkBis 
IndianRed 
IndianRed1 
IndianRed1Bis 
IndianRedBis 
Khaki1 
Khaki3 
LightCoral 
LightCyan1Bis 
LightCyan3 
LightGoldenrod1 
LightGoldenrod2 
LightGoldenrod2Bis 
LightGoldenrod2Ter 
LightGoldenrod3 
LightGreen 
LightGreenBis 
LightPink1 
LightPink3 
LightPink4 
LightSalmon1 
LightSalmon3 
LightSalmon3Bis 
LightSeaGreen 
LightSkyBlue1 
LightSkyBlue3 
LightSkyBlue3Bis 
LightSlateBlue 
LightSlateGrey 
LightSteelBlue 
LightSteelBlue1 
LightSteelBlue3 
LightYellow3 
Magenta1 
Magenta2 
Magenta2Bis 
Magenta3 
Magenta3Bis 
Magenta3Ter 
MediumOrchid 
MediumOrchid1 
MediumOrchid1Bis 
MediumOrchid3 
MediumPurple 
MediumPurple1 
MediumPurple2 
MediumPurple2Bis 
MediumPurple3 
MediumPurple3Bis 
MediumPurple4 
MediumSpringGreen 
MediumTurquoise 
MediumVioletRed 
MistyRose1 
MistyRose3 
NavajoWhite1 
NavajoWhite3 
NavyBlue 
Orange1 
Orange3 
Orange4 
Orange4Bis 
OrangeRed1 
Orchid 
Orchid1 
Orchid2 
PaleGreen1 
PaleGreen1Bis 
PaleGreen3 
PaleGreen3Bis 
PaleTurquoise1 
PaleTurquoise4 
PaleVioletRed1 
Pink1 
Pink3 
Plum1 
Plum2 
Plum3 
Plum4 
Purple 
Purple3 
Purple4 
Purple4Bis 
PurpleBis 
Red1 
Red3 
Red3Bis 
RosyBrown 
RoyalBlue1 
Salmon1 
SandyBrown 
SeaGreen1 
SeaGreen1Bis 
SeaGreen2 
SeaGreen3 
SkyBlue1 
SkyBlue2 
SkyBlue3 
SlateBlue1 
SlateBlue3 
SlateBlue3Bis 
SpringGreen1 
SpringGreen2 
SpringGreen2Bis 
SpringGreen3 
SpringGreen3Bis 
SpringGreen4 
SteelBlue 
SteelBlue1 
SteelBlue1Bis 
SteelBlue3 
Tan 
Thistle1 
Thistle3 
Turquoise2 
Turquoise4 
Violet 
Wheat1 
Wheat4 
Yellow1 
Yellow2 
Yellow3 
Yellow3Bis 
Yellow4 
Yellow4Bis 

Definition at line 72 of file color.hpp.

Constructor & Destructor Documentation

◆ Color() [1/5]

Color ( )
default

Build a transparent color.

◆ Color() [2/5]

Color ( Palette1 index)

Build a transparent color.

Definition at line 80 of file screen/color.cpp.

◆ Color() [3/5]

Color ( Palette16 index)

Build a color using the Palette16 colors.

Definition at line 83 of file screen/color.cpp.

◆ Color() [4/5]

Color ( Palette256 index)

Build a color using Palette256 colors.

Definition at line 87 of file screen/color.cpp.

◆ Color() [5/5]

Color ( uint8_t red,
uint8_t green,
uint8_t blue,
uint8_t alpha = 255 )

Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.

Parameters
redThe quantity of red [0,255]
greenThe quantity of green [0,255]
blueThe quantity of blue [0,255]
alphaThe quantity of alpha [0,255]

Definition at line 103 of file screen/color.cpp.

Member Function Documentation

◆ RGB()

Color RGB ( uint8_t red,
uint8_t green,
uint8_t blue )
static

Build a Color from its RGB representation. https://en.wikipedia.org/wiki/RGB_color_model.

Parameters
redThe quantity of red [0,255]
greenThe quantity of green [0,255]
blueThe quantity of blue [0,255]

Definition at line 147 of file screen/color.cpp.

◆ HSV()

Color HSV ( uint8_t h,
uint8_t s,
uint8_t v )
static

Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.

Parameters
hThe hue of the color [0,255]
sThe "colorfulness" [0,255].
vThe "Lightness" [0,255]

Definition at line 198 of file screen/color.cpp.

◆ RGBA()

Color RGBA ( uint8_t red,
uint8_t green,
uint8_t blue,
uint8_t alpha )
static

Build a Color from its RGBA representation. https://en.wikipedia.org/wiki/RGB_color_model.

Parameters
redThe quantity of red [0,255]
greenThe quantity of green [0,255]
blueThe quantity of blue [0,255]
alphaThe quantity of alpha [0,255]
See also
Color::RGB

Definition at line 159 of file screen/color.cpp.

◆ HSVA()

Color HSVA ( uint8_t h,
uint8_t s,
uint8_t v,
uint8_t alpha )
static

Build a Color from its HSV representation. https://en.wikipedia.org/wiki/HSL_and_HSV.

Parameters
hThe hue of the color [0,255]
sThe "colorfulness" [0,255].
vThe "Lightness" [0,255]
alphaThe quantity of alpha [0,255]

Definition at line 171 of file screen/color.cpp.

◆ Interpolate()

Color Interpolate ( float t,
const Color & a,
const Color & b )
static

Definition at line 203 of file screen/color.cpp.

◆ Blend()

Color Blend ( const Color & lhs,
const Color & rhs )
static

Blend two colors together using the alpha channel.

Definition at line 272 of file screen/color.cpp.

◆ operator==()

bool operator== ( const Color & rhs) const

Definition at line 37 of file screen/color.cpp.

◆ operator!=()

bool operator!= ( const Color & rhs) const

Definition at line 42 of file screen/color.cpp.

◆ Print()

std::string Print ( bool is_background_color) const

Definition at line 46 of file screen/color.cpp.

◆ IsOpaque()

bool IsOpaque ( ) const
inline

Definition at line 321 of file color.hpp.

◆ ftxui::ColorInfo

struct ftxui::ColorInfo

ColorInfo is a structure that contains information about the terminal color palette.

Definition at line 16 of file color_info.hpp.

Public Attributes

const char * name
 
uint8_t index_256
 
uint8_t index_16
 
uint8_t red
 
uint8_t green
 
uint8_t blue
 
uint8_t hue
 
uint8_t saturation
 
uint8_t value
 

Member Data Documentation

◆ name

const char* name

Definition at line 17 of file color_info.hpp.

◆ index_256

uint8_t index_256

Definition at line 18 of file color_info.hpp.

◆ index_16

uint8_t index_16

Definition at line 19 of file color_info.hpp.

◆ red

uint8_t red

Definition at line 20 of file color_info.hpp.

◆ green

uint8_t green

Definition at line 21 of file color_info.hpp.

◆ blue

uint8_t blue

Definition at line 22 of file color_info.hpp.

◆ hue

uint8_t hue

Definition at line 23 of file color_info.hpp.

◆ saturation

uint8_t saturation

Definition at line 24 of file color_info.hpp.

◆ value

uint8_t value

Definition at line 25 of file color_info.hpp.

◆ ftxui::Image

class ftxui::Image

A rectangular grid of Pixel.

Definition at line 17 of file image.hpp.

+ Inheritance diagram for Image:

Public Member Functions

 Image ()=delete
 
 Image (int dimx, int dimy)
 
std::string & at (int x, int y)
 Access a character in a cell at a given position.
 
const std::string & at (int x, int y) const
 Access a character in a cell at a given position.
 
PixelPixelAt (int x, int y)
 Access a cell (Pixel) at a given position.
 
const PixelPixelAt (int x, int y) const
 Access a cell (Pixel) at a given position.
 
int dimx () const
 
int dimy () const
 
void Clear ()
 Clear all the pixel from the screen.
 

Public Attributes

Box stencil
 

Protected Attributes

int dimx_
 
int dimy_
 
std::vector< std::vector< Pixel > > pixels_
 

Constructor & Destructor Documentation

◆ Image() [1/2]

Image ( )
delete

◆ Image() [2/2]

Image ( int dimx,
int dimy )

Definition at line 20 of file image.cpp.

Member Function Documentation

◆ 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 29 of file image.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 36 of file image.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 43 of file image.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 50 of file image.cpp.

◆ dimx()

int dimx ( ) const
inline

Definition at line 32 of file image.hpp.

◆ dimy()

int dimy ( ) const
inline

Definition at line 33 of file image.hpp.

◆ Clear()

void Clear ( )

Clear all the pixel from the screen.

Definition at line 55 of file image.cpp.

Member Data Documentation

◆ stencil

Box stencil

Definition at line 38 of file image.hpp.

◆ dimx_

int dimx_
protected

Definition at line 41 of file image.hpp.

◆ dimy_

int dimy_
protected

Definition at line 42 of file image.hpp.

◆ pixels_

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

Definition at line 43 of file image.hpp.

◆ ftxui::Pixel

struct ftxui::Pixel

A Unicode character and its associated style.

Definition at line 15 of file pixel.hpp.

Public Member Functions

 Pixel ()
 

Public Attributes

bool blink: 1
 
bool bold: 1
 
bool dim: 1
 
bool italic: 1
 
bool inverted: 1
 
bool underlined: 1
 
bool underlined_double: 1
 
bool strikethrough: 1
 
bool automerge: 1
 
uint8_t hyperlink = 0
 
std::string character = ""
 
Color background_color = Color::Default
 
Color foreground_color = Color::Default
 

Constructor & Destructor Documentation

◆ Pixel()

Pixel ( )
inline

Definition at line 16 of file pixel.hpp.

Member Data Documentation

◆ blink

bool blink

Definition at line 28 of file pixel.hpp.

◆ bold

bool bold

Definition at line 29 of file pixel.hpp.

◆ dim

bool dim

Definition at line 30 of file pixel.hpp.

◆ italic

bool italic

Definition at line 31 of file pixel.hpp.

◆ inverted

bool inverted

Definition at line 32 of file pixel.hpp.

◆ underlined

bool underlined

Definition at line 33 of file pixel.hpp.

◆ underlined_double

bool underlined_double

Definition at line 34 of file pixel.hpp.

◆ strikethrough

bool strikethrough

Definition at line 35 of file pixel.hpp.

◆ automerge

bool automerge

Definition at line 36 of file pixel.hpp.

◆ hyperlink

uint8_t hyperlink = 0

Definition at line 41 of file pixel.hpp.

◆ character

std::string character = ""

Definition at line 45 of file pixel.hpp.

◆ background_color

Color background_color = Color::Default

Definition at line 48 of file pixel.hpp.

◆ foreground_color

Color foreground_color = Color::Default

Definition at line 49 of file pixel.hpp.

◆ ftxui::Screen

class ftxui::Screen

A rectangular grid of Pixel.

Definition at line 27 of file screen.hpp.

+ Inheritance diagram for Screen:

Public Types

using SelectionStyle = std::function<void(Pixel&)>
 

Public Member Functions

 Screen (int dimx, int dimy)
 
std::string ToString () const
 
void Print () const
 
void Clear ()
 Clear all the pixel from the screen.
 
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.
 
void ApplyShader ()
 
Cursor cursor () const
 
void SetCursor (Cursor cursor)
 
uint8_t RegisterHyperlink (const std::string &link)
 
const std::string & Hyperlink (uint8_t id) const
 
const SelectionStyleGetSelectionStyle () const
 Return the current selection style.
 
void SetSelectionStyle (SelectionStyle decorator)
 Set the current selection style.
 
std::string & at (int x, int y)
 Access a character in a cell at a given position.
 
const std::string & at (int x, int y) const
 Access a character in a cell at a given position.
 
PixelPixelAt (int x, int y)
 Access a cell (Pixel) at a given position.
 
const PixelPixelAt (int x, int y) const
 Access a cell (Pixel) at a given position.
 
int dimx () const
 
int dimy () const
 

Static Public Member Functions

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

Public Attributes

Box stencil
 

Protected Attributes

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

Member Typedef Documentation

◆ SelectionStyle

using SelectionStyle = std::function<void(Pixel&)>

Definition at line 72 of file screen.hpp.

Constructor & Destructor Documentation

◆ Screen()

Screen ( int dimx,
int dimy )

Definition at line 398 of file screen.cpp.

Member Function Documentation

◆ Create() [1/2]

Screen Create ( Dimensions dimension)
static

Create a screen with the given dimension.

Definition at line 394 of file screen.cpp.

◆ 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 388 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 415 of file screen.cpp.

◆ Print()

void Print ( ) const

Definition at line 452 of file screen.cpp.

◆ Clear()

void Clear ( )

Clear all the pixel from the screen.

Definition at line 494 of file screen.cpp.

◆ 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);
}
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
Definition node.cpp:84
static Screen Create(Dimensions dimension)
Create a screen with the given dimension.
Definition screen.cpp:394
Returns
The string to print in order to reset the cursor position to the beginning.

Definition at line 475 of file screen.cpp.

◆ ApplyShader()

void ApplyShader ( )

Definition at line 506 of file screen.cpp.

◆ cursor()

Cursor cursor ( ) const
inline

Definition at line 64 of file screen.hpp.

◆ SetCursor()

void SetCursor ( Cursor cursor)
inline

Definition at line 65 of file screen.hpp.

◆ RegisterHyperlink()

std::uint8_t RegisterHyperlink ( const std::string & link)

Definition at line 533 of file screen.cpp.

◆ Hyperlink()

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

Definition at line 546 of file screen.cpp.

◆ GetSelectionStyle()

const Screen::SelectionStyle & GetSelectionStyle ( ) const

Return the current selection style.

See also
SetSelectionStyle

Definition at line 555 of file screen.cpp.

◆ SetSelectionStyle()

void SetSelectionStyle ( SelectionStyle decorator)

Set the current selection style.

See also
GetSelectionStyle

Definition at line 561 of file screen.cpp.

◆ at() [1/2]

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

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 29 of file image.cpp.

◆ at() [2/2]

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

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 36 of file image.cpp.

◆ PixelAt() [1/2]

Pixel & PixelAt ( int x,
int y )
inherited

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 43 of file image.cpp.

◆ PixelAt() [2/2]

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

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 50 of file image.cpp.

◆ dimx()

int dimx ( ) const
inlineinherited

Definition at line 32 of file image.hpp.

◆ dimy()

int dimy ( ) const
inlineinherited

Definition at line 33 of file image.hpp.

Member Data Documentation

◆ cursor_

Cursor cursor_
protected

Definition at line 77 of file screen.hpp.

◆ hyperlinks_

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

Definition at line 78 of file screen.hpp.

◆ selection_style_

SelectionStyle selection_style_
protected
Initial value:
= [](Pixel& pixel) {
pixel.inverted ^= true;
}

Definition at line 81 of file screen.hpp.

◆ stencil

Box stencil
inherited

Definition at line 38 of file image.hpp.

◆ dimx_

int dimx_
protectedinherited

Definition at line 41 of file image.hpp.

◆ dimy_

int dimy_
protectedinherited

Definition at line 42 of file image.hpp.

◆ pixels_

std::vector<std::vector<Pixel> > pixels_
protectedinherited

Definition at line 43 of file image.hpp.

◆ ftxui::Dimensions

struct ftxui::Dimensions

Dimensions is a structure that represents the size of the terminal.

Definition at line 11 of file terminal.hpp.

Public Attributes

int dimx
 
int dimy
 

Member Data Documentation

◆ dimx

int dimx

Definition at line 12 of file terminal.hpp.

◆ dimy

int dimy

Definition at line 13 of file terminal.hpp.

Enumeration Type Documentation

◆ Color

enum Color

Color is an enumeration that represents the color support of the terminal.

Enumerator
Palette1 
Palette16 
Palette256 
TrueColor 

Definition at line 23 of file terminal.hpp.

Function Documentation

◆ Size()

Dimensions Size ( )

Get the terminal size.

Returns
The terminal size.

Definition at line 94 of file terminal.cpp.

◆ ColorSupport()

Color ColorSupport ( )

Get the color support of the terminal.

Definition at line 130 of file terminal.cpp.