📄 plxmms_box.c
字号:
(S8*)GetString(MMS_BOX_STR_NOSUB));
}
else
{
if(pfnUnicodeStrlen((S8*)wSub) > MAX_SUB_LEN)
wSub[MAX_SUB_LEN] = 0x0000;
pfnUnicodeStrcpy((S8*)p->sub, (S8*)wSub);
}
if(wSub)
{
MMS_Free((void*)wSub);
wSub = NULL;
}
if(sub_charset && temp)
{
*sub_charset = temp;
temp = 0;
}
}
else //no subject
{
pfnUnicodeStrcpy((S8*)p->sub, (S8*)GetString(MMS_BOX_STR_NOSUB));
}
}
p->id = pInfo[i].MsgID; //id
p->status = pInfo[i].status; //status
#ifdef MMS_DEBUG
PlxTrace("get list, p->status = %d\r\n", p->status);
#endif
switch(p->status)
{
case MMT_UNRECEIVE: //fail
p->icon = IMG_ID_PLX_MMS_RECVFAIL;
break;
case MMT_UNSEND:
p->icon = IMG_ID_PLX_MMS_SENDFAIL;
break;
// case MMT_RECEIVEDELAY:
// break;
case MMT_RECEIVING: //doing
p->icon = IMG_ID_PLX_MMS_SENDING;
break;
case MMT_SENDING:
p->icon = IMG_ID_PLX_MMS_SENDING;
break;
case MMT_AUTORECEIVING:
p->icon = IMG_ID_PLX_MMS_SENDING;
break;
case MMT_READED: //ok
p->icon = IMG_ID_PLX_MMS_READ;
break;
case MMT_DRAFT:
p->icon = IMG_ID_PLX_MMS_DRAFT;
break;
case MMT_SENT:
p->icon = IMG_ID_PLX_MMS_SENDOK;
break;
case MMT_DELIVERYREPORT:
p->icon = IMG_ID_PLX_MMS_SENDREPORT;
break;
// case MMT_TEMPLATE:
// break;
case MMT_UNREAD:
p->icon = IMG_ID_PLX_MMS_UNREAD;
break;
case MMT_UNREADDELIVERYREPORT:
p->icon = IMG_ID_PLX_MMS_UNREADSENDREPORT;
break;
default:
p->icon = 0;
}
if(!AddListItem(p, FALSE)) //FALSE, insert new message at bottom of list
goto get_list_end; //goto get_list_err; //add failed only when list is full
index++; //but we can show list
}
}
get_list_end:
// g_box_data.info_count = index-1;
// if(g_box_data.info_head)
if(g_box_data.info_count > 0)
{
g_box_data.cur_info_index = 0;
g_box_data.cur_info_item = g_box_data.info_table[0];//g_box_data.info_head;
}
return TRUE;
get_list_err:
ClearList(); //get list failed, clear list and return last screen
return FALSE;
}
/***************************************************************************
* Function MmsBoxListHiliteHandler
* Purpose Get current selected item
* Params
* Return
* Remarks
\**************************************************************************/
void MmsBoxListHiliteHandler(S32 index)
{
g_box_data.cur_info_index = index;
g_box_data.cur_info_item = GetListItem(index);
}
/***************************************************************************
* Function MmsBoxListGetItemHint
* Purpose Called by ShowCategory184Screen, get hint text
* Params
* Return
* Remarks Copy phone number,email or name to hint_array
\**************************************************************************/
S32 MmsBoxListGetItemHint(S32 item_index, UI_string_type *hint_array)
{
S8 name[MAX_PB_NAME_LEN*2];
#ifdef MMS_DEBUG
// PlxTrace("MmsBoxListGetItemHint, index = %d\r\n", item_index);
#endif
//get current message node
if(!g_box_data.cur_info_item)
g_box_data.cur_info_item = GetListItem(item_index);
if(!g_box_data.cur_info_item ||
(g_box_data.cur_info_item->num[0] == 0 &&
g_box_data.cur_info_item->num[1] == 0)) //no number
{
#ifdef MMS_DEBUG
// PlxTrace("no number\r\n");
#endif
if(g_box_data.folder == MMSE_FOLDER_DRAFT) //in draft, set "No Number"
pfnUnicodeStrcpy((S8*)*hint_array, (S8*)GetString(MMS_BOX_STR_NONUM));
else //in other boxes, no hint shown
{
pfnUnicodeStrcpy((S8*)*hint_array, (S8*)L"");//GetString(STR_ID_PLX_MMS_BOX_INBOXNONUM));
//hint_array = NULL;
return 0;
}
}
else //has number
{
#ifdef MMS_DEBUG
// PlxTrace("has number\r\n");
#endif
if(g_box_data.cur_info_item->bEMail) //email, find name
{
#ifdef MMS_RECVLIST_NOMAILNAME
name[0] = name[1] = 0;
#else
PLIB_GetPhbookName((WCHAR*)name, MAX_PB_NAME_LEN*2,
PFIELD_EMAIL, (WCHAR*)g_box_data.cur_info_item->num);
#endif
}
else //number, find name
{
PLIB_GetPhbookName((WCHAR*)name, MAX_PB_NAME_LEN*2,
PFIELD_NUMBER, (WCHAR*)g_box_data.cur_info_item->num);
}
if(name[0] == 0 &&
name[1] == 0) //no name found, show number directly
{
pfnUnicodeStrcpy((S8*)*hint_array, (S8*)g_box_data.cur_info_item->num);
}
else //show name
{
pfnUnicodeStrcpy((S8*)*hint_array, (S8*)name);
}
}
return 1;
}
/***************************************************************************
* Function MmsBoxListGetItemText
* Purpose Called by ShowCategory184Screen to get list item text
* Params
* Return
* Remarks Show subject for message or "Delivery Report" for delivery report
\**************************************************************************/
pBOOL MmsBoxListGetItemText(S32 item_index, UI_string_type str_buff,
UI_image_type* img_buff_p, U8 str_img_mask)
{
MmsBoxItem* p;
#ifdef MMS_DEBUG
// char temp[40];
// MMS_Memset((void*)temp, 0, 40);
#endif
#ifdef MMS_DEBUG
// PlxTrace("MmsBoxListGetItemText, index =%d\r\n", item_index);
#endif
// U8* string_show = NULL;
/*
if(!g_box_data.cur_info_item)
{
g_box_data.cur_info_item = GetListItem(item_index);
}
*/
p = GetListItem(item_index);
//text
if(!p || (p->sub[0] == 0 && p->sub[1] == 0)) //no subject
{
#ifdef MMS_DEBUG
// PlxTrace("no sub\r\n");
#endif
pfnUnicodeStrcpy((S8*)str_buff, (S8*)GetString(MMS_BOX_STR_NOSUB));
}
else //has subject
{
pfnUnicodeStrcpy((S8*)str_buff, (S8*)p->sub);
#ifdef MMS_DEBUG
// UnicodeToAnsii((S8*)temp, (S8*)p->sub);
// PlxTrace("index = %d, sub = %s\r\n", item_index, temp);
#endif
}
//icon
if(p)
{
if(p->icon)
*img_buff_p = (UI_image_type)GetImage(p->icon); //(IMG_ID_PLX_MMS_SENDOK);
else
*img_buff_p = NULL;
}
else
{
*img_buff_p = NULL;
}
return TRUE;
}
/////////////////////////////////////////////////////////////
//for box menu
/***************************************************************************
* Function EnterMmsBoxListMenu
* Purpose Show menu
* Params
* Return
* Remarks
\**************************************************************************/
void EnterMmsBoxListMenu(void) //popup menu
{
MmsBoxItem* item;
// PMMSEMSGINFO info = NULL;
if(!g_box_data.hMenu)
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)
return;
}
item = g_box_data.cur_info_item;
if(item->status == MMT_DELIVERYREPORT ||
item->status == MMT_UNREADDELIVERYREPORT) //delviery report
{
if(g_box_data.hReportMenu)
{
PlxSetDMenuDispInfo(STR_GLOBAL_OPTIONS, IMG_ID_PLX_MMS,
STR_GLOBAL_OK, IMG_GLOBAL_OK, STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
PlxShowDMenu(g_box_data.hReportMenu, SCR_ID_PLX_MMS_BOX_MENU,
STR_ID_PLX_MMS_MENU, MmsBoxMenuCallback, EmptyReportMenuEntry);
//SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
return;
}
//set menu item
//view MMS_BOX_MENU_VIEW
if(g_box_data.folder != MMSE_FOLDER_DRAFT) //draft view is always enabled
{
switch((int)g_box_data.folder)
{
case 1: //inbox
if(item->status == MMT_UNRECEIVE ||
item->status == MMT_RECEIVING ||
item->status == MMT_AUTORECEIVING) //receving or receive failed, can't view
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_VIEW, MF_BYCOMMAND | MF_DISABLED,
MMS_BOX_MENU_VIEW, (const char *)GetString(MMS_BOX_STR_VIEW),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L1);//
}
else
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_VIEW, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_VIEW, (const char *)GetString(MMS_BOX_STR_VIEW),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L1);//
}
break;
case 2: //outbox
if(item->status == MMT_SENDING) //sending, can't view
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_VIEW, MF_BYCOMMAND | MF_DISABLED,
MMS_BOX_MENU_VIEW, (const char *)GetString(MMS_BOX_STR_VIEW),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L1);//
}
else
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_VIEW, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_VIEW, (const char *)GetString(MMS_BOX_STR_VIEW),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L1);//
}
break;
case 4: //sent, always enabled
break;
}
}
/*
//obj MMS_BOX_MENU_OBJ
switch((int)g_box_data.folder)
{
case 1: //inbox
if(item->status == MMT_UNRECEIVE ||
item->status == MMT_RECEIVING ||
item->status == MMT_AUTORECEIVING)
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_OBJ, MF_BYCOMMAND | MF_DISABLED,
MMS_BOX_MENU_OBJ, (const char *)MMS_BOX_STR_OBJ, 0);
}
else
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_OBJ, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_OBJ, (const char *)MMS_BOX_STR_OBJ, 0);
}
break;
case 2: //outbox
if(item->status == MMT_SENDING)
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_OBJ, MF_BYCOMMAND | MF_DISABLED,
MMS_BOX_MENU_OBJ, (const char *)MMS_BOX_STR_OBJ, 0);
}
else
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_OBJ, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_OBJ, (const char *)MMS_BOX_STR_OBJ, 0);
}
break;
case 4: //sent
break;
}
*/
//info MMS_BOX_MENU_INFO, is always enabled
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_INFO, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_INFO, (const char *)GetString(MMS_BOX_STR_INFO),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L2);//
//use num MMS_BOX_MENU_NUM
if(g_box_data.folder == MMSE_FOLDER_INBOX)
{
PlxModifyDMenuItem(g_box_data.hMenu,
MMS_BOX_MENU_NUM, MF_BYCOMMAND | MF_ENABLED,
MMS_BOX_MENU_NUM, (const char *)GetString(MMS_BOX_STR_NUM),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L3);//
}
//mms reply MMS_BOX_MENU_MMSREPLY
if(g_box_data.folder == MMSE_FOLDER_INBOX)
{
if(item->status == MMT_UNRECEIVE ||
item->status == MMT_RECEIVING ||
item->status == MMT_AUTORECEIVING) //receiving or receive failed, can't reply
{
PlxModifyDMenuItem(g_box_data.hMmsMenu,
MMS_BOX_MENU_MMSREPSENDER, MF_BYCOMMAND | MF_DISABLED,
MMS_BOX_MENU_MMSREPSENDER, (const char *)GetString(MMS_BOX_STR_SENDER),
IMG_ID_PLX_PUBLIC_GLOBAL_NUMBERICON);//IMG_GLOBAL_L1);//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -