📄 sms.c
字号:
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pMessageText, TRUE);
}
return TRUE;
case EVT_COMMAND:
if(pApp->m_focus == SOFTKEY_OK_CTL)
{
CurSel = IMENUCTL_GetSel(pApp->m_pSoftKey);
if(CurSel == IDS_OK)
{
pApp->m_focus= MESSAGE_TEXT_CTL;
TextMesage_init(pApp);
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pMessageText, TRUE);
}
else
{
ISHELL_CloseApplet(pApp->a.m_pIShell, FALSE);
return TRUE;
}
}
else if(pApp->m_focus == SOFTKEY_MESSAGE_CTL) //send sms
{
CurSel=IMENUCTL_GetSel(pApp->m_pMessageSoftKey);
if(CurSel==IDS_RETURN)
{
ISHELL_CloseApplet(pApp->a.m_pIShell, FALSE);
return TRUE;
}
else if(CurSel == IDS_SEND_SMS)
{
//send sms
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pMessageText, FALSE);
sms_Send(pApp);
pApp->m_focus = SEND_RESULT_CTL;
}
}
else if(pApp->m_focus == SEND_FEEDBACK_CTL)
{
// return to the initial state, begin to send another sms
sms_release(pApp);
sms_InitAppData(pApp);
sms_init(pApp);
#if 0
/* added by zsx for test */
TextMesage_init(pApp);
/*added end */
#endif
IMENUCTL_SetActive(pApp->m_pSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pText, TRUE);
return(TRUE);
}
return TRUE;
case EVT_APP_SUSPEND:
//IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
//sms_release(pApp);
DBGPRINTF("Received EVT_APP_SUSPEND Message!");
ProcessSuspend(pApp);
return TRUE;
case EVT_APP_RESUME:
DBGPRINTF("Received EVT_APP_RESUME Message!");
//sms_InitAppData(pApp);
//sms_init(pApp);
//IMENUCTL_SetActive(pApp->m_pSoftKey, FALSE);
//ITEXTCTL_SetActive(pApp->m_pText, TRUE);
ProcessResume(pApp);
return TRUE;
/* changed by zsx */
// case EVT_USER:
case EVT_USER1:
if(wParam == SUCCESS)
{
ISTATIC_SetActive(pApp->m_pStatic, FALSE);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_RESULT, szTitle, 20);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_SUCCESS, szText, 20);
ISTATIC_SetText(pApp->m_pStatic,szTitle,szText,AEE_FONT_BOLD, AEE_FONT_NORMAL);
ISTATIC_SetActive(pApp->m_pStatic, TRUE);
IMENUCTL_AddItem(pApp->m_pResultSoftKey, SMS_RES_FILE, IDS_BACK, IDS_BACK, NULL, NULL);
IMENUCTL_SetActive(pApp->m_pResultSoftKey,TRUE);
pApp->sendingflag = IDS_SEND_SUCCESS;
pApp->m_focus = SEND_FEEDBACK_CTL;
}
else
{
ISTATIC_SetActive(pApp->m_pStatic, FALSE);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_RESULT, szTitle, 20);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_FAIL, szText, 20);
ISTATIC_SetText(pApp->m_pStatic,szTitle,szText,AEE_FONT_BOLD, AEE_FONT_NORMAL);
ISTATIC_SetActive(pApp->m_pStatic, TRUE);
IMENUCTL_AddItem(pApp->m_pResultSoftKey, SMS_RES_FILE, IDS_BACK, IDS_BACK, NULL, NULL);
IMENUCTL_SetActive(pApp->m_pResultSoftKey,TRUE);
pApp->sendingflag = IDS_SEND_FAIL;
pApp->m_focus = SEND_FEEDBACK_CTL;
}
return TRUE;
default:
break;
}
return FALSE;
}
static void sms_init(CSmsApp * pApp)
{
AEERect rect;
//0. Create Main Info controls according to page
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_TEXTCTL, (void**)(&pApp->m_pText))!=SUCCESS)
{
pApp->m_pText = NULL;
return;
}
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_SOFTKEYCTL, (void**)(&pApp->m_pSoftKey))!=SUCCESS)
{
pApp->m_pSoftKey = NULL;
return;
}
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_TAPI, (void**)(&pApp->m_pITAPI))!=SUCCESS)
{
pApp->m_pITAPI = NULL;
return;
}
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
SETAEERECT(&rect, 0, 0, pApp->m_rc.dx, pApp->m_fontHeight*3);
// Set title of Text Control of Phone number
ITEXTCTL_SetTitle(pApp->m_pText, SMS_RES_FILE, IDS_PHONE_NUMBER, NULL);
// Set maximum text size supported by the text control object
ITEXTCTL_SetMaxSize(pApp->m_pText, PHONE_NUM);
// Set properties to have thetext control object have a
// frame and to have a multi-line text edit space.
ITEXTCTL_SetProperties(pApp->m_pText, TP_FRAME|TP_MULTILINE);
ITEXTCTL_SetRect(pApp->m_pText, &rect);
// Set the initial text of the text control object.
if (ISHELL_GetPrefs(pApp->a.m_pIShell, AEECLSID_SMS, SMS_PREFS_VERSION,
&pApp->m_Prefs, sizeof(pApp->m_Prefs)) != SUCCESS)
{
MEMSET(&pApp->m_Prefs, 0, sizeof(pApp->m_Prefs));
}
STRCPY(pApp->strNum, pApp->m_Prefs.phoneNum);
STRTOWSTR(pApp->strNum, pApp->wStrNum, sizeof(pApp->wStrNum));
ITEXTCTL_SetText(pApp->m_pText, pApp->wStrNum, sizeof(pApp->wStrNum));
ITEXTCTL_SetInputMode(pApp->m_pText, AEE_TM_NUMBERS);
//set softkey
IMENUCTL_AddItem(pApp->m_pSoftKey, SMS_RES_FILE, IDS_OK, IDS_OK, NULL, NULL);
IMENUCTL_AddItem(pApp->m_pSoftKey, SMS_RES_FILE, IDS_RETURN, IDS_RETURN, NULL, NULL);
/*added by zsx */
IMENUCTL_EnableCommand(pApp->m_pSoftKey,TRUE);
IMENUCTL_Redraw(pApp->m_pSoftKey);
IDISPLAY_UpdateEx(pApp->a.m_pIDisplay, TRUE);
pApp->m_focus = PHONE_NUMBER_TEXT_CTL;
#if 0
/*added by zsx for test */
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_STATIC, (void**)(&pApp->m_pStatic))!=SUCCESS)
{
pApp->m_pStatic = NULL;
return;
}
// set static control
SETAEERECT(&rect, 0, 0, pApp->m_rc.dx, pApp->m_fontHeight*6 );
ISTATIC_SetRect(pApp->m_pStatic, &rect);
ISTATIC_SetProperties(pApp->m_pStatic, ST_CENTERTEXT|ST_MIDDLETEXT);
/*added end */
#endif
}
static void TextMesage_init(CSmsApp * pApp)
{
AEERect rect;
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_TEXTCTL, (void**)(&pApp->m_pMessageText))!=SUCCESS)
{
pApp->m_pMessageText = NULL;
return;
}
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_SOFTKEYCTL, (void**)(&pApp->m_pMessageSoftKey))!=SUCCESS)
{
pApp->m_pMessageSoftKey = NULL;
return;
}
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_STATIC, (void**)(&pApp->m_pStatic))!=SUCCESS)
{
pApp->m_pStatic = NULL;
return;
}
if(ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_SOFTKEYCTL, (void**)(&pApp->m_pResultSoftKey))!=SUCCESS)
{
pApp->m_pResultSoftKey = NULL;
return;
}
//IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
SETAEERECT(&rect, 0, 0, pApp->m_rc.dx, pApp->m_fontHeight*4 );
// Set title of Message Text Box Control
ITEXTCTL_SetTitle(pApp->m_pMessageText, SMS_RES_FILE, IDS_MESSAGE_TEXT, NULL);
// Set maximum text size supported by the text control object
ITEXTCTL_SetMaxSize(pApp->m_pMessageText, 100);
// Set properties to have thetext control object have a
// frame and to have a multi-line text edit space.
ITEXTCTL_SetProperties(pApp->m_pMessageText, TP_FRAME | TP_MULTILINE);
ITEXTCTL_SetRect(pApp->m_pMessageText, &rect);
ITEXTCTL_SetSoftKeyMenu(pApp->m_pMessageText, pApp->m_pMessageSoftKey);
ITEXTCTL_SetInputMode(pApp->m_pMessageText, AEE_TM_FIRST_OEM+1);
ITEXTCTL_SetActive (pApp->m_pMessageText, TRUE);
IMENUCTL_AddItem(pApp->m_pMessageSoftKey, SMS_RES_FILE, IDS_SEND_SMS, IDS_SEND_SMS, NULL, NULL);
IMENUCTL_AddItem(pApp->m_pMessageSoftKey, SMS_RES_FILE, IDS_RETURN, IDS_RETURN, NULL, NULL);
IMENUCTL_Redraw(pApp->m_pMessageSoftKey);
/*added by zsx */
IMENUCTL_EnableCommand(pApp->m_pMessageSoftKey,TRUE);
// set static control
SETAEERECT(&rect, 0, 0, pApp->m_rc.dx, pApp->m_fontHeight*6 );
ISTATIC_SetRect(pApp->m_pStatic, &rect);
ISTATIC_SetProperties(pApp->m_pStatic, ST_CENTERTEXT|ST_MIDDLETEXT);
}
static void sms_Send(CSmsApp * pApp)
{
int16 ReturnValue;
AECHAR szTitle[20];
AECHAR szText[20];
if(pApp->m_pITAPI == NULL)
return;
//get phone number
ITEXTCTL_GetText(pApp->m_pText, pApp->wStrNum, PHONE_NUM);
WSTRTOSTR(pApp->wStrNum, pApp->strNum, sizeof(pApp->strNum));
//save phone number
STRCPY(pApp->m_Prefs.phoneNum, pApp->strNum);
ISHELL_SetPrefs(pApp->a.m_pIShell, AEECLSID_SMS, SMS_PREFS_VERSION,
&pApp->m_Prefs, sizeof(pApp->m_Prefs));
//get text message
ITEXTCTL_GetText(pApp->m_pMessageText, pApp->wStrMessage, MESSAGE_LENGTH);
// send message
ReturnValue = ITAPI_SendSMS(pApp->m_pITAPI, (const char *)pApp->strNum, (const char *)pApp->wStrMessage,
0, (PFNSMSSTATUS)MySmsNotify, pApp);
IDISPLAY_ClearScreen(pApp->a.m_pIDisplay);
if(ReturnValue == SUCCESS)
{
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_RESULT, szTitle, 20);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SENDING, szText, 20);
ISTATIC_SetText(pApp->m_pStatic,szTitle,szText,AEE_FONT_BOLD, AEE_FONT_NORMAL);
ISTATIC_SetActive(pApp->m_pStatic, TRUE);
pApp->sendingflag = IDS_SENDING;
pApp->m_focus = SEND_FEEDBACK_CTL;
}
else
{
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_RESULT, szTitle, 20);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_FAIL, szText, 20);
ISTATIC_SetText(pApp->m_pStatic,szTitle,szText,AEE_FONT_BOLD, AEE_FONT_NORMAL);
ISTATIC_SetActive(pApp->m_pStatic, TRUE);
IMENUCTL_AddItem(pApp->m_pResultSoftKey, SMS_RES_FILE, IDS_BACK, IDS_BACK, NULL, NULL);
IMENUCTL_SetActive(pApp->m_pResultSoftKey,TRUE);
pApp->sendingflag = IDS_SEND_FAIL;
}
}
static void MySmsNotify(CSmsApp * pApp, int16 status)
{
pApp->SentStatus = status;
/* changed by zsx */
/*
ISHELL_PostEvent (pApp->a.m_pIShell, AEECLSID_SMS,
EVT_USER, status, 0); */
ISHELL_PostEvent (pApp->a.m_pIShell, AEECLSID_SMS,
EVT_USER1, status, 0);
DBGPRINTF("Message send notify(%d)!",status);
}
void ProcessSuspend(CSmsApp * pApp)
{
ITEXTCTL_SetActive(pApp->m_pText, FALSE);
IMENUCTL_SetActive(pApp->m_pSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pMessageText, FALSE);
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
if (pApp->m_pStatic != NULL)
ISTATIC_Reset (pApp->m_pStatic);
IMENUCTL_SetActive(pApp->m_pResultSoftKey, FALSE);
}
void ProcessResume(CSmsApp * pApp)
{
AECHAR szTitle[20];
AECHAR szText[20];
switch(pApp->m_focus)
{
case PHONE_NUMBER_TEXT_CTL:
IMENUCTL_SetActive(pApp->m_pSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pText, TRUE);
break;
case SOFTKEY_OK_CTL:
IMENUCTL_SetActive(pApp->m_pSoftKey, TRUE);
ITEXTCTL_SetActive(pApp->m_pText, FALSE);
break;
case MESSAGE_TEXT_CTL:
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, FALSE);
ITEXTCTL_SetActive(pApp->m_pMessageText, TRUE);
break;
case SOFTKEY_MESSAGE_CTL:
IMENUCTL_SetActive(pApp->m_pMessageSoftKey, TRUE);
ITEXTCTL_SetActive(pApp->m_pMessageText, FALSE);
break;
case SEND_RESULT_CTL:
case SEND_FEEDBACK_CTL:
//redraw the istatic
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, IDS_SEND_RESULT, szTitle, 20);
ISHELL_LoadResString(pApp->a.m_pIShell, SMS_RES_FILE, pApp->sendingflag, szText, 20);
ISTATIC_SetText(pApp->m_pStatic,szTitle,szText,AEE_FONT_BOLD, AEE_FONT_NORMAL);
ISTATIC_SetActive(pApp->m_pStatic, TRUE);
if(pApp->m_focus == SEND_FEEDBACK_CTL)
IMENUCTL_SetActive(pApp->m_pResultSoftKey,TRUE);
ISTATIC_Redraw(pApp->m_pStatic);
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -