diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-04-05 14:23:44 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-04-05 14:23:44 +0200 |
| commit | 24ecc7becd7a59d151f7ae14645b7b762452b168 (patch) | |
| tree | afa91f3fae38ac87c1fbe5edb040eca462a3caf7 /cli/main.cpp | |
| parent | ff3c508ceb185d631aea7fed93329525d77a1704 (diff) | |
| download | kazbek-24ecc7becd7a59d151f7ae14645b7b762452b168.tar.gz | |
katja: Use the tab container for pages
Diffstat (limited to 'cli/main.cpp')
| -rw-r--r-- | cli/main.cpp | 43 |
1 files changed, 1 insertions, 42 deletions
diff --git a/cli/main.cpp b/cli/main.cpp index d5f8cf3..c2d91ca 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -1,6 +1,5 @@ #include <filesystem> -#include <ftxui/component/component.hpp> #include <ftxui/component/screen_interactive.hpp> #include <ftxui/dom/elements.hpp> #include <toml.hpp> @@ -9,46 +8,6 @@ #include "katja/database.hpp" #include "component.hpp" -class MyContainer final : public ftxui::ComponentBase -{ -public: - std::vector<std::string> menu_entries; - std::vector<ftxui::Component> menu_pages; - int menu_selected{ 0 }; - ftxui::Component menu; - std::function<void()> on_enter; - - MyContainer(std::vector<std::pair<std::string, ftxui::Component>> pages) - { - std::transform(std::cbegin(pages), std::cend(pages), std::back_inserter(this->menu_entries), - [](const std::pair<std::string, ftxui::Component>& pair) { return pair.first; }); - std::transform(std::cbegin(pages), std::cend(pages), std::back_inserter(this->menu_pages), - [](const std::pair<std::string, ftxui::Component>& pair) { return pair.second; }); - - ftxui::MenuOption menu_option = ftxui::MenuOption::Horizontal(); - menu = ftxui::Menu(&this->menu_entries, &this->menu_selected, menu_option); - } - - ftxui::Element Render() override - { - return ftxui::vbox({ - this->menu->Render(), - this->menu_pages.at(this->menu_selected)->Render() - }); - } - - bool OnEvent(ftxui::Event event) override - { - if (event.character() == "q") - { - on_enter(); - return true; - } - return menu->OnEvent(event); - } -}; - - int main(int argc, const char **argv) { auto configuration = toml::parse("config/katja.toml"); @@ -62,7 +21,7 @@ int main(int argc, const char **argv) auto screen = ftxui::ScreenInteractive::Fullscreen(); - auto container = std::make_shared<MyContainer>(std::vector<std::pair<std::string, ftxui::Component>>{ + auto container = std::make_shared<katja::PageContainer>(std::vector<std::pair<std::string, katja::Page>>{ { "Home", std::make_shared<katja::WelcomePage>() }, { "Updates", std::make_shared<katja::UpdatesPage>(std::move(updates)) }, { "Search", std::make_shared<katja::SearchPage>() } |
