FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
ftxui / screen

title-img

Le module ftxui::screen est la fondation de bas niveau. Il peut être utilisé de manière autonome, mais il est principalement conçu pour être utilisé conjointement par les modules ftxui::dom et ftxui::component.

Il fournit un ftxui::Screen.


ftxui::Screen

La classe ftxui::Screen représente une grille 2D de caractères stylisés qui peut être affichée dans un terminal. Elle fournit des méthodes pour créer un écran, accéder aux pixels et afficher des éléments.

Vous pouvez accéder aux cellules individuelles (ftxui::Pixel) de l'écran en utilisant la méthode ftxui::Screen::PixelAt, qui renvoie une référence au pixel aux coordonnées spécifiées.

Example

void main() {
ftxui::Dimension::Full(), // Utiliser toute la largeur du terminal
ftxui::Dimension::Fixed(10) // Hauteur fixe de 10 lignes
);
// Accéder à un pixel spécifique en (10, 5)
auto& pixel = screen.PixelAt(10, 5);
// Définir les propriétés du pixel.
pixel.character = U'X';
pixel.foreground_color = ftxui::Color::Red;
pixel.background_color = ftxui::Color::RGB(0, 255, 0);
pixel.bold = true; // Définir le style gras
screen.Print(); // Afficher l'écran dans le terminal
}
auto screen
static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
Construit une couleur à partir de sa représentation RGB. https://en.wikipedia.org/wiki/RGB_color_mode...
static Screen Create(Dimensions dimension)
Note
Si les coordonnées sont hors limites, un pixel factice est renvoyé.

L'écran peut être affiché dans le terminal en utilisant ftxui::Screen::Print() ou converti en une std::string avec ftxui::Screen::ToString().

Notez que vous pouvez réinitialiser la position du curseur en haut à gauche de l'écran après l'impression en appelant ftxui::Screen::ResetCursorPosition().

Example

auto screen = ...;
while(true) {
// Opérations de dessin :
...
// Affiche l'écran dans le terminal. Puis réinitialise la position du curseur et le
// contenu de l'écran.
std::cout << screen.ToString();
std::cout << screen.ResetCursorPosition(/*clear=*/true);
std::cout << std::flush;
// Met en pause pendant une courte durée pour contrôler le taux de rafraîchissement.
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}

ftxui::Dimension

L'utilitaire ftxui::Dimension contrôle le dimensionnement de l'écran :

  • Dimension::Full() — utiliser toute la largeur ou hauteur du terminal
  • Dimension::Fit(element) — redimensionner pour s'adapter à l'élément rendu ftxui::Element
  • Dimension::Fixed(n) — utiliser exactement n colonnes ou lignes

Ces valeurs doivent être passées à ftxui::Screen::Create().

ftxui::Screen::Create() fournit deux surcharges :

  • Screen::Create(Dimension) définit la largeur et la hauteur avec le même type de dimension
  • Screen::Create(Dimension width, Dimension height) permet un contrôle distinct par axe
ftxui::Dimension::Full(), // largeur
ftxui::Dimension::Fixed(10) // hauteur
);

Une fois créé, affichez un élément et le résultat :

screen.Print();
void Render(Screen &screen, const Element &element)

ftxui::Pixel

Chaque cellule de la grille de l'écran est un ftxui::Pixel, qui contient :

  • Point de code Unicode.
    • character
  • ftxui::Color:
    • foreground_color
    • background_color
  • Booléens :
    • blink
    • bold
    • dim
    • italic
    • inverted (échange les couleurs de premier plan et d'arrière-plan)
    • underlined
    • underlined_double
    • strikethrough
ftxui::Dimension::Fixed(5),
ftxui::Dimension::Fixed(5),
);
auto& pixel = screen.PixelAt(3, 3);
pixel.character = U'X';
pixel.bold = true;
pixel.foreground_color = ftxui::Color::Red;
pixel.background_color = ftxui::Color::RGB(0, 255, 0);
screen.Print();
Note
PixelAt(x, y) effectue une vérification des limites et renvoie une référence au pixel aux coordonnées spécifiées. Si hors limites, une référence de pixel factice est renvoyée.

Chaque cellule de l'écran est un ftxui::Pixel. Vous pouvez les modifier en utilisant :

auto& pixel = screen.PixelAt(x, y);
pixel.character = U'X';
pixel.bold = true;
pixel.foreground_color = Color::Red;

ftxui::Color

La classe ftxui::Color est utilisée pour définir les couleurs de premier plan et d'arrière-plan pour chaque ftxui::Pixel.

Elle prend en charge différents espaces colorimétriques et palettes prédéfinies. FTXUI se repliera dynamiquement sur la couleur la plus proche disponible dans le terminal si la couleur demandée n'est pas prise en charge par le terminal.

Espaces colorimétriques

Note
Vous pouvez interroger la capacité du terminal en utilisant ftxui::Terminal::ColorSupport();

Ceci peut être défini manuellement en utilisant ftxui::Terminal::SetColorSupport().