#pragma once
#include "../../Backend/Globalincludes.h"
#include "../../Frontend/Framework/MenuFramework.h"

/// <summary>
/// 独立的菜单位置与大小参数
/// 读写 menu.cfg，与 configs/*.cfg 完全分离
/// </summary>
class CMenuParams
{
public:
	// 菜单窗口大小 (逻辑像素)
	float Width  = 660.0f;
	float Height = 560.0f;

	// 菜单位置 (逻辑像素)
	float PosX = 100.0f;
	float PosY = 100.0f;

	// 是否自动加载 menu.cfg 中的布局
	bool AutoLoad = true;

	/// <summary>
	/// 从 menu.cfg 加载布局参数（AutoLoad=false 则使用类默认值）
	/// </summary>
	void Load();

	/// <summary>
	/// 将当前布局保存到 menu.cfg
	/// </summary>
	void Save(const GamesenseMenuFramework::Vec2& pos, const GamesenseMenuFramework::Vec2& size);

	/// <summary>
	/// 获取菜单窗口大小
	/// </summary>
	GamesenseMenuFramework::Vec2 GetSize() const;

	/// <summary>
	/// 获取菜单位置
	/// </summary>
	GamesenseMenuFramework::Vec2 GetPos() const;

private:
	/// <summary>
	/// 获取 menu.cfg 的完整路径
	/// </summary>
	void GetFilePath(char* buf, int bufSize) const;
};

extern CMenuParams MenuParams;
