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

📄 softkey.c

📁 这一款新闻类业务的源码
💻 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 + -