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

📄 brewlogincanvas42.cpp

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

#include "BrewLoginCanvas42.h"

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

CBrewLoginCanvas42::CBrewLoginCanvas42()
{
	m_nNewState = LOGIN_TEST_MODIFY;

	delete[] m_aCtls;
	m_nControls = m_nTotalLine = 6;
	m_aCtls = new IControl*[m_nControls];

	m_bIsMale = true;
	m_nTitle = IDS_UMG_MOD;

}

CBrewLoginCanvas42::~CBrewLoginCanvas42()
{
	RELEASEIF(m_pPasswdNew,ITEXTCTL);
}

IBrewCanvas *CreateLoginCanvas42(){
	return (IBrewCanvas *)new CBrewLoginCanvas42();
}

void CBrewLoginCanvas42::paint(IDisplay *d, IGraphics *g)
{
	CBrewLoginCanvasBase::paint(d,g);
	AEERect rt,rtSex;
	int i = 0;
	int n = GetLineRect(i++,rt);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_LOGIN_USERNAME),(IControl*)m_pUser,rt,g);	
	
	n = GetLineRect(i++,rt);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_UMG_OLDP),(IControl*)m_pPasswd,rt,g);	
	
	n = GetLineRect(i++,rt);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_UMG_NEWP),(IControl*)m_pPasswdNew,rt,g);	
	
	n = GetLineRect(i++,rt);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_UMG_NICK),(IControl*)m_pNick,rt,g);
	
	n = GetLineRect(i++,rt);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_UMG_MOBILE),(IControl*)m_pMobile,rt,g);
	
	n = GetLineRect(i++,rtSex);
	if(n != -1)
		DisplayControl(d,
		GetDispText(IDS_UMG_SEX),(IControl*)m_pSex,rtSex,g);
	
	SetActiveCtrl(0);
	
	if(m_nCurrent >= 0)
	{
		AEERect rt;
		boolean b = true;
		if(m_nCurrent < m_nControls)
		{
			ICONTROL_GetRect(m_aCtls[m_nCurrent],&rt);
			rt.dy = m_nNowSize + m_nFontSpace;

			if(m_aCtls[m_nCurrent] == (IControl*)m_pSex)
			{
				DrawSign(&rtSex,m_pIGraphics);
				b = false;
			}

		}
		else
			GetLineRect(m_nCurrent,rt);
		if(b)
			IDISPLAY_DrawRect(m_pIDisplay,&rt,
				RGB_BLACK,RGB_BLACK,IDF_RECT_FRAME);
		
	}	
	IDISPLAY_Update(d);	
}

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

	int i = 0;
	if(m_pUser == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell, AEECLSID_TEXTCTL, (void **)&m_pUser);
		ITEXTCTL_SetProperties(m_pUser,TP_FRAME);
		ITEXTCTL_SetInputMode( m_pUser, AEE_TM_LETTERS );
		m_aCtls[i++] = (IControl*)m_pUser;		
	}
	if(m_pPasswd == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell, AEECLSID_TEXTCTL, (void **)&m_pPasswd);
		ITEXTCTL_SetProperties(m_pPasswd,TP_FRAME);
		ITEXTCTL_SetInputMode( m_pPasswd, AEE_TM_LETTERS );	
		m_aCtls[i++] = (IControl*)m_pPasswd;
	}
	if(m_pPasswdNew == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell, AEECLSID_TEXTCTL, (void **)&m_pPasswdNew);
		ITEXTCTL_SetProperties(m_pPasswdNew,TP_FRAME);
		ITEXTCTL_SetInputMode( m_pPasswdNew, AEE_TM_LETTERS );	
		m_aCtls[i++] = (IControl*)m_pPasswdNew;
	}
	if(m_pNick == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell, AEECLSID_TEXTCTL, (void **)&m_pNick);
		ITEXTCTL_SetProperties(m_pNick,TP_FRAME);
		ITEXTCTL_SetInputMode( m_pNick, AEE_TM_LETTERS );	
		m_aCtls[i++] = (IControl*)m_pNick;
	}
	if(m_pMobile == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell, AEECLSID_TEXTCTL, (void **)&m_pMobile);
		ITEXTCTL_SetProperties(m_pMobile,TP_FRAME);
		ITEXTCTL_SetInputMode( m_pMobile, AEE_TM_LETTERS );	
		m_aCtls[i++] = (IControl*)m_pMobile;
	}
	if(m_pSex == NULL)
	{
		ISHELL_CreateInstance(((CBrewLogin*)f)->m_pIShell,AEECLSID_STATIC,(void**)&m_pSex);
		ISTATIC_SetProperties(m_pSex,ST_CENTERTITLE | ST_NOSCROLL | ST_ENABLE_HLGHT);
		m_aCtls[i++] = (IControl*)m_pSex;
	}
		IBitmap* bmp = ISHELL_LoadResBitmap(m_pShell,GAMEVV_RES_FILE,IDB_MAIN_BARROW);
	if(bmp != NULL)
	{
		AEEBitmapInfo  bi;
		IBITMAP_GetInfo(bmp, &bi, sizeof(bi));
		SETAEERECT(&m_rtArrow,0,0,bi.cx,bi.cy);
		RELEASEIF(bmp,IBITMAP);
	}
	else
		SETAEERECT(&m_rtArrow,0,0,0,0);
	
	UpdateData(true);
}

boolean CBrewLoginCanvas42::UpdateData(boolean bUpdateDisp)
{
	if(!CBrewLoginCanvas3::UpdateData(bUpdateDisp))
		return false;
	if(bUpdateDisp)
	{
		AECHAR* p = frame->m_userMng.userNewPass;
		UINT8 len = frame->m_userMng.userNewPassLength;
		
		if(len > 0)
		{
			UINT8 i;
			for(i = 0; i < len; i++)
				p[i] = NTOHS(p[i]);
			ITEXTCTL_SetText(m_pPasswdNew,p,len);
			for(i = 0; i < len; i++)
				p[i] = HTONS(p[i]);
		}
		if(len = 0)
		{
			MEMCPY(frame->m_userMng.userNewPass,frame->m_userMng.urs.userPass,sizeof(frame->m_userMng.userNewPass));
			frame->m_userMng.userNewPassLength = frame->m_userMng.urs.userPassLength;
		}
	}
	else
	{
		char tmp[50];
		GETTEXT(m_pPasswdNew,frame->m_userMng.userNewPass);
		if(frame->m_userMng.userNewPassLength == 0)
		{
			WSTRCPY(m_errMsg,
				GetDispText(IDS_UMG_NEWPNULL));
			return false;
		}
		WSTRTOSTR(frame->m_userMng.userNewPass,tmp,sizeof(tmp));
		if(STRLEN(tmp) > 10)
		{
			WSTRCPY(m_errMsg,GetDispText(IDS_UMG_NEWPLONG));
			return false;
		}
	}
	return true;
}

void CBrewLoginCanvas42::DisplayControl( IDisplay* pIDisplay, AECHAR* psTextBuf, IControl* pCtl, 
									   AEERect& rRect ,IGraphics* g)
{
	int16 n = rRect.dy;
	if( psTextBuf )
	{
		//ISHELL_LoadResString( pApp->a.m_pIShell, EXPENSETRACKER_RES_FILE, nTitleID, psTextBuf, MAX_RES_STRING_BUF_SIZE * sizeof( AECHAR ) );
		
		// Set the position of the label's daring rectangle
		SETAEERECT( &rRect, rRect.x+2, rRect.y, IDISPLAY_MeasureText( pIDisplay, m_nNowFont, psTextBuf ), m_nNowSize );
		IDISPLAY_DrawText( pIDisplay, m_nNowFont, psTextBuf, -1, rRect.x, rRect.y, &rRect, IDF_ALIGN_MIDDLE| IDF_ALIGN_LEFT );
		IDISPLAY_Update( pIDisplay);
		
		rRect.x = rRect.dx;
		rRect.dx = m_rtInfo.dx - rRect.x;
	}
	
	
	
	
	if(!m_bRedraw)
	{
		if(pCtl != NULL)
			ICONTROL_Redraw(pCtl);
		//return;
	}	
	else
	{
		AEERect rt;
		ICONTROL_GetRect(pCtl,&rt);
		if(rRect.y != rt.y)
		{
			if(pCtl == (IControl*)m_pUser || pCtl == (IControl*)m_pPasswd
				|| pCtl == (IControl*)m_pNick || pCtl == (IControl*)m_pMobile ||
				pCtl == (IControl*)m_pPasswdNew)
			{
				AECHAR p[50];
				ITEXTCTL_GetText((ITextCtl*) pCtl,p,sizeof(p));
				ITEXTCTL_SetText((ITextCtl*) pCtl,p,sizeof(p));
			}
			ICONTROL_SetRect( pCtl, &rRect );
		}
		ICONTROL_Redraw( pCtl );
	}
	if(pCtl == (IControl*)m_pSex)
	{
		AECHAR* ptext;
		if(m_bIsMale)
			ptext = GetDispText(IDS_UMG_MALE);
		else
			ptext = GetDispText(IDS_UMG_FEMALE);
		ISTATIC_SetText((IStatic*)pCtl,ptext,NULL,m_nNowFont,m_nNowFont);		
		n = rRect.dy;
	}
	if(m_aCtls[m_nCurrent] != pCtl)
	{
		n = rRect.dy;
		AEELine ln;
		ln.sx = rRect.x - m_offsetX;
		ln.sy = rRect.y + n - m_offsetY;
		ln.ex = ln.sx + rRect.dx;
		ln.ey = ln.sy;
		IGRAPHICS_DrawLine(m_pIGraphics,&ln);
	}
}

⌨️ 快捷键说明

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