#pragma once

#include <Common/Common.hpp>

#include <ImGui/imgui.h>

class CAndromedaMenu final
{
public:
	auto OnRenderMenu() -> void;

private:
	auto RenderVisualPanel() -> void;
	auto RenderGlowPanel() -> void;
	auto RenderSkinPanel() -> void;
	auto RenderMusicPanel() -> void;
	auto RenderConfigPanel() -> void;
	auto RenderMiscPanel() -> void;

private:
	auto Checkbox( const char* szLabel , bool& bValue ) -> bool;
	auto SliderInt( const char* szLabel , int& iValue , int iMin , int iMax , const char* szFormat = "%d" ) -> bool;
	auto SliderFloat( const char* szLabel , float& fValue , float fMin , float fMax , const char* szFormat = "%.2f" ) -> bool;
	auto Combo( const char* szLabel , int& iValue , const char* Items[] , int iItemsCount ) -> bool;
	auto ColorEdit( const char* szLabel , float* flColor ) -> bool;

private:
	int m_iSelectedItemIdx = -1;
	int m_iSelectedSkinIdx = 0;
	int m_iSelectedMusicIdx = -1;

	float m_fUIScale = 1.0f;

private:
	auto GetUIScale() -> float;
};

auto GetAndromedaMenu() -> CAndromedaMenu*;
