📄 plxmms_box.c
字号:
{
GoBackHistory();
return;
}
}
if(!CreateMmsInfo(g_box_data.mmse, g_box_data.cur_info_item->id,
g_box_data.folder, SCR_ID_PLX_MMS_BOX_MENU))
{
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(MMS_BOX_STR_VIEWFAIL), 0);
}
/*
// for test
//g_box_data.id_to_report = g_box_data.cur_info_item->id;
g_id_to_report = g_box_data.cur_info_item->id;
if(WillSendReadReply())
{
// int i = 0;
PLIB_ConfirmBox(NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_IFSENDREADREPLY),
(WCHAR*)GetString(STR_GLOBAL_YES),
(WCHAR*)GetString(STR_GLOBAL_NO),
NULL, 0, NULL, 0, IfSendReadReplyCallback);
}
*/
/*
{
BOOL bShow = TRUE;
int icon = 0;
StatusIconTest(bShow, icon, FALSE);
}
*/
/*
{
S32 handle;
S32 l;
S32 max = 100 * 1024;
S32 err;
UINT wlen;
static unsigned char* hugetest[1024];
handle = FS_Open (L"D:\\\\hugetest", FS_CREATE);
if(handle <= 0)
return;
for(l = 0L; l < max; l++)
{
err = FS_Write(handle, (void*)hugetest, (UINT)1024, &wlen);
if(err != FS_NO_ERROR || wlen != 1024)
break;
}
FS_Close (handle);
}
*/
}
/***************************************************************************
* Function EnterBoxNum
* Purpose Into use number
* Params
* Return
* Remarks Inbox has this function, combine sender and cc, and show numbers
* in a list
\**************************************************************************/
void EnterBoxNum(void)
{
char* from = NULL;
char* cc = NULL;
char* numbers = NULL;
PMMSEMSGINFO info = NULL;
int len;
if(!g_box_data.cur_info_item)
{
g_box_data.cur_info_item = GetListItem(g_box_data.cur_info_index);
if(!g_box_data.cur_info_item)
{
GoBackHistory();
return;
}
}
//info buffer
// len = sizeof(MMSEMSGINFO) + MSG_INFO_BUF_LEN; //512;
// info = (PMMSEMSGINFO)MMS_Malloc(len);
// if(!info)
// {
// GoBackHistory();
// return;
// }
info = (PMMSEMSGINFO)g_msg_info_buf;
MMS_Memset((void*)info, 0, MSG_INFO_BUF_LEN);
//get message info
if(MMSE_SUCCESS != MMSE_GetMessageInfo(g_box_data.mmse,
g_box_data.cur_info_item->id, info, MSG_INFO_BUF_LEN))
{
// MMS_Free((void*)info);
GoBackHistory();
return;
}
from = info->pSender;
cc = info->pCc;
if(!from && !cc)
{
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NONUMBER), 0);
return;
}
len = 5;
if(from)
len += MMS_Strlen(from);
if(cc)
len += MMS_Strlen(cc);
//nubmer buffer
numbers = (char*)MMS_Malloc(len);
if(!numbers)
{
// MMS_Free((void*)info);
GoBackHistory();
return;
}
numbers[0] = 0;
if(from)
MMS_Strcat(numbers, from);
if(cc)
{
MMS_Strcat(numbers, ";");
MMS_Strcat(numbers, cc);
}
//open recveiver list window
if(!CreateBoxNumSave(MMS_BOX_STR_NUM, numbers,
SCR_ID_PLX_MMS_BOX_MENU))
{
MMS_Free((void*)numbers);
// MMS_Free((void*)info);
GoBackHistory();
return;
}
MMS_Free((void*)numbers);
// MMS_Free((void*)info);
return;
}
/***************************************************************************
* Function EnterBoxMmsReply
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void EnterBoxMmsReply(void)
{
}
/***************************************************************************
* Function EnterBoxSmsReply
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
/*void EnterBoxSmsReply(void)
{
// GoBackHistory();
// EnterReplyMenu();
}
*/
/***************************************************************************
* Function EnterBoxTrans
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void EnterBoxTrans(void)
{
// int len;
PMMSEMSGINFO info = NULL;
#ifdef MMS_DEBUG
PlxTrace("EnterBoxTrans\r\n");
#endif
if(IsLowSpace(0))
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
return;
}
//get current message node
if(!g_box_data.cur_info_item)
{
g_box_data.cur_info_item = GetListItem(g_box_data.cur_info_index);
if(!g_box_data.cur_info_item)
{
GoBackHistory();
return;
}
}
//info buffer
// len = sizeof(MMSEMSGINFO) + 512;
// info = (PMMSEMSGINFO)MMS_Malloc(len);
info = (PMMSEMSGINFO)g_msg_info_buf;
MMS_Memset((void*)info, 0, MSG_INFO_BUF_LEN);
if(info)
{
//get message info
if(MMSE_SUCCESS != MMSE_GetMessageInfo(g_box_data.mmse,
g_box_data.cur_info_item->id, info, MSG_INFO_BUF_LEN))
{
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
// MMS_Free((void*)info);
return;
}
//if has enough space
if(IsLowSpace(info->length))
{
#ifdef MMS_DEBUG
PlxTrace("no space\r\n");
#endif
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
// MMS_Free((void*)info);
return;
}
// MMS_Free((void*)info);
}
//into edit
if(!CreateMmsEdit(g_box_data.mmse, g_box_data.cur_info_item->id,
EditTrans, (char*)g_box_data.folder,
SCR_ID_PLX_MMS_BOX_MENU, 0, NULL))
{
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(MMS_BOX_STR_FWERR), 0);
}
}
/***************************************************************************
* Function EnterBoxRecv
* Purpose Receive a message in inbox
* Params
* Return
* Remarks
\**************************************************************************/
void EnterBoxRecv(void)
{
#ifdef MMS_DEBUG
int result;
PlxTrace("EnterBoxRecv\r\n");
#endif
//get current message node
if(!g_box_data.cur_info_item)
{
g_box_data.cur_info_item = GetListItem(g_box_data.cur_info_index);
if(!g_box_data.cur_info_item)
{
GoBackHistory();
return;
}
}
if(g_box_data.cur_info_item->status != MMT_UNRECEIVE)
{
GoBackHistory();
return;
}
#ifdef MMS_DEBUG
PlxTrace("will recv\r\n");
switch((result = MMSE_ReceiveMessage(g_box_data.mmse, g_box_data.cur_info_item->id)))
#else
switch(MMSE_ReceiveMessage(g_box_data.mmse, g_box_data.cur_info_item->id))
#endif
{
case MMSE_MM_SIZE_ERROR: //too large
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_MSGTOOLARGE), 0);
break;
case MMSE_NO_SPACE: //no space
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
break;
case MMSE_EXPIRY_MM: //expired
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_EXPIRE), 0);
break;
case MMSE_SUCCESS:
#ifdef MMS_DEBUG
PlxTrace("recving\r\n");
#endif
GoBackHistory();
PLIB_MessageBox(PMBTYPE_SUCCESS, NULL,
(WCHAR*)GetString(MMS_BOX_STR_RECVING), 0);
break;
default:
#ifdef MMS_DEBUG
PlxTrace("default, result = %d\r\n", result);
#endif
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(MMS_BOX_STR_RECVFAIL), 0);
}
return;
}
/***************************************************************************
* Function EnterBoxCancel
* Purpose Cancel receiving and sending
* Params
* Return
* Remarks
\**************************************************************************/
void EnterBoxCancel(void)
{
GoBackHistory();
if(MMSE_Cancel(g_box_data.mmse) < 0)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(MMS_BOX_STR_CANCELFAIL), 0);
return;
}
}
/***************************************************************************
* Function EnterBoxDel
* Purpose Delete selected message
* Params
* Return
* Remarks
\**************************************************************************/
void EnterBoxDel(void)
{
// int i = 0;
WCHAR ifdel[10];
pfnUnicodeStrcpy((S8*)ifdel, (S8*)GetString(MMS_BOX_STR_DEL));
pfnUnicodeStrcat((S8*)ifdel, (S8*)L"?");
PLIB_ConfirmBox(NULL,
(WCHAR*)ifdel,
(WCHAR*)GetString(STR_GLOBAL_YES),
(WCHAR*)GetString(STR_GLOBAL_NO),
NULL, 0, NULL, 0, IfDelCallback);
SetKeyHandler(PlxMmsGoBackToIdle, KEY_END, KEY_EVENT_DOWN);
}
/***************************************************************************
* Function IfDelCallback
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void IfDelCallback(PLIBEVENT event)
{
switch(event)
{
case PEVENT_POSITIVE: //delete
if(!g_box_data.cur_info_item) //get current message node
{
g_box_data.cur_inf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -