/*
 * 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;
		}
	}
}

}
