📄 gamesetting.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 + -