#include "DxLib.h"

#define GRAPHIC_BACKGROUND_FILENAME "./pic/back.png"
#define GRAPHIC_SELECTBOX_FILENAME  "./pic/select.png"

#define SELECT_BOX_X 50
#define SELECT_BOX_Y 200

#define SELECT_BOX_WIDTH 700
#define SELECT_BOX_HEIGHT 50

#define SELECT_BOX_MESSAGE_Y 20

#define FONT_SIZE 16

//選択肢ボックス関係
//白
int g_whiteColor;
//背景の読み込み
int g_backgroundGraphic;
//選択ボックスの読み込み
int g_selectBoxGraphicHandle;

//プロトタイプ宣言
int isContainMousePointer(int x, int y, int width, int height);
void drawSelectBox();

//指定したボックス内にマウスが存在するかどうか
//戻り値 1:存在する 0:存在しない
int isContainMousePointer(int x, int y, int width, int height)
{
	int mouseX, mouseY;

	//マウスの座標を取得
	GetMousePoint( &mouseX, &mouseY );

	//ボックス内にマウス座標が存在するか
	if( (mouseX >= x && mouseX <= x + width) &&
		(mouseY >= y && mouseY <= y + height) ) {
			return 1;
	}
	return 0;
}

//選択肢ボックスを描画する
void drawSelectBox()
{
	//選択肢ボックス1がマウスポインタを含んでいた場合
	if( isContainMousePointer( SELECT_BOX_X, SELECT_BOX_Y,
		SELECT_BOX_WIDTH, SELECT_BOX_HEIGHT ) ) {
		//透明度0％とする
		SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 );	
	}else {
		//透明度50%とする
		SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128);
	}
	//選択ボックスの描画
	DrawGraph( SELECT_BOX_X, SELECT_BOX_Y, g_selectBoxGraphicHandle, TRUE );

	//選択肢ボックス2がマウスポインタを含んでいた場合
	if( isContainMousePointer( SELECT_BOX_X, SELECT_BOX_Y + SELECT_BOX_HEIGHT,
		SELECT_BOX_WIDTH, SELECT_BOX_HEIGHT ) ) {
		//透明度0％とする
		SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 );	
	}else {
		//透明度50%とする
		SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128);
	}
	//選択ボックス2つ目の描画
	DrawGraph( SELECT_BOX_X, SELECT_BOX_Y + SELECT_BOX_HEIGHT,
		g_selectBoxGraphicHandle, TRUE);

	//アルファブレンドを元に戻す
	SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 );

	//適当に文字を表示する
	DrawString(SELECT_BOX_X + 20, SELECT_BOX_Y + SELECT_BOX_MESSAGE_Y,
		"選択肢1 あいうえおかきくけこ", g_whiteColor);
	DrawString(SELECT_BOX_X + 20, SELECT_BOX_Y + SELECT_BOX_HEIGHT + SELECT_BOX_MESSAGE_Y,
		"選択肢2 さしすせそたちつてと", g_whiteColor);
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
						 LPSTR lpCmdLine, int nCmdShow )
{
	//ウィンドウモードで起動
	ChangeWindowMode( TRUE );
	//画面の大きさは800 * 600
	SetGraphMode( 800, 600 , 16 ) ;
	//DxLib初期化
	if( DxLib_Init() == -1 ) {
		 return -1;
	}

	// 描画先を裏画面にセット
	SetDrawScreen( DX_SCREEN_BACK );

	//フォントの大きさをセット
	SetFontSize( FONT_SIZE );

	// マウスを表示状態にする
	SetMouseDispFlag( TRUE );

	//白
	g_whiteColor = GetColor(255, 255, 255);
	//背景の読み込み
	g_backgroundGraphic = LoadGraph( GRAPHIC_BACKGROUND_FILENAME );
	//選択ボックスの読み込み
	g_selectBoxGraphicHandle = LoadGraph( GRAPHIC_SELECTBOX_FILENAME ); 

	//メインループ
	while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {

		//画面クリア
		ClearDrawScreen();

		//背景を描画
		DrawGraph( 0, 0, g_backgroundGraphic, FALSE );

		//選択肢ボックスの描画
		drawSelectBox();

		ScreenFlip();
	}

	DxLib_End();
	return 0;
}
