📄 dcw_pb_ctrl.c
字号:
void DCW_PB_getNvRecordFromPage(T_PB_NV_RECORD *recordPtr)
{
uint16 i;
TEXTEDIT_STRING_INFO_T textStrInfo;
STRING_INFO_T numStrInfo;
STRING_INFO_T strInfo;
MMI_PARTY_NUMBER_T partyNum;
uint16 index;
BOOLEAN ret;
GUIEDITBOX_GetTextEditBoxInfo(DCW_PB_NV_NAME_EDITBOX_CTRL_ID,&textStrInfo);
SCI_MEMCPY(recordPtr->outerName.array,textStrInfo.str_ptr,textStrInfo.str_len);
recordPtr->outerName.len = textStrInfo.str_len;
recordPtr->outerName.ucs2 = textStrInfo.is_ucs2;
GUIEDITBOX_GetPhoneNumEditBoxInfo(DCW_PB_NV_PERSON_NUM_EDITBOX_CTRL_ID, &strInfo);
ret = MMI_GenPartyNumber((uint8 *)strInfo.str_ptr, strInfo.str_len, &partyNum);
if(ret == TRUE)
{
recordPtr->num[0].npi_ton = DCW_PB_GetBcdNumberNpiTon(partyNum.number_type);
recordPtr->num[0].len = (uint8)MIN(DCW_PB_BCD_NUMBER_MAX_LEN, partyNum.num_len);
SCI_MEMCPY(recordPtr->num[0].number,partyNum.bcd_num,recordPtr->num[0].len);
}
else
{
recordPtr->num[0].npi_ton = 0;
recordPtr->num[0].len = 0;
}
GUIEDITBOX_GetPhoneNumEditBoxInfo(DCW_PB_NV_WORK_NUM_EDITBOX_CTRL_ID, &strInfo);
ret = MMI_GenPartyNumber((uint8 *)strInfo.str_ptr, strInfo.str_len, &partyNum);
if(ret == TRUE)
{
recordPtr->num[1].npi_ton = DCW_PB_GetBcdNumberNpiTon(partyNum.number_type);
recordPtr->num[1].len = (uint8)MIN(DCW_PB_BCD_NUMBER_MAX_LEN, partyNum.num_len);
SCI_MEMCPY(recordPtr->num[1].number,partyNum.bcd_num,recordPtr->num[1].len);
}
else
{
recordPtr->num[1].npi_ton = 0;
recordPtr->num[1].len = 0;
}
GUIEDITBOX_GetPhoneNumEditBoxInfo(DCW_PB_NV_HOME_NUM_EDITBOX_CTRL_ID, &strInfo);
ret = MMI_GenPartyNumber((uint8 *)strInfo.str_ptr, strInfo.str_len, &partyNum);
if(ret == TRUE)
{
recordPtr->num[2].npi_ton = DCW_PB_GetBcdNumberNpiTon(partyNum.number_type);
recordPtr->num[2].len = (uint8)MIN(DCW_PB_BCD_NUMBER_MAX_LEN, partyNum.num_len);
SCI_MEMCPY(recordPtr->num[2].number,partyNum.bcd_num,recordPtr->num[2].len);
}
else
{
recordPtr->num[2].npi_ton = 0;
recordPtr->num[2].len = 0;
}
GUIEDITBOX_GetTextEditBoxInfo(DCW_PB_NV_MAIL_EDITBOX_CTRL_ID, &textStrInfo);
recordPtr->mail.ucs2 = textStrInfo.is_ucs2;
recordPtr->mail.len = MIN(DCW_PB_L_STR_MAX_LEN,textStrInfo.str_len);
SCI_MEMCPY(recordPtr->mail.array, textStrInfo.str_ptr, recordPtr->mail.len);
index = GUIDROPDOWNLIST_GetSelectedItemIdx(DCW_PB_NV_GROUP_DROP_CTRL_ID);
recordPtr->groupId = g_pb.group.index[index];
}
/* ***************************************************************************
* Function name : DCW_PB_setSimRecordtoListBox
* Description : 把一条Sim卡记录的内容放入List
* Param : ctrlId : 控件ID
record : 记录
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_setSimRecordtoListBox(MMI_COMMON_CTRL_ID_T ctrlId,T_PB_SIM_RECORD *recordPtr)
{
int i = 0;
GUI_LISTBOX_ITEM_T item;
SCI_MEMSET(&item, 0x00, sizeof (GUI_LISTBOX_ITEM_T));
item.softkey_id[LEFT_BUTTON] = STXT_OK;
item.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
item.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
GUILISTBOX_SetMaxItem(ctrlId, 2);
DCW_PB_getRecordNameForList(&item,&recordPtr->outerName);
GUILISTBOX_AppendItem(ctrlId, &item);
DCW_PB_getRecordPhoneNumberForList(&item,&(recordPtr->num),0);
GUILISTBOX_AppendItem(ctrlId, &item);
}
/* ***************************************************************************
* Function name : DCW_PB_setNvRecordtoListBox
* Description : 把一条Nv记录的内容放入List
* Param : ctrlId : 控件ID
record : 记录
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_setNvRecordtoListBox(MMI_COMMON_CTRL_ID_T ctrlId,T_PB_NV_RECORD *recordPtr)
{
int i = 0;
GUI_LISTBOX_ITEM_T item;
uint8 groupNO = 0;
SCI_MEMSET(&item, 0x00, sizeof (GUI_LISTBOX_ITEM_T));
item.softkey_id[LEFT_BUTTON] = STXT_OK;
item.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
item.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
GUILISTBOX_SetMaxItem(ctrlId, 6);
DCW_PB_getRecordNameForList(&item,&recordPtr->outerName);
GUILISTBOX_AppendItem(ctrlId, &item);
for( i = 0; i < DCW_PB_MAX_NV_PHONE_NUM; i++)
{
DCW_PB_getRecordPhoneNumberForList(&item,&recordPtr->num[i],i);
GUILISTBOX_AppendItem(ctrlId, &item);
}
DCW_PB_getRecordMailForList(&item,&recordPtr->mail);
GUILISTBOX_AppendItem(ctrlId, &item);
if(recordPtr->groupId > g_pb.group.amount)
{
groupNO = 0;
}
else
{
groupNO = g_pb.group.index[recordPtr->groupId];
}
DCW_PB_getRecordGroupForList(&item,groupNO);
GUILISTBOX_AppendItem(ctrlId, &item);
}
/* ***************************************************************************
* Function name : DCW_PB_getNameFromEditBox
* Description : 从EditBox得到记录的名字
* Param : ctrlId : 控件ID
name : 名字
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_getNameFromEditBox(MMI_COMMON_CTRL_ID_T ctrlId,T_PB_M_STRING *namePtr)
{
TEXTEDIT_STRING_INFO_T strInfo;
BOOLEAN ret;
SCI_ASSERT(namePtr != PNULL);
GUIEDITBOX_GetTextEditBoxInfo(ctrlId, &strInfo);
namePtr->ucs2 = strInfo.is_ucs2;
namePtr->len = MIN(DCW_PB_M_STR_MAX_LEN,strInfo.str_len);
SCI_MEMCPY(namePtr->array, strInfo.str_ptr, namePtr->len);
}
/* ***************************************************************************
* Function name : DCW_PB_setNumberToEditBox
* Description : 把一条记录的电话号码放入EditBox
* Param : winId : window Id
ctrlId : 控件ID
bcdNumber:电话号码
rectPtr: editBox的范围
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_setNumberToEditBox(MMI_COMMON_WINDOW_ID_E winId, MMI_COMMON_CTRL_ID_T ctrlId,
T_PB_BCD_NUMBER *bcdNumber,GUI_RECT_T *rectPtr)
{
T_PB_L_STRING numberStr;
void *editboxPtr;
SCI_ASSERT(bcdNumber != PNULL);
numberStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(bcdNumber->npi_ton),bcdNumber->len,
bcdNumber->number,numberStr.array,DCW_PB_L_STR_MAX_LEN);
editboxPtr = GUIEDITBOX_InitPhoneNumEditBox(rectPtr, PNULL, numberStr.array,
numberStr.len, PHONEBOOK_MAX_DN_NUMBER_LEN);
MMK_CreateDynaCtrl(ctrlId, TYPE_EDITBOX,winId,editboxPtr);
GUIEDITBOX_SetEditBoxStyle(ctrlId,SONG_FONT_16,0x0000,0xffff);
GUIEDITBOX_SetEditBoxToSingle(ctrlId,SINGLE_ALIGN_CENTER);
}
/* ***************************************************************************
* Function name : DCW_PB_getBcdNumberFromEditBox
* Description : 从EditBox读出电话号码
* Param : ctrlId : 控件ID
bcdNumber:电话号码
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_getBcdNumberFromEditBox(MMI_COMMON_CTRL_ID_T ctrlId,T_PB_BCD_NUMBER *bcdNumberPtr)
{
STRING_INFO_T strInfo;
MMI_PARTY_NUMBER_T partyNum;
BOOLEAN ret;
SCI_ASSERT(bcdNumberPtr != PNULL);
GUIEDITBOX_GetPhoneNumEditBoxInfo(ctrlId, &strInfo);
ret = MMI_GenPartyNumber((uint8 *)strInfo.str_ptr, strInfo.str_len, &partyNum);
if(ret == TRUE)
{
bcdNumberPtr->npi_ton = DCW_PB_GetBcdNumberNpiTon(partyNum.number_type);
bcdNumberPtr->len = (uint8)MIN(DCW_PB_BCD_NUMBER_MAX_LEN, partyNum.num_len);
SCI_MEMCPY(bcdNumberPtr->number,partyNum.bcd_num,bcdNumberPtr->len);
}
else
{
SCI_TRACE_LOW("DCW_PB_getBcdNumberFromEditBox: MMI_GenPartyNumber false");
}
}
/* ***************************************************************************
* Function name : DCW_PB_setMailToEditBox
* Description : 把一条电子邮件的名字放入EditBox
* Param : winId : window Id
ctrlId : 控件ID
mail : mail名字
rectPtr: editBox的范围
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_setMailToEditBox(MMI_COMMON_WINDOW_ID_E winId, MMI_COMMON_CTRL_ID_T ctrlId,
T_PB_L_STRING *mailPtr, GUI_RECT_T *rectPtr)
{
E_IM_MODE inputMode;
void *editboxPtr;
SCI_ASSERT(mailPtr != PNULL);
SCI_ASSERT(rectPtr != PNULL);
inputMode = IM_ENGLISH_E;
editboxPtr = GUIEDITBOX_InitTextEditBox(rectPtr, PNULL, mailPtr->array,mailPtr->len,
DCW_PB_MAX_MAIL_LEN, DCW_PB_MAX_MAIL_LEN,
IM_ENGLISH_E | IM_CHARACTER_E | IM_DIGITAL_E, inputMode, mailPtr->ucs2);
MMK_CreateDynaCtrl(ctrlId, TYPE_EDITBOX, winId, editboxPtr);
GUIEDITBOX_SetEditBoxStyle(ctrlId,SONG_FONT_16,0x0000,0xffff);
GUIEDITBOX_SetEditBoxToSingle(ctrlId,SINGLE_ALIGN_CENTER);
}
/* ***************************************************************************
* Function name : DCW_PB_getMailFromEditBox
* Description : 从EditBox中读出电子邮件的名字
* Param : ctrlId : 控件ID
mail : mail名字
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_getMailFromEditBox(MMI_COMMON_CTRL_ID_T ctrlId,T_PB_L_STRING *mailPtr)
{
TEXTEDIT_STRING_INFO_T strInfo;
BOOLEAN ret;
SCI_ASSERT(mailPtr != PNULL);
GUIEDITBOX_GetTextEditBoxInfo(ctrlId, &strInfo);
mailPtr->ucs2 = strInfo.is_ucs2;
mailPtr->len = MIN(DCW_PB_M_STR_MAX_LEN,strInfo.str_len);
SCI_MEMCPY(mailPtr->array, strInfo.str_ptr, mailPtr->len);
}
/* ***************************************************************************
* Function name : DCW_PB_replaceSimEditContent
* Description : 替换Sim记录List里的某一条内容
* Param : winId : window Id
record : 记录
id : 替换哪一条
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_replaceSimEditContent(MMI_COMMON_CTRL_ID_T ctrlId, T_PB_SIM_RECORD *recordPtr, uint8 id)
{
GUI_LISTBOX_ITEM_T item;
SCI_ASSERT(id < 2);
SCI_ASSERT(recordPtr != PNULL);
SCI_MEMSET(&item,0,sizeof (GUI_LISTBOX_ITEM_T));
item.softkey_id[LEFT_BUTTON] = STXT_OK;
item.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
item.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
if(id == 0)
{
DCW_PB_getRecordNameForList(&item,&recordPtr->outerName);
}
else
{
DCW_PB_getRecordPhoneNumberForList(&item,&(recordPtr->num),0);
}
GUILISTBOX_ReplaceItem(ctrlId, &item,id);
}
/* ***************************************************************************
* Function name : DCW_PB_replaceNvEditContent
* Description : 替换nv记录List里的某一条内容
* Param : winId : window Id
record : 记录
id : 替换哪一条
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_replaceNvEditContent(MMI_COMMON_CTRL_ID_T ctrlId, T_PB_NV_RECORD *recordPtr, uint8 id)
{
GUI_LISTBOX_ITEM_T item;
SCI_ASSERT(id < 6);
SCI_ASSERT(recordPtr != PNULL);
SCI_MEMSET(&item,0,sizeof (GUI_LISTBOX_ITEM_T));
item.softkey_id[LEFT_BUTTON] = STXT_OK;
item.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
item.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
switch(id)
{
case 0:
DCW_PB_getRecordNameForList(&item,&recordPtr->outerName);
break;
case 1:
DCW_PB_getRecordPhoneNumberForList(&item,&(recordPtr->num[0]),0);
break;
case 2:
DCW_PB_getRecordPhoneNumberForList(&item,&(recordPtr->num[1]),1);
break;
case 3:
DCW_PB_getRecordPhoneNumberForList(&item,&(recordPtr->num[2]),2);
break;
case 4:
DCW_PB_getRecordMailForList(&item,&recordPtr->mail);
break;
case 5:
DCW_PB_getRecordGroupForList(&item,recordPtr->groupId);
break;
}
GUILISTBOX_ReplaceItem(ctrlId, &item,id);
}
/* ***************************************************************************
* Function name : DCW_PB_getRecordNameForList
* Description : 得到一条记录名字的显示,(名字为空,则需要添加默认字符串)
* Param : item : Listbox的一个条目
name : 记录名字
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_getRecordNameForList(GUI_LISTBOX_ITEM_T *itemPtr,T_PB_M_STRING *namePtr)
{
MMI_STRING_T defaultStr;
itemPtr->is_invalid = FALSE;
itemPtr->left_icon_id = IMAGE_PHONEBOOK_NAME;
if (namePtr->len > 0)
{
itemPtr->is_ucs2 = namePtr->ucs2;
itemPtr->str_len = MIN(LISTBOX_STRING_MAX_NUM, namePtr->len);
SCI_MEMCPY(itemPtr->str, namePtr->array, itemPtr->str_len);
}
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -