📄 promptbox.c
字号:
/*===========================================================================
文件: PromptBox.c
提示框控件的程序文件
===========================================================================*/
#include "PromptBox.h"
PromptBox* PROMPTBOX_New(const char * pszRes)
{
IShell * pIShell = ((AEEApplet *)(GET_APP_INSTANCE()))->m_pIShell;
PromptBox * pPB = MALLOCREC(PromptBox);
AEEDeviceInfo di;
if(pPB == NULL)
return NULL;
ZEROAT(pPB);
//提取手机机型信息
ISHELL_GetDeviceInfo(pIShell,&di);
pPB->pszRes = STRDUP(pszRes);
pPB->fntTitle = AEE_FONT_BOLD;
pPB->fntText = AEE_FONT_NORMAL;
//创建静态文本框
if(SUCCESS != ISHELL_CreateInstance(pIShell, AEECLSID_STATIC, (void **)&(pPB->pIStatic)))
{
PROMPTBOX_Release(pPB);
return NULL;
}
//PROMPTBOX_SetActive(pPB, TRUE);
return pPB;
}
boolean PROMPTBOX_HandleEvent(PromptBox * pPB, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
boolean bReturn;
//if(eCode == EVT_APP_SUSPEND)
// return TRUE;
if(eCode == EVT_APP_RESUME)
{
PROMPTBOX_Redraw(pPB);
return TRUE;
}
if(eCode != EVT_KEY)
return FALSE;
switch(wParam)
{
case AVK_CLR:
case AVK_SELECT:
PROMPTBOX_SetActive(pPB, FALSE);
return TRUE;
default:
bReturn = ISTATIC_HandleEvent(pPB->pIStatic, eCode, wParam, dwParam);
break;
}
return bReturn;
}
boolean PROMPTBOX_IsActive(PromptBox * pPB)
{
return pPB->bActive;
}
//重绘画面
void PROMPTBOX_Redraw(PromptBox * pPB)
{
ISTATIC_Redraw(pPB->pIStatic);
}
//释放资源
void PROMPTBOX_Release(PromptBox * pPB)
{
if (!pPB || !pPB->pIStatic)
{
return;
}
ISTATIC_Release(pPB->pIStatic);
FREEIF(pPB->pszRes);
FREEIF(pPB);
}
void PROMPTBOX_SetActive(PromptBox * pPB, boolean bActive)
{
pPB->bActive = bActive;
ISTATIC_SetActive(pPB->pIStatic, bActive);
if(bActive)
PROMPTBOX_Redraw(pPB);
}
void PROMPTBOX_SetFont(PromptBox * pPB, AEEFont fntTitle, AEEFont fntText)
{
pPB->fntTitle = fntTitle;
pPB->fntText = fntText;
}
void PROMPTBOX_SetProps(PromptBox * pPB, uint32 dwProps)
{
ISTATIC_SetProperties(pPB->pIStatic, dwProps);
}
void PROMPTBOX_SetRect(PromptBox * pPB, AEERect * prc)
{
AEERect rc;
rc.x = prc->x;
rc.y = prc->y;
rc.dx = prc->dx;
rc.dy = prc->dy - MENU_HEIGHT;
ISTATIC_SetRect(pPB->pIStatic, &rc);
}
boolean PROMPTBOX_SetResText(PromptBox * pPB, uint16 wTitleID, uint16 wTextID)
{
AECHAR * pTitle = NULL; //该提示框的标题
AECHAR * pText = NULL; //该提示框的文字
uint32 dwSize = 0;
IShell * pIShell = ((AEEApplet *)(GET_APP_INSTANCE()))->m_pIShell;
//设置标题
if(wTitleID != 0)
{
ISHELL_GetResSize(pIShell, pPB->pszRes, wTitleID, RESTYPE_STRING, &dwSize);
if(dwSize == 0)
return FALSE;
else
{
pTitle = (AECHAR *)MALLOC(dwSize);
if(pTitle == NULL)
return FALSE;
ISHELL_LoadResString(pIShell, pPB->pszRes, wTitleID, pTitle, dwSize);
}
}
//设置文本
if(wTextID != 0)
{
ISHELL_GetResSize(pIShell, pPB->pszRes, wTextID, RESTYPE_STRING, &dwSize);
if(dwSize == 0)
{
FREEIF(pTitle);
return FALSE;
}
else
{
pText = (AECHAR *)MALLOC(dwSize);
if(pText == NULL)
{
FREEIF(pTitle);
return FALSE;
}
ISHELL_LoadResString(pIShell, pPB->pszRes, wTextID, pText, dwSize);
}
}
if(ISTATIC_SetText(pPB->pIStatic, pTitle, pText, pPB->fntTitle, pPB->fntText))
{
FREEIF(pTitle);
FREEIF(pText);
return TRUE;
}
else
{
FREEIF(pTitle);
FREEIF(pText);
return FALSE;
}
}
boolean PROMPTBOX_SetText(PromptBox * pPB, AECHAR * pTitle, AECHAR * pText)
{
return ISTATIC_SetText(pPB->pIStatic, pTitle, pText, pPB->fntTitle, pPB->fntText);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -