📄 shortcuts.c
字号:
/*----------------------------------------------------------------*/
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 */
EditSh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -