58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
/*
|
|
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
|
*/
|
|
|
|
#include <imgui.h>
|
|
|
|
#include "lib/imguiuitl.hpp"
|
|
#include "aboutpopup.hpp"
|
|
|
|
namespace nostalgia {
|
|
|
|
void AboutPopup::open() noexcept {
|
|
m_stage = Stage::Opening;
|
|
}
|
|
|
|
void AboutPopup::close() noexcept {
|
|
m_stage = Stage::Closed;
|
|
}
|
|
|
|
bool AboutPopup::isOpen() const noexcept {
|
|
return m_stage == Stage::Open;
|
|
}
|
|
|
|
void AboutPopup::draw(core::Context *ctx) noexcept {
|
|
switch (m_stage) {
|
|
case Stage::Closed:
|
|
break;
|
|
case Stage::Opening:
|
|
ImGui::OpenPopup("About");
|
|
m_stage = Stage::Open;
|
|
[[fallthrough]];
|
|
case Stage::Open: {
|
|
constexpr auto modalFlags =
|
|
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize;
|
|
ImGui::SetNextWindowSize(ImVec2(215, 90));
|
|
studio::ig::centerNextWindow(ctx);
|
|
auto open = true;
|
|
if (ImGui::BeginPopupModal("About", &open, modalFlags)) {
|
|
ImGui::Text("Nostalgia Studio - dev build");
|
|
ImGui::NewLine();
|
|
ImGui::Dummy(ImVec2(148.0f, 0.0f));
|
|
ImGui::SameLine();
|
|
if (ImGui::Button("Close")) {
|
|
ImGui::CloseCurrentPopup();
|
|
open = false;
|
|
}
|
|
ImGui::EndPopup();
|
|
}
|
|
if (!open) {
|
|
m_stage = Stage::Closed;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|