aboutsummaryrefslogtreecommitdiff
path: root/cli/component.hpp
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2025-04-07 22:59:26 +0200
committerEugen Wissner <belka@caraus.de>2025-04-07 22:59:26 +0200
commitde94f3d35557b4590e0c11de303d9d9c51217d5f (patch)
treeb3f7ae08dd02ec2c4b84ddecc743602b607c0b57 /cli/component.hpp
parent24ecc7becd7a59d151f7ae14645b7b762452b168 (diff)
downloadkazbek-de94f3d35557b4590e0c11de303d9d9c51217d5f.tar.gz
katja: Update to ftxui 6
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