⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamesetting.cpp

📁 象棋框架
💻 CPP
字号:
// GameSetting.cpp: implementation of the CGameSetting class.
//
//////////////////////////////////////////////////////////////////////

#include "GameSetting.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CGameSetting::CGameSetting()
{
	m_nTotalLine = 3;
	m_nVScrollBarWidth = 0;

	m_bBottomBar = m_bTopBar = false;
	m_bCaozuo = m_bDating = true;
	
	m_nFontSpace = 5 * FONT_SPACE;	

	m_nBGID = IDB_BG_HELP;
}

CGameSetting::~CGameSetting()
{

}

void CGameSetting::setFrame(CBrewLogin *f)
{
	frame1 = (CBrewLogin*)f;
	m_pShell = frame1->frame->getCurrentShell();
	m_offsetX = frame1->frame->getScreenOffsetX();
	m_offsetY = frame1->frame->getScreenOffsetY();
	m_pdi = frame1->frame->getDeviceInfo();

	UINT32 n32 = frame1->frame->getCommonParam();
	m_bDating = ((n32 & PERSIST_NOTSHOWDATING) == 0);
	m_bCaozuo = ((n32 & PERSIST_NOTSHOWHELP) == 0);
	frame2 = NULL;
	
}

void CGameSetting::setFrame(CBrewHall *f)
{
	frame2 = (CBrewHall*)f;
	m_pShell = frame2->frame->getCurrentShell();
	m_offsetX = frame2->frame->getScreenOffsetX();
	m_offsetY = frame2->frame->getScreenOffsetY();
	m_pdi = frame2->frame->getDeviceInfo();
	
	UINT32 n32 = frame2->frame->getCommonParam();
	m_bDating = ((n32 & PERSIST_NOTSHOWDATING) == 0);
	m_bCaozuo = ((n32 & PERSIST_NOTSHOWHELP) == 0);
	frame1 = NULL;
}

void CGameSetting::GetInfoRect()		//显示主要信息的区域,不包含辅助内容
{
	AEERect rt;
	GetMainRect(rt);
	if(m_nTotalDisplayLine < m_nTotalLine)
		rt.dx -= m_nVScrollBarWidth;		//减去滚动条所占的区域
	
	SETAEERECT(&m_rtInfo,rt.x,rt.y + m_nNowSize + m_nFontSpace,rt.dx,
		rt.dy - (m_nNowSize + m_nFontSpace));
	
}

void CGameSetting::GetMainRect(AEERect& rt)
{
	CBrewLoginCanvasBase::GetMainRect(rt);
}

void CGameSetting::paint(IDisplay *d, IGraphics *g)
{
	CBrewLoginCanvasBase::paint(d,g);

	DrawExtroInfo();
	AEERect rt;
	int i;
	AEEFont nfont = m_nNowFont;
	int nID;
	for(i = 0; i < m_nTotalLine; i++)
	{
		if(GetLineRect(i,rt) != -1)
		{
			if(i == m_nCurrent)
				IDISPLAY_SetColor(d ,CLR_USER_TEXT, MAKE_RGB(255,0,0));
			else
				IDISPLAY_SetColor(d ,CLR_USER_TEXT, MAKE_RGB(0,0,0));
			//AEERect rtSel;
			//			SETAEERECT(&rtSel,rt.x + 3,rt.y,rt.dx - 6,rt.dy);
			//			if(i == m_nCurrent)
			//			{
			//				IDISPLAY_DrawRect(m_pIDisplay,&rtSel,RGB_BLACK,
			//					0,IDF_RECT_FRAME);
			//			}
			//if(i == m_nCurrent)
			//	nfont = AEE_FONT_BOLD;
			//else
			//	nfont = AEE_FONT_NORMAL;
			switch(i)
			{
			case 0:
				if(m_bDating)
				{
					IDISPLAY_DrawText( d, nfont, 
						GetDispText(IDS_SETTING_HALLON), -1, 
						rt.x, rt.y,
						&rt, IDF_ALIGN_MIDDLE| IDF_TEXT_TRANSPARENT |IDF_ALIGN_CENTER);
					if(m_nCurrent == 0)
						nID = IDS_SETTING_HALLON;
				}
				else
				{
					IDISPLAY_DrawText( d, nfont, GetDispText(IDS_SETTING_HALLOFF), -1, 
						rt.x, rt.y,
						&rt, IDF_ALIGN_MIDDLE| IDF_TEXT_TRANSPARENT |IDF_ALIGN_CENTER);
					if(m_nCurrent == 0)
						nID = IDS_SETTING_HALLOFF;
				}
				break;
			case 1:
				if(m_bCaozuo)
				{
					IDISPLAY_DrawText( d, nfont,
						GetDispText(IDS_SETTING_OPON), -1, 
						rt.x, rt.y,
						&rt, IDF_ALIGN_MIDDLE| IDF_TEXT_TRANSPARENT |IDF_ALIGN_CENTER);
					if(m_nCurrent == 1)
					nID = IDS_SETTING_OPON;
				}
				else
				{
					IDISPLAY_DrawText( d, nfont, 
						GetDispText(IDS_SETTING_OPOFF), -1, 
						rt.x, rt.y,
						&rt, IDF_ALIGN_MIDDLE| IDF_TEXT_TRANSPARENT |IDF_ALIGN_CENTER);
					if(m_nCurrent == 1)
						nID = IDS_SETTING_OPOFF;
				}
				break;
			case 2:
				IDISPLAY_DrawText( d, nfont, 
					GetDispText(IDS_MENU_BACK), -1, 
				rt.x, rt.y,
				&rt, IDF_ALIGN_MIDDLE| IDF_TEXT_TRANSPARENT |IDF_ALIGN_CENTER);
				if(m_nCurrent == 2)
					nID = IDS_MENU_BACK;
				break;
			}
			IDISPLAY_SetColor(d ,CLR_USER_TEXT, MAKE_RGB(0,0,0));
		}
	}
	DrawSelTag(nID);
}

boolean CGameSetting::key(UINT16 code, UINT32 param)
{
	CBrewLoginCanvasBase::key(code,param);
	if(code == AVK_CLR)
		return true;
	
	if(code == AVK_SELECT)
	{
		if(frame1 != NULL)
		{
			UINT32 n32 = frame1->frame->getCommonParam();
			if(m_nCurrent == 2)
				return true;		
			else if(m_nCurrent == 0)
			{
				m_bDating = !m_bDating;			
				if(m_bDating)
					n32 &= ~PERSIST_NOTSHOWDATING;
				else
					n32 |= PERSIST_NOTSHOWDATING;
				frame1->frame->setCommonParam(n32);
			}
			else if(m_nCurrent == 1)
			{
				m_bCaozuo = !m_bCaozuo;
				if(m_bCaozuo)
					n32 &= ~PERSIST_NOTSHOWHELP;
				else
					n32 |= PERSIST_NOTSHOWHELP;
				frame1->frame->setCommonParam(n32);
			}
		}
		else
		{
			UINT32 n32 = frame2->frame->getCommonParam();
			if(m_nCurrent == 2)
				return true;		
			else if(m_nCurrent == 0)
			{
				m_bDating = !m_bDating;			
				if(m_bDating)
					n32 &= ~PERSIST_NOTSHOWDATING;
				else
					n32 |= PERSIST_NOTSHOWDATING;
				frame2->frame->setCommonParam(n32);
			}
			else if(m_nCurrent == 1)
			{
				m_bCaozuo = !m_bCaozuo;
				if(m_bCaozuo)
					n32 &= ~PERSIST_NOTSHOWHELP;
				else
					n32 |= PERSIST_NOTSHOWHELP;
				frame2->frame->setCommonParam(n32);
			}
		}
	}
	
	return false;
}

void CGameSetting::DrawExtroInfo()
{
	AEERect rt,rtdraw;
	GetMainRect(rt);	
	//IDISPLAY_FillRect(m_pIDisplay,&rt,MAKE_RGB(255,255,255));

	SETAEERECT(&rtdraw,rt.x,rt.y,rt.dx,m_nNowSize + m_nFontSpace);
	IDISPLAY_DrawText(m_pIDisplay,    
		AEE_FONT_BOLD,      
		GetDispText(IDS_SETTING_TOP),          
		-1, 
		0,  
		0,	
		&rtdraw,
		IDF_ALIGN_CENTER | IDF_TEXT_TRANSPARENT | IDF_ALIGN_MIDDLE );
}

void CGameSetting::SetDisplayInfo(IDisplay* d)
{
	CBrewLoginCanvasBase::SetDisplayInfo(d);
	SetFont(AEE_FONT_LARGE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -