#pragma once
#include"DxLib.h"

namespace DXFW
{
/// <summary>ウィンドウ関係のクラス</summary>
///	<example>
///	[サンプルコード:未完成]<BR>
/// サンプル説明<BR>
///	<code>
///	int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )<BR>
///	{<BR>
///		if( !Dx::Initialise() ) return -1;<BR>
///		Dx::End();<BR>
///		return 0;<BR>
/// }<BR>
/// </code>	
/// </example>
class Window
{
	friend class Dx;

private:
	bool isFullScreen;
	int width;
	int height;
	int colorBit;

	Window():
		isFullScreen(false),
		width(640),
		height(480),
		colorBit(32)
	{}

	static Window& Single()
	{
		static Window single;
		return single;		
	}
public:
	/// <summary>フルスクリーンに設定する</summary>
	static bool SetFullScreen(bool isFull)
	{
		return !DxLib::ChangeWindowMode( !isFull );
	}
	
	/// <summary>ウィンドウテキストを設定</summary>
	static bool SetMainText(char *text)
	{
		return !DxLib::SetMainWindowText( text );
	}
	
	/// <summary>アイコンIDの設定</summary>
	static bool SetIconID(int id)
	{
		return !DxLib::SetWindowIconID( id );
	}
	
	/// <summary>ウィンドウの拡大縮小可否設定</summary>
	static bool SetSizeChangeEnable(bool isEnable)
	{
		return !DxLib::SetWindowSizeChangeEnableFlag( isEnable );
	}
	
	// <summary>非推奨</summary>
	//static bool SetSizeExtendRate(double exRate)
	//{
	//	return !DxLib::SetWindowSizeExtendRate( exRate );
	//}
	
	/// <summary>ウィンドウサイズと色深度の設定</summary>
	static bool SetGraphMode(int w,int h,int colorBit)
	{
		return !DxLib::SetGraphMode(w,h,colorBit);
	}
	
	/// <summary>ウィンドウ幅の取得</summary>
	static int GetWidth()
	{
		int w,h,colorBit;
		DxLib::GetScreenState( &w , &h , &colorBit);
		return w;
	}

	/// <summary>ウィンドウ高さの取得</summary>
	static int GetHeight()
	{
		int w,h,colorBit;
		DxLib::GetScreenState( &w , &h , &colorBit);
		return h;
	}
	
	/// <summary>ウィンドウ色深度の取得</summary>
	static int GetColorBit()
	{
		int w,h,colorBit;
		DxLib::GetScreenState( &w , &h , &colorBit);
		return colorBit;
	}
	
	/// <summary>非推奨</summary>
	//static bool SetFullSceneAntiAliasingMode(int samples,int quality)
	//{
	//	return !DxLib::SetFullSceneAntiAliasingMode(samples,quality);
	//}
};
}