From f82d6290abb62511510ff3350a19b05c8f324643 Mon Sep 17 00:00:00 2001 From: Vladyslav Baranovskyi Date: Fri, 21 Jun 2024 22:05:27 +0300 Subject: [PATCH] Simple ftxui menu for selecting an example program to run --- examples/main.cpp | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/examples/main.cpp b/examples/main.cpp index cd4dc04..e81daae 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -8,12 +8,39 @@ #include "ExampleApps/CubesExampleApp.hpp" #include "ExampleApps/MovingCubeApp.hpp" +#include +#include +#include +#include + +#include +#include + using namespace OpenVulkano; int main(int argc, char** argv) { - std::unique_ptr app = CubesExampleApp::CreateUnique(); - // std::unique_ptr app = MovingCubeApp::CreateUnique(); + std::vector examples = { + "Cubes Example App", + "Moving Cube Example App", + }; + + int selectedExample = 0; + ftxui::MenuOption option; + auto screen = ftxui::ScreenInteractive::TerminalOutput(); + option.on_enter = screen.ExitLoopClosure(); + auto menu = ftxui::Menu(&examples, &selectedExample, option); + + screen.Loop(menu); + + std::unique_ptr app; + switch (selectedExample) + { + case 0: app = CubesExampleApp::CreateUnique(); break; + case 1: app = MovingCubeApp::CreateUnique(); break; + default: throw std::runtime_error("Invalid menu selection!"); break; + } + GraphicsAppManager manager(app.get()); manager.Run(); return 0;