diff --git a/include/utils/App/App.h b/include/utils/App/App.h index 2464380..a4b92d9 100644 --- a/include/utils/App/App.h +++ b/include/utils/App/App.h @@ -33,6 +33,8 @@ namespace Archimedes { static App* Get() { return instance; } + std::list getModuleNames() const { return runOrder; } + virtual void handleArgs(const int&, char*[]) = 0; virtual void run() = 0; diff --git a/modules/MainGUI/src/MainGUI.cpp b/modules/MainGUI/src/MainGUI.cpp index 2537d58..901142e 100644 --- a/modules/MainGUI/src/MainGUI.cpp +++ b/modules/MainGUI/src/MainGUI.cpp @@ -30,15 +30,24 @@ void MainGUI::onLoad() { void MainGUI::run() { ImGuiIO& io = ImGui::GetIO(); - static std::string path; + static std::string s; ImGui::Begin("MainGUI Module"); - ImGui::Text("Enter a module to load:"); - ImGui::InputText("path: ", &path); + ImGui::Text("Active Modules:"); + for(auto m : app->getModuleNames()) + ImGui::Text("%s", m.c_str()); - if (ImGui::Button("Button")) - app->startModule(path); + ImGui::Text("\nEnter a module to un/load:"); + ImGui::InputText("module: ", &s); + + if(ImGui::Button("load")) + app->startModule(s); + + ImGui::SameLine(); + + if(ImGui::Button("unload")) + app->stopModule(s); ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); ImGui::End();