?? softkey.c
字號:
/*===========================================================================
文件: Softkey.c
Softkey提示框控件的實現
===========================================================================*/
#include "softkey.h"
//初始化
CSOFTKEY * CSoftkey_New(uint16 nDeviceWidth, uint16 nDeviceHight)
{
CSOFTKEY* pSoftKey = NULL;
AEEApplet* pApp = NULL;
pSoftKey = MALLOC(sizeof(CSOFTKEY));
pApp = (AEEApplet*)GETAPPINSTANCE();
if(!pSoftKey || !pApp)
return NULL;
pSoftKey->m_pIDisplay = pApp->m_pIDisplay;
pSoftKey->m_pIShell = pApp->m_pIShell;
pSoftKey->m_nDeviceWidth = nDeviceWidth;
pSoftKey->m_nDeviceHight = nDeviceHight;
//設置描畫區域大小
SETAEERECT(&pSoftKey->m_rcSoftkey,0,
pSoftKey->m_nDeviceHight - BOTTOM_BAR_HEIGHT,
nDeviceWidth,
BOTTOM_BAR_HEIGHT);
//提取字符串信息
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_RETURN, pSoftKey->m_pSoftKey[1] , sizeof(pSoftKey->m_pSoftKey[1]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_CONFIRM,pSoftKey->m_pSoftKey[2] , sizeof(pSoftKey->m_pSoftKey[2]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_SEL, pSoftKey->m_pSoftKey[3] , sizeof(pSoftKey->m_pSoftKey[3]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_VIEW, pSoftKey->m_pSoftKey[4] , sizeof(pSoftKey->m_pSoftKey[4]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_MENU, pSoftKey->m_pSoftKey[5] , sizeof(pSoftKey->m_pSoftKey[5]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_EXIT, pSoftKey->m_pSoftKey[6] , sizeof(pSoftKey->m_pSoftKey[6]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_CANCEL, pSoftKey->m_pSoftKey[7] , sizeof(pSoftKey->m_pSoftKey[7]));
ISHELL_LoadResString(pSoftKey->m_pIShell, NEWSDDT_RES_FILE, IDS_SOFTKEY_CUST, pSoftKey->m_pSoftKey[8] , sizeof(pSoftKey->m_pSoftKey[8]));
return pSoftKey;
}
//釋放結構體
void CSoftkey_Release(CSOFTKEY* pSoftKey)
{
FREEIF(pSoftKey);
}
//描畫Softkey提示框
void CSoftKey_Draw(CSOFTKEY *pSoftKey)
{
uint8 nSoftLeft = 0;
uint8 nSoftCenter = 0;
uint8 nSoftRight = 0;
if (!pSoftKey || (pSoftKey && pSoftKey->m_enSoftkeyType == SOFTKEY_TYPE_NULL))
return;
//提取Softkey提示框的字符串信息
switch (pSoftKey->m_enSoftkeyType)
{
case SOFTKEY_TYPE_RETURN_SEL: //返回 選擇
nSoftLeft = SOFTKEY_SEL;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_RETURN;
break;
case SOFTKEY_TYPE_NULL_CONFIRM: //確定 空
nSoftLeft = SOFTKEY_CONFIRM;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_NULL;
break;
case SOFTKEY_TYPE_RETURN_CONFIRM: //返回 確定
nSoftLeft = SOFTKEY_RETURN;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_CONFIRM;
break;
case SOFTKEY_TYPE_MENU_RETURN: //菜單 返回
nSoftLeft = SOFTKEY_MENU;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_RETURN;
break;
case SOFTKEY_TYPE_SEL_EXIT: //選擇 退出
nSoftLeft = SOFTKEY_SEL;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_EXIT;
break;
case SOFTKEY_TYPE_CONFIRM_CANCEL:
nSoftLeft = SOFTKEY_CONFIRM;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_CANCEL;
break;
case SOFTKEY_TYPE_CUSTOMISE_RETURN: //定制 返回
nSoftLeft = SOFTKEY_CUSTOMISE;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_RETURN;
break;
case SOFTKEY_TYPE_NULL:
default:
nSoftLeft = SOFTKEY_NULL;
nSoftCenter = SOFTKEY_NULL;
nSoftRight = SOFTKEY_NULL;
break;
}
//根據Softkey種別進行描畫
IDISPLAY_DrawRect(pSoftKey->m_pIDisplay,&pSoftKey->m_rcSoftkey,0x00000000,0xffffffff,IDF_RECT_FILL|IDF_RECT_FRAME);
if (nSoftLeft != SOFTKEY_NULL)
{
IDISPLAY_DrawText(pSoftKey->m_pIDisplay, AEE_FONT_NORMAL, pSoftKey->m_pSoftKey[nSoftLeft], -1, 2, pSoftKey->m_nDeviceHight - BOTTOM_BAR_HEIGHT, NULL, IDF_TEXT_TRANSPARENT);
}
if (nSoftCenter != SOFTKEY_NULL)
{
IDISPLAY_DrawText(pSoftKey->m_pIDisplay, AEE_FONT_NORMAL, pSoftKey->m_pSoftKey[nSoftCenter], -1, 0, pSoftKey->m_nDeviceHight - BOTTOM_BAR_HEIGHT, NULL, IDF_TEXT_TRANSPARENT|IDF_ALIGN_CENTER);
}
if (nSoftRight != SOFTKEY_NULL)
{
IDISPLAY_DrawText(pSoftKey->m_pIDisplay, AEE_FONT_NORMAL, pSoftKey->m_pSoftKey[nSoftRight], -1, 1, pSoftKey->m_nDeviceHight - BOTTOM_BAR_HEIGHT, NULL, IDF_TEXT_TRANSPARENT|IDF_ALIGN_RIGHT);
}
}
//設置Softkey種別
void CSoftKey_SetSoftKeyType(CSOFTKEY *pSoftKey, EnSoftkeyType enSoftkeyType)
{
if (!pSoftKey)
return;
pSoftKey->m_enSoftkeyType = enSoftkeyType;
}
//FILE END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -