80 lines
1.9 KiB
C++
80 lines
1.9 KiB
C++
|
|
#include "raid_test/application.hpp"
|
|
|
|
namespace raid_test
|
|
{
|
|
Application gApplication;
|
|
|
|
bool Application::init()
|
|
{
|
|
if (!raid::Application::init()) {
|
|
return false;
|
|
}
|
|
setMainWindowFlags(raid::DEFAULT_MAIN_WINDOW_FLAGS | ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking);
|
|
setMainWindowStyle(ImGuiStyleVar_WindowPadding, ImVec2());
|
|
setMainWindowStyle(ImGuiStyleVar_WindowBorderSize, 0.f);
|
|
std::ranges::fill(mFrameOpen, true);
|
|
return true;
|
|
}
|
|
|
|
void Application::configureImgui()
|
|
{
|
|
raid::Application::configureImgui();
|
|
ImGuiIO& imguiIO = ImGui::GetIO();
|
|
imguiIO.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
|
}
|
|
|
|
void Application::render()
|
|
{
|
|
if (ImGui::BeginMenuBar())
|
|
{
|
|
if (ImGui::BeginMenu("File"))
|
|
{
|
|
if (ImGui::MenuItem("Quit"))
|
|
{
|
|
requestQuit();
|
|
}
|
|
ImGui::EndMenu();
|
|
}
|
|
if (ImGui::BeginMenu("Frames"))
|
|
{
|
|
for (std::size_t idx = 0; idx < NUM_FRAMES; ++idx) {
|
|
ImGui::MenuItem(FRAMES[idx].title, nullptr, &mFrameOpen[idx]);
|
|
}
|
|
ImGui::EndMenu();
|
|
}
|
|
if (ImGui::BeginMenu("Debug"))
|
|
{
|
|
ImGui::MenuItem("ImGui Metrics", nullptr, &mShowMetrics);
|
|
ImGui::EndMenu();
|
|
}
|
|
ImGui::EndMenuBar();
|
|
}
|
|
|
|
const ImGuiID dockID = ImGui::GetID(this);
|
|
ImGui::DockSpace(dockID);
|
|
|
|
if (mShowMetrics) {
|
|
ImGui::ShowMetricsWindow(&mShowMetrics);
|
|
}
|
|
|
|
for (std::size_t idx = 0; idx < NUM_FRAMES; ++idx)
|
|
{
|
|
ImGui::SetNextWindowDockID(dockID, ImGuiCond_FirstUseEver);
|
|
if (mFrameOpen[idx]) {
|
|
FRAMES[idx].render(mFrameOpen[idx]);
|
|
}
|
|
}
|
|
}
|
|
|
|
std::string Application::getFolderName()
|
|
{
|
|
return "raid_test_app";
|
|
}
|
|
|
|
std::string Application::getWindowTitle()
|
|
{
|
|
return "RAID Test Application";
|
|
}
|
|
} // namespace raid_test
|