#pragma once #include // for Render #include #include #include #include #include #include #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; Screen $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(Screen(width, height)), $must_clear(must_clear) { }; void resize(int width, int height); void set_renderer(Component renderer); void add(Component child); void render(); const std::wstring &to_string(); const Screen &screen(); };