📄 mmieditor.c
字号:
{
win_show(data->edt_win); /* in order to update the Softkeys */
}
else
{
edtShow(data->edt_edt);
}
}
}
else
{
/* leave editor if buffer already empty */
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
}
break;
case KCD_0: /* '+' key */
if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore normal keys if in read-only mode */
{
if (data->editor_data.hide)
{
/* in hidden mode do not allow entering of '+' */
editor_hideClear(data); /* remove the '0' */
}
else
{
edtChar(data->edt_edt,ecBack); /* remove the '0' */
edtChar(data->edt_edt,'+'); /* insert the '+' */
if (data->editor_data.min_enter > 0)
{
win_show(data->edt_win); /* in order to update the Softkeys */
}
else
{
edtShow(data->edt_edt);
}
}
}
break;
default:
{
// change the Lowercase to Uppercase and visa-versa
//only possible in Alpha mode (SH - or format mode)
if (data->editor_data.mode EQ ALPHA_MODE || data->editor_data.mode EQ FORMAT_MODE)
{
if (UPPER_CASE EQ FALSE)
{
TRACE_EVENT("UPPER_CASE EQ FALSE");
UPPER_CASE = TRUE;
upCase = FALSE;
displaySoftKeys_edition (TxtLowercase ,TxtNull,TxtNull);
}
else
{
TRACE_EVENT("UPPER_CASE EQ TRUE");
UPPER_CASE = FALSE;
upCase = TRUE;
displaySoftKeys_edition (TxtUppercase ,TxtNull,TxtNull);
}
if (data->editor_data.mode NEQ FORMAT_MODE) // SH - for format mode, don't erase the character
edtChar(data->edt_edt,ecBack);
}
}
return MFW_EVENT_CONSUMED; /* we don't handle other long presses here */
}
}
else
{
switch (keyboard->code)
{
case KCD_CALL:
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_CALL, NULL);
break;
case KCD_MNURIGHT:
case KCD_MNUUP:
if (data->editor_data.mode EQ READ_ONLY_MODE)
edtChar(data->edt_edt,ecUp);
else if (!data->editor_data.hide) // SH - key not available in hide mode
{
/* SH - format mode, skip over fixed characters */
if (data->editor_data.mode EQ FORMAT_MODE) // formatted input
{
TRACE_EVENT("MNUUP");
editCharFindNext(ecRight); // Insert character & move cursor forward once
}
/* end of format mode modification */
else
{
edtChar(data->edt_edt,ecRight);
}
}
edtShow(data->edt_edt);
break;
case KCD_MNULEFT:
case KCD_MNUDOWN:
if (data->editor_data.mode EQ READ_ONLY_MODE)
edtChar(data->edt_edt,ecDown);
else if (!data->editor_data.hide) // SH - key not available in hide mode
{
/* SH - format mode, skip over fixed characters */
if (data->editor_data.mode EQ FORMAT_MODE) // formatted input
editFindPrev(); // find previous non-fixed character
/* end of format mode modification */
else
{
edtChar(data->edt_edt,ecLeft);
}
}
edtShow(data->edt_edt);
break;
case KCD_MNUSELECT:
case KCD_LEFT:
if (strlen(data->editor_data.editor_attr.text) < data->editor_data.min_enter)
{
/* entered less than the required number of chars */
if (data->editor_data.AlternateLeftSoftKey NEQ TxtNull)
{
/* an alternate softkey were defined: execute it*/
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_ALTERNATELEFT, NULL);
}
}
else if (data->editor_data.LeftSoftKey NEQ TxtNull)
{
/* left Softkey is enabled (and entered sufficient number of chars): execute it */
//KGT
/* get the orginal text back into the editor instead of the
hide buffer ( only filled with '*') */
if (data->editor_data.hide)
editor_hideTerminate(data);
//end KGT
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_LEFT, NULL);
}
else
{
//GW-SPR#1035-Added SAT changes from 33x build.
/*NM, 090702
in case of long labels (>14chars; when it doesnt fit on the first line)
so we open a second editor and return by any keypress
*/
if (over_length_label EQ TRUE)
{
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
}
}
break;
case KCD_HUP:
if (data->editor_data.RightSoftKey NEQ TxtNull)
{
/* Right softkey is enabled: execute it */
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_HUP, NULL);
}
break;
case KCD_RIGHT:
if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore clear key if in read-only mode */
{
if(data->editor_data.editor_attr.text[0] NEQ '\0')
{
/* buffer is not empty, delete the char before the cursor */
//KGT
if ( data->editor_data.hide )
editor_hideClear(data);
else
//end KGT
{
/* SH - format mode, skip over fixed characters */
if (data->editor_data.mode EQ FORMAT_MODE) // SH - formatted input
{
switch (editFindPrev()) // Skip over fixed characters
{
case 1:
edtChar(data->edt_edt,' '); // overwrite with space
edtChar(data->edt_edt,ecLeft); // Move cursor left again
break;
case 2:
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL); // Exit editor
break;
case 3:
edtChar(data->edt_edt,ecRight); // Last character - shorten string
edtChar(data->edt_edt,ecBack);
break;
}
}
/* end of format mode modification */
else
{
edtChar(data->edt_edt,ecBack);
}
if (data->editor_data.min_enter > 0)
{
win_show(data->edt_win); /* in order to update the Softkeys */
}
else
{
edtShow(data->edt_edt);
}
}
}
else
{
/* leave editor if buffer already empty */
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
}
}
else
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
break;
#ifdef EASY_TEXT_ENABLED
case (KCD_HASH):
{ if (AllowPredText == TRUE)
if (FFS_flashData.PredTextAvailable == TRUE)
{
FFS_flashData.PredTextSelected = TRUE;
win_show(data->edt_win);
break;
}
{
editEventKey(event,keyboard);
if (data->editor_data.min_enter > 0)
{
win_show(data->edt_win); /* in order to update the Softkeys */
}
else
{
edtShow(data->edt_edt);
}
}
}
break;
#endif
default: /* any key */
if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore normal keys if in read-only mode */
{
{
/* SH - format mode, setup pointers to format string & index */
if (data->editor_data.mode EQ FORMAT_MODE)
{
setFormatPointers (data->editor_data.FormatString, &(data->editor_data.formatIndex),
&(data->editor_data.fieldIndex));
}
/* End of format mode modification */
editEventKey(event,keyboard);
if (data->editor_data.min_enter > 0)
{
win_show(data->edt_win); /* in order to update the Softkeys */
}
else
{
edtShow(data->edt_edt);
}
}
}
/*NM, 090702
in case of long labels (>14chars; when it doesnt fit on the first line)
so we open a second editor and return by any keypress
*/
else
{
if (over_length_label EQ TRUE)
{
SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
}
}
break;
}
}
break;
//GW Removed T9 code.
/* E_PIN_SECURITY entering
*
*/
case E_PIN_SECURITY:
switch (keyboard->code)
{
case KCD_MNUUP:
break;
case KCD_MNUDOWN:
break;
case KCD_STAR:
//only possible when the first digit is a '*'
if (strlen(data->editor_data.editor_attr.text) EQ 0 && data->editor_data.hide)
{
data->ss_string = TRUE;
//the string should be visible on screen
data->editor_data.hide = FALSE;
editEventKey(event,keyboard);
}
break;
case KCD_HASH:
if(data->ss_string)
{
T_MFW_SS_RETURN ssRes;
editEventKey(event,keyboard);
ssRes = ss_check_ss_string((UBYTE*)data->editor_data.editor_attr.text);
switch (ssRes)
{
case MFW_SS_MMI:
get_imei((char*)data->imei);
showIMEI(win,(char*)data->imei);
editor_hideClearAll(data);
//set back to the default
data->ss_string = FALSE;
// go back in the hide mode
data->editor_data.hide = TRUE;
return MFW_EVENT_CONSUMED;
}
}
else if (strlen(data->editor_data.editor_attr.text) >= data->editor_data.min_enter)
{
if (data->editor_data.hide)
editor_hideTerminate(data);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -