Now have a nice panel to hold all the UI panels we'll use later.

This commit is contained in:
Zed A. Shaw 2024-11-11 12:23:40 -05:00
parent baaf56d4de
commit 9bc9c9007f
12 changed files with 123 additions and 83 deletions

39
panel.hpp Normal file
View file

@ -0,0 +1,39 @@
#pragma once
#include <ftxui/dom/node.hpp> // for Render
#include <ftxui/component/component.hpp>
#include <ftxui/screen/screen.hpp>
#include <ftxui/dom/canvas.hpp>
#include <ftxui/screen/screen.hpp>
#include <ftxui/dom/canvas.hpp>
#include <ftxui/screen/screen.hpp>
#include <ftxui/dom/canvas.hpp>
#include <locale>
#include <codecvt>
using ftxui::Renderer, ftxui::Component, ftxui::Element, ftxui::Screen;
struct Panel {
int x;
int y;
int width;
int height;
Component $component;
Screen $screen;
bool $must_clear = true;
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> $converter;
Panel(int width, int height, int x, int y, bool must_clear=true) :
x(x),
y(y),
width(width),
height(height),
$screen(width, height),
$must_clear(must_clear)
{};
void resize(int width, int height);
void set_renderer(std::function< Element()> render);
Screen &render();
std::wstring to_string();
Screen &screen();
};