?? mainframe.cpp
字號:
AECHAR pText[40];
ISHELL_LoadResString(m_pApplet->m_pIShell, RES_FILE, MENU_JPTJ, pText, sizeof(pText));
m_state = GS_BROWSE_WEB;
IDISPLAY_SetColor(m_pApplet->m_pIDisplay, CLR_USER_BACKGROUND, MAKE_BACK_COLOR);
m_pObject = new CContentList;
m_pObject->Init(pText, 2, &m_frameInfo);
m_pObject->Create();
update = true;
}
break;
case 1: // 精彩分類
{
AECHAR pText[40];
ISHELL_LoadResString(m_pApplet->m_pIShell, RES_FILE, MENU_JCFL, pText, sizeof(pText));
m_state = GS_BROWSE_WEB;
IDISPLAY_SetColor(m_pApplet->m_pIDisplay, CLR_USER_BACKGROUND, MAKE_BACK_COLOR);
m_pObject = new CCategory;
m_pObject->Init(pText, 0, &m_frameInfo);
m_pObject->Create();
update = true;
}
break;
case 2: // 搜索
{
AECHAR pText[40];
ISHELL_LoadResString(m_pApplet->m_pIShell, RES_FILE, MENU_SEARCH, pText, sizeof(pText));
m_state = GS_BROWSE_WEB;
IDISPLAY_SetColor(m_pApplet->m_pIDisplay, CLR_USER_BACKGROUND, MAKE_BACK_COLOR);
m_pObject = new CSearchContent;
m_pObject->Init(pText, 1, &m_frameInfo);
m_pObject->Create();
update = true;
}
break;
case 3: // 我的收藏
{
AECHAR pText[40];
ISHELL_LoadResString(m_pApplet->m_pIShell, RES_FILE, MENU_WDSC, pText, sizeof(pText));
m_state = GS_BROWSE_MYDOC;
IDISPLAY_SetColor(m_pApplet->m_pIDisplay, CLR_USER_BACKGROUND, MAKE_BACK_COLOR);
m_pObject = new CMyDoc;
m_pObject->Init(pText, 1, &m_frameInfo);
m_pObject->Create();
update = true;
}
break;
case 4: //help:
m_state = GS_ABOUT_TEXT;
ClearScreen();
ShowAbout();
update = true;
break;
default:
m_nMenuSelected = NULL;
break;
}
break;
case GS_ABOUT_TEXT:
if (m_bRegenText)
{
m_bRegenText = false;
ShowAbout();
}
break;
case GS_RULES_TEXT:
if (m_bRegenText)
{
m_bRegenText = false;
ShowRules();
}
break;
case GS_MENU_TEXT_EXIT:
if (m_pText != NULL)
{
ISTATIC_Release(m_pText);
m_pText = NULL;
}
m_state = GS_MENU;
break;
case GS_SEACHE:
ShowSeache();
break;
}
m_stateBuf = m_state;
if (update) IDISPLAY_Update (m_pApplet->m_pIDisplay);
}
void CMainFrame::ShowMenu()
{
int cxScreen = m_device.cxScreen;
int cyScreen = m_device.cyScreen;
// 背景圖
// DrawPicRect(m_imgPanelBase, 0, 0, cxScreen, cyScreen);
DrawPicRect(m_imgPanelBase2, 0, 0, cxScreen, cyScreen);
if (m_nMenuSelected >=0 && m_nMenuSelected < MENU_COUNT)
{
int xoff = 11, yoff = 38, i;
AEEImageInfo info;
IIMAGE_GetInfo(m_imgPanelBase2, &info);
xoff = 11 + (cxScreen - info.cx) / 2;
yoff = 25 + (cyScreen - info.cy) / 2;
// 圖標
for (i = 0; i < MENU_COUNT; i++)
{
IImage * pImage;
if (i == m_nMenuSelected)
pImage = m_icon[i * 2 + 1];
else
pImage = m_icon[i * 2];
if(pImage)
{
IIMAGE_Draw(pImage, xoff, yoff);
yoff += 18;
}
}
}
}
void CMainFrame::ShowRules()
{
AECHAR * str = NULL;
ISHELL_LoadResString(m_pApplet->m_pIShell, RES_FILE ,IDS_HELP_TEXT, m_wCharBuf1, CBUF1SIZE);
LoadWideText(m_pApplet->m_pIShell, IDS_HELP_TITLE, &str, RES_FILE);
_parseEscapeAEChars( m_wCharBuf1 );
ShowText (m_wCharBuf1, str, 1);
FREEIF(str);
}
void CMainFrame::ShowSeache()
{
AEERect rcScreen;
rcScreen.x = 0;
rcScreen.y = 0;
rcScreen.dx = m_device.cxScreen;
rcScreen.dy = m_device.cyScreen;
IStatic* pIStatic=NULL;
ShowResString(m_pApplet->m_pIShell, &pIStatic, &rcScreen, NULL, IDS_ERR_MEM);
if(pIStatic)
ReleaseObj((void * *)&pIStatic);
}
void CMainFrame::ShowAbout()
{
AEERect rc;
rc.x=0;
rc.y=0;
rc.dx=m_device.cxScreen;
rc.dy=m_device.cyScreen;
m_html.SetRect(&rc);
m_html.LoadResStringAndParseBuffer(RES_FILE,m_nHelpCurrent);
}
void CMainFrame::ShowText(AECHAR *text, AECHAR *exit, int justify)
{
AEERect rect;
if (m_pText)
ReleaseObj((void**)&m_pText);
ISHELL_CreateInstance(m_pApplet->m_pIShell, AEECLSID_STATIC,(void **)&m_pText);
if (justify == 1)
{
ISTATIC_SetProperties(m_pText, ST_NOSCROLL);
}
rect.x = 0; rect.y = 0;
rect.dx = m_device.cxScreen;
rect.dy = m_device.cyScreen;
ISTATIC_SetRect(m_pText, &rect);
ISTATIC_SetText( m_pText, exit, text,
AEE_FONT_BOLD, AEE_FONT_NORMAL );
ISTATIC_SetActive(m_pText, true);
ISTATIC_Redraw(m_pText);
}
void CMainFrame::ClearScreen()
{
IDISPLAY_ClearScreen (m_pApplet->m_pIDisplay); // Clear whole screen
}
void CMainFrame::StartTimers()
{
SetTimer();
SetClockTimer();
}
void CMainFrame::SetTimer()
{
ISHELL_SetTimer(m_pApplet->m_pIShell, m_wTimerInterval, (PFNNOTIFY)(TimerCallback), (void *)this);
}
void CMainFrame::SetClockTimer()
{
ISHELL_SetTimer(m_pApplet->m_pIShell, 1000 , (PFNNOTIFY)(ClockTimerCallback), (void *)this);
}
void CMainFrame::CancelTimers()
{
ISHELL_CancelTimer(m_pApplet->m_pIShell, (PFNNOTIFY)(TimerCallback), (void *)this);
ISHELL_CancelTimer(m_pApplet->m_pIShell, (PFNNOTIFY)(ClockTimerCallback), (void *)this);
}
void CMainFrame::CancelClockTimer()
{
ISHELL_CancelTimer(m_pApplet->m_pIShell, (PFNNOTIFY)(ClockTimerCallback), (void *)this);
}
void CMainFrame::TimerCallback(CMainFrame *pMe)
{
pMe->m_wFrameCount++;
pMe->DoGame();
pMe->SetTimer();
}
void CMainFrame::ClockTimerCallback(CMainFrame *pMe)
{
pMe->SetClockTimer();
if (pMe->m_wTimeLeft)
{
pMe->m_wTimeLeft--;
}
}
void CMainFrame::ClearTmpFile()
{
IFileMgr *pFileMgr;
// 打開文件
ISHELL_CreateInstance(m_pApplet->m_pIShell, AEECLSID_FILEMGR, (void **)&pFileMgr);
if (pFileMgr == NULL) return;
// 開始枚舉文件
if (IFILEMGR_EnumInit(pFileMgr, "", FALSE) == SUCCESS)
{
FileInfo pInfo;
char szPrefix1[] = {'t', 'e', 'm', 'p', '\0'};
while (IFILEMGR_EnumNext(pFileMgr, &pInfo))
{
char * lpName = pInfo.szName;
// 比較前綴“temp”
if (STRNICMP(lpName, szPrefix1, 4) == 0)
{
IFILEMGR_Remove(pFileMgr, lpName);
}
}
}
IFILEMGR_Release(pFileMgr);
pFileMgr = NULL;
}
boolean CMainFrame::LoadMenuImage()
{
int i = 0;
m_nPanelPic = 0;
m_imgLogo = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_LOGO);
m_imgLogo1 = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_LOGO1);
// m_imgPanelBase = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_BACK);
m_imgPanelBase2 = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_BACK2);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_JPTJ);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_JPTJ_SEL);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_JCFL);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_JCFL_SEL);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_SEARCH);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_SEARCH_SEL);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_WDSC);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_WDSC_SEL);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_HELP);
m_icon[i++] = ISHELL_LoadResImage(m_pApplet->m_pIShell, RES_FILE, BM_MENU_HELP_SEL);
return TRUE;
}
void CMainFrame::ReleaseImage()
{
int i = 0;
if(m_imgLogo1)
IIMAGE_Release(m_imgLogo1);
m_imgLogo1 = NULL;
if(m_imgLogo)
IIMAGE_Release(m_imgLogo);
m_imgLogo = NULL;
/*
if(m_imgPanelBase)
IIMAGE_Release(m_imgPanelBase);
m_imgPanelBase = NULL;
*/
if(m_imgPanelBase2)
IIMAGE_Release(m_imgPanelBase2);
m_imgPanelBase2 = NULL;
for (i = 0; i < MENU_COUNT * 2; i++)
{
if(m_icon[i])
IIMAGE_Release(m_icon[i]);
m_icon[i] = NULL;
}
}
void CMainFrame::ReleaseLogo()
{
if(m_imgLogo1)
IIMAGE_Release(m_imgLogo1);
m_imgLogo1 = NULL;
if(m_imgLogo)
IIMAGE_Release(m_imgLogo);
m_imgLogo = NULL;
}
void CMainFrame::DrawFrame(IImage* img,int x,int y,int count,int index)
{
if(!img) return;
int w = GetImageWidth(img) / count;
IIMAGE_SetDrawSize(img,w,GetImageHeight(img));
IIMAGE_SetOffset(img,w * index,0);
IIMAGE_DrawFrame(img,0,x,y);
}
void CMainFrame::DrawPic(IImage *img, int xoff, int yoff)
{
if (img)
IIMAGE_Draw(img, xoff, yoff);
}
void CMainFrame::HtmlViewerNotify(CMainFrame *cm, HViewNotify *phvn)
{
short resid;
switch(phvn->code){
case HVN_JUMP:
if(0 == STRCMP(phvn->u.jump.pszURL,"_exit")){
cm->m_html.SetRect(NULL);
cm->m_state = GS_MENU;
}else{
if(0 == STRCMP(phvn->u.jump.pszURL,"HELP_TOP")) resid = TEXT_HELPTOP;
else if(0 == STRCMP(phvn->u.jump.pszURL,"HELP_BASIC")) resid = TEXT_HELPBASIC;
else if(0 == STRCMP(phvn->u.jump.pszURL,"HELP_QUESTION")) resid = TEXT_HELPQUESTION;
else if(0 == STRCMP(phvn->u.jump.pszURL,"HELP_PLAY")) resid = TEXT_HELPPLAY;
else if(0 == STRCMP(phvn->u.jump.pszURL,"HELP_ABOUT")) resid = TEXT_HELPABOUT;
else resid = 0;
cm->m_nHelpCurrent = resid;
if(resid != 0){
cm->m_html.LoadResStringAndParseBuffer(RES_FILE,resid);
}
}
break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -