diff options
Diffstat (limited to 'cli/component.hpp')
| -rw-r--r-- | cli/component.hpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/cli/component.hpp b/cli/component.hpp index fe02d0b..dff9a0f 100644 --- a/cli/component.hpp +++ b/cli/component.hpp @@ -1,6 +1,6 @@ #pragma once -#include <algorithm> +#include <ftxui/component/event.hpp> #include <ftxui/component/component_base.hpp> #include <ftxui/component/component.hpp> @@ -15,28 +15,31 @@ namespace katja }; using Page = std::shared_ptr<PageBase>; + using Pages = std::vector<Page>; - class PageContainer final : public ftxui::ComponentBase + class ScreenContainer final : public ftxui::ComponentBase { int menu_selected{ 0 }; ftxui::Component menu; ftxui::Component content; std::vector<std::string> menu_entries; - - public: + Pages menu_pages; std::function<void()> on_enter; - PageContainer(std::vector<std::pair<std::string, Page>> pages); + public: + ScreenContainer(std::vector<std::pair<std::string, Page>> pages, std::function<void()> on_enter); - ftxui::Element Render() override; + ftxui::Element OnRender() override; bool OnEvent(ftxui::Event event) override; }; + ftxui::Component Screen(std::vector<std::pair<std::string, Page>> pages, std::function<void()> on_enter); + class WelcomePage final : public PageBase { public: void Load() override; - ftxui::Element Render() override; + ftxui::Element OnRender() override; }; class UpdatesPage final : public PageBase @@ -47,7 +50,7 @@ namespace katja explicit UpdatesPage(std::vector<package_identifier>&& updatable); void Load() override; - ftxui::Element Render() override; + ftxui::Element OnRender() override; }; class SearchPage final : public PageBase |
