#pragma once #include // for Render #include #include #include #include #include #include #include "sfml_screen.hpp" // for SFMLScreen #include #include using ftxui::Renderer, ftxui::Component, ftxui::Element, ftxui::Screen; struct Panel { int x; int y; int width; int height; std::wstring $screenout; bool $dirty = true; Component $component; SFMLScreen $screen; bool $must_clear = true; std::wstring_convert> $converter; Panel(int width, int height, int x, int y, bool must_clear=true) : x(x), y(y), width(width), height(height), $screen(SFMLScreen::FixedSize(width, height)), $must_clear(must_clear) {}; void resize(int width, int height); void set_renderer(std::function< Element()> render); void render(); const std::wstring &to_string(); const Screen &screen(); };