aboutsummaryrefslogtreecommitdiff
path: root/cli/component.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cli/component.hpp')
-rw-r--r--cli/component.hpp19
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