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

📄 shortcuts.c

📁 MTK6226修改平台UI的文件介绍
💻 C
📖 第 1 页 / 共 5 页
字号:
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_shct_cntx.Order = g_shct_cntx.CurrSelShct + 1;
    EntryNewScreen(SCR_ID_SHCT_ORDER, NULL, ShctSetOrder, NULL);

    guiBuffer = GetCurrGuiBuffer(SCR_ID_SHCT_ORDER);
    if (g_shct_cntx.CurrOptionShct == SHR_OPTIONS_ADD)
    {
        ShowCategory87Screen(
            SHORTCUTS_CHANGE_ORDER_STRING_ID,
            GetRootTitleIcon(EXTRA_SHORTCUTS_MENUID),
            STR_GLOBAL_OK,
            IMG_GLOBAL_OK,
            STR_GLOBAL_BACK,
            IMG_GLOBAL_BACK,
            1,
            (S32) (g_shct_cntx.NumSelShct + 1),
            &g_shct_cntx.Order,
            guiBuffer);
    }
    else
    {
        ShowCategory87Screen(
            SHORTCUTS_CHANGE_ORDER_STRING_ID,
            GetRootTitleIcon(EXTRA_SHORTCUTS_MENUID),
            STR_GLOBAL_OK,
            IMG_GLOBAL_OK,
            STR_GLOBAL_BACK,
            IMG_GLOBAL_BACK,
            1,
            (S32) (g_shct_cntx.NumSelShct),
            &g_shct_cntx.Order,
            guiBuffer);
    }

    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetLeftSoftkeyFunction(ShctSaveChanges, KEY_EVENT_UP);
}


/*****************************************************************************
 * FUNCTION
 *  ShctSaveChanges
 * DESCRIPTION
 *  Save change of shorcut
 * PARAMETERS
 *  void
 *  index(?)        [IN]        List of shortcut index
 * RETURNS
 *  string index(?)
 *****************************************************************************/
void ShctSaveChanges(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 i = 0;
    shct_item_struct temp;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (g_shct_cntx.CurrOptionShct)
    {
        case SHR_OPTIONS_EDIT:
            g_shct_cntx.SelShctList[g_shct_cntx.CurrSelShct].shortcuts =
                g_shct_cntx.CandShctList[g_shct_cntx.CurrEditShct];
            break;

        case SHR_OPTIONS_CHANGE_ORDER:
            temp = g_shct_cntx.SelShctList[g_shct_cntx.CurrSelShct];
            if (g_shct_cntx.Order < g_shct_cntx.CurrSelShct + 1)
            {
                /* move (order-1) ~ (current select item-1) to next position */
                for (i = g_shct_cntx.CurrSelShct; i >= g_shct_cntx.Order; i--)
                {
                    memcpy(&g_shct_cntx.SelShctList[i], &g_shct_cntx.SelShctList[i - 1], sizeof(shct_item_struct));
                }
            }
            else
            {
                memcpy(
                    &g_shct_cntx.SelShctList[g_shct_cntx.CurrSelShct],
                    &g_shct_cntx.SelShctList[g_shct_cntx.CurrSelShct + 1],
                    sizeof(shct_item_struct) * (g_shct_cntx.Order - (g_shct_cntx.CurrSelShct + 1)));
            }
            g_shct_cntx.SelShctList[g_shct_cntx.Order - 1] = temp;
            g_shct_cntx.CurrSelShct = g_shct_cntx.Order - 1;
            break;

        case SHR_OPTIONS_ADD:
            for (i = g_shct_cntx.NumSelShct - 1; i >= g_shct_cntx.Order - 1; i--)
            {
                memcpy(&g_shct_cntx.SelShctList[i + 1], &g_shct_cntx.SelShctList[i], sizeof(shct_item_struct));
            }

            g_shct_cntx.SelShctList[g_shct_cntx.Order - 1].shortcuts =
                g_shct_cntx.CandShctList[g_shct_cntx.CurrEditShct];
            g_shct_cntx.SelShctList[g_shct_cntx.Order - 1].shortcut_state = ENABLE_STATE;

            g_shct_cntx.NumSelShct++;
            break;
        default:
            break;
    }
    ShctWriteToNvram();

    DisplayPopup((U8*) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, 2000, SUCCESS_TONE);

    DeleteUptoScrID(SCR_ID_SHCT_MAIN_MENU);
}


/*****************************************************************************
 * FUNCTION
 *  ShctShowPopupScreen
 * DESCRIPTION
 *  Display popup screen with corresponding messages.
 * PARAMETERS
 *  Msg     [IN]        Enum value of message type.
 * RETURNS
 *  void
 *****************************************************************************/
void ShctShowPopupScreen(U16 Msg)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 ScreenToShow;
    U16 ScreenImageId;
    ALL_TONE_ENUM ScreenTone;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (Msg)
    {
        case STR_GLOBAL_EMPTY:
        {
            ScreenImageId = IMG_GLOBAL_EMPTY;
            ScreenToShow = SCR_ID_SHCT_OPTION;
            ScreenTone = EMPTY_LIST_TONE;
            break;

        }
        case SHORTCUTS_FULL_MSG_STRING_ID:
        {
            ScreenImageId = IMG_GLOBAL_NO;
            ScreenToShow = SCR_ID_SHCT_OPTION;
            ScreenTone = EMPTY_LIST_TONE;
            break;

        }
        default:    /* case STR_GLOBAL_DONE */
        {
            ScreenImageId = IMG_GLOBAL_ACTIVATED;
            ScreenToShow = SCR_ID_SHCT_MAIN_MENU;
            ScreenTone = SUCCESS_TONE;
            break;
        }
    }

    DisplayPopup((U8*) GetString(Msg), ScreenImageId, 0, UI_POPUP_NOTIFYDURATION_TIME, (U8) ScreenTone);

    DeleteUptoScrID(ScreenToShow);
}

#if defined(__MMI_DEDICATED_KEY_SHORTCUTS__)


/*****************************************************************************
 * FUNCTION
 *  ShctReadDedicatedListFromNVRAM
 * DESCRIPTION
 *  Read dedicated key shortcut list and initialized.
 * PARAMETERS
 *  void
 *  index(?)        [IN]        List of shortcut index
 * RETURNS
 *  void
 *****************************************************************************/
void ShctReadDedicatedListFromNVRAM(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;
    U16 nvramData[SHCT_NVRAM_SIZE];
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ReadRecord(NVRAM_EF_SHORTCUTS_LID, 2, (void*)nvramData, SHCT_NVRAM_SIZE, &error);

    for (i = 0; i < TOTAL_DEDICATED_KEYS; i++)
    {
        if (nvramData[i] == 0xffff)
        {
            memcpy((void*)&nvramData, (void*)&gShctDefaultDediList, TOTAL_DEDICATED_KEYS * 2);
            break;
        }
    }

    for (i = 0; i < TOTAL_DEDICATED_KEYS; i++)
    {
        if (maxHiliteInfo[nvramData[i]].entryFuncPtr == NULL)
        {
            g_shct_cntx.DediShctList[i] = SHCT_DEFAULT_MENU_ID;
        }
        else
        {
            memcpy((void*)&g_shct_cntx.DediShctList[i], (void*)&nvramData[i], 2);
        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  ShctWriteDedicatedListToNVRAM
 * DESCRIPTION
 *  Write dedicated key shortcut list to NVRAM.
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void ShctWriteDedicatedListToNVRAM(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 nvramData[SHCT_NVRAM_SIZE];
    S16 error;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    memset(nvramData, 0xff, sizeof(nvramData));

    memcpy((void*)&nvramData, (void*)&g_shct_cntx.DediShctList, sizeof(g_shct_cntx.DediShctList));

    WriteRecord(NVRAM_EF_SHORTCUTS_LID, 2, (void*)nvramData, SHCT_NVRAM_SIZE, &error);
}


/*****************************************************************************
 * FUNCTION
 *  EntryShctArrowKeyList
 * DESCRIPTION
 *  Display Up/Down/Left/Right key for editing.
 * PARAMETERS
 *  void
 * RETURNS
 *  string index(?)
 *****************************************************************************/
void EntryShctArrowKeyList(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 ItemList[TOTAL_DEDICATED_KEYS];
    U16 nItems;
    U8 *guiBuffer;
    U8 *popupList[TOTAL_DEDICATED_KEYS];
    S32 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_ID_SHCT_DEDICATED_KEYS, NULL, EntryShctArrowKeyList, NULL);
    guiBuffer = GetCurrGuiBuffer(SCR_ID_SHCT_DEDICATED_KEYS);
    nItems = GetNumOfChild(MENU_SETTING_DEDICATED_KEYS);
    GetSequenceStringIds(MENU_SETTING_DEDICATED_KEYS, ItemList);

    /* get popup hint */
    for (i = 0; i < TOTAL_DEDICATED_KEYS; i++)
    {
        if (g_shct_cntx.DediShctList[i] == SHCT_DEFAULT_MENU_ID)
        {
            popupList[i] = (U8*) GetString(MAIN_MENU_SHORTCUTS_TEXT);
        }
        else
        {
            popupList[i] = (U8*) GetString(ShctGetStringID(g_shct_cntx.DediShctList[i]));
        }
    }

    SetParentHandler(MENU_SETTING_DEDICATED_KEYS);
    RegisterHighlightHandler(HighlightShctSelectedKey);

    ShowCategory52Screen(
        STR_DEDICATED_KEY,
        GetRootTitleIcon(MENU_SETTING_DEDICATED_KEYS),
        STR_EDIT,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        nItems,
        ItemList,
        (U16*) gIndexIconsImageList,
        popupList,
        0,
        0,
        guiBuffer);

    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
    SetLeftSoftkeyFunction(EntryShctEditDedicatedKey, KEY_EVENT_UP);
    SetKeyHandler(EntryShctEditDedicatedKey, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}


/*****************************************************************************
 * FUNCTION
 *  HighlightDedicatedKeys
 * DESCRIPTION
 *  Highlight handler of dedicated key shortcut item in Phonesetup
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void HighlightDedicatedKeys(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(EntryShctArrowKeyList, KEY_EVENT_UP);
    SetKeyHandler(EntryShctArrowKeyList, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
}


/*****************************************************************************
 * FUNCTION
 *  HighlightShctSelectedKey
 * DESCRIPTION
 *  Highlight handler of dedicated keys setting
 * PARAMETERS
 *  nIndex      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void HighlightShctSelectedKey(S32 nIndex)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_shct_cntx.CurrSelArrow = (U8) nIndex;
}


/*****************************************************************************
 * FUNCTION
 *  EntryShctEditDedicatedKey
 * DESCRIPTION
 *  Entry edit dedicated key shortcut screen.
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void EntryShctEditDedicatedKey(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;
    U8 highlighted = 0;
    U16 EditShortcutsIds[SHCT_MAX_CANDI_LIST + 1];
    U8 *guiBuffer;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_ID_SHCT_EDIT_DEDICATED_KEYS, NULL, EntryShctEditDedicatedKey, NULL);

    /* the first item == Shortcuts */
    EditShortcutsIds[0] =

⌨️ 快捷键说明

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