Files
Archimedes/modules/MainGUI/src/MainGUI.cpp
2025-04-10 20:44:58 -05:00

55 lines
1.1 KiB
C++

#include "MainGUI.h"
#include "modules/ImguiModule/src/ImguiModule.h"
MainGUI::MainGUI(Archimedes::App* a, void* h) : Archimedes::Module(a, h) {
name = "MainGUI";
ImguiModule* im = new ImguiModule(a, nullptr);
deps[im->getName()] = im;
}
MainGUI::~MainGUI() {
}
void MainGUI::onLoad() {
ImguiModule* im = (ImguiModule*) moduleInstances["ImguiModule"];
if(!im) {
std::cout << "No ImguiModule for MainGUI!\n";
std::abort();
}
ImGui::SetCurrentContext(im->getContext());
}
void MainGUI::run() {
ImGuiIO& io = ImGui::GetIO();
static std::string s;
ImGui::Begin("MainGUI Module");
ImGui::Text("Active Modules:");
for(auto m : app->getModuleNames())
ImGui::Text("%s", m.c_str());
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();
}