📄 dcw_pb_ctrl.c
字号:
/*****************************************************************************
** File Name: dcw_pb_ctrl.c *
** Author: ************* *
** Date: 2006-04-17 *
** Copyright: 2006 ************* All Rights *
** Description: 此文件用于处理PB的操作信息 *
/*****************************************************************************
** Important Edit History *
** --------------------------------------------------------------------------*
** DATE NAME DESCRIPTION *
** 2006-04-17 ************* Create *
******************************************************************************/
#ifndef _DCW_PB_CTRL_C_
#define _DCW_PB_CTRL_C_
#include "dcw_pb.h"
#include "MmiSet.h"
#include "guidropdownlist.h"
/* ***************************************************************************
* Function name : DCW_PB_createBrowseList
* Description : 创建浏览List
* Param : ctrlId : 控件ID
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_createBrowseList(MMI_COMMON_CTRL_ID_T ctrlId,BOOLEAN isFastSearch,uint16 startPos,uint16 endPos)
{
uint16 i;
uint16 size;
uint16 pos;
uint16 amount;
GUI_LISTBOX_ITEM_T addItem;
T_PB_ADDR_MANAGER *addrPtr;
if(isFastSearch == TRUE)
{
addrPtr = &g_pb.operate.fastSearchInfo.addrManager;
}
else
{
addrPtr = &g_pb.operate.listInfo.addrManager;
}
if(addrPtr == PNULL)
{
return;
}
amount = MIN(addrPtr->amount,endPos - startPos);
if(GUILISTBOX_SetMaxItem(ctrlId, amount))
{
for(i = startPos; i < (startPos + amount); i++)
{
SCI_MEMSET(&addItem, 0x00, sizeof (GUI_LISTBOX_ITEM_T));
addItem.softkey_id[LEFT_BUTTON] = STXT_DETAIL;
addItem.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
addItem.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
if(addrPtr->ptr[i].type == PHONEBOOK_SIM_STORAGE)
{
pos = addrPtr->ptr[i].pos;
addItem.is_ucs2 = g_pb.sim.recordPtr[pos].outerName.ucs2;
addItem.str_len = MIN(g_pb.sim.recordPtr[pos].outerName.len,LISTBOX_STRING_MAX_NUM);
SCI_MEMCPY(addItem.str, g_pb.sim.recordPtr[pos].outerName.array, addItem.str_len);
if(g_pb.operate.listInfo.listType == PB_LIST_TYPE_MULTIPLE_E)
{
addItem.right_icon_id = IMAGE_PHONEBOOK_SIM;
}
else
{
addItem.left_icon_id = IMAGE_PHONEBOOK_SIM;
}
addItem.is_invalid = FALSE;
}
else
{
pos = addrPtr->ptr[i].pos;
addItem.is_ucs2 = g_pb.nv.recordPtr[pos].outerName.ucs2;
addItem.str_len = MIN(g_pb.nv.recordPtr[pos].outerName.len,LISTBOX_STRING_MAX_NUM);
SCI_MEMCPY(addItem.str, g_pb.nv.recordPtr[pos].outerName.array, addItem.str_len);
if(g_pb.operate.listInfo.listType == PB_LIST_TYPE_MULTIPLE_E)
{
if(g_pb.operate.operateType == PB_OPERATE_COPY_MANY_TO_SIM_E)
{
if(addrPtr->ptr[i].offset == 0)
{
addItem.right_icon_id = IMAGE_PHONEBOOK_SELF_NUMBER;
}
else if(addrPtr->ptr[i].offset == 1)
{
addItem.right_icon_id = IMAGE_PHONEBOOK_COMPANY_NUMBER;
}
else
{
addItem.right_icon_id = IMAGE_PHONEBOOK_HOME_NUMBER;
}
}
else
{
addItem.right_icon_id = IMAGE_PHONEBOOK_PHONE;
}
}
else
{
addItem.left_icon_id = IMAGE_PHONEBOOK_PHONE;
}
addItem.is_invalid = FALSE;
}
GUILISTBOX_AppendItem(ctrlId, &addItem);
}
}
if(g_pb.operate.listInfo.listType == PB_LIST_TYPE_MULTIPLE_E)
{
GUILISTBOX_SetMaxSelectedItem(ctrlId,g_pb.operate.listInfo.selectMaxNumber);
}
else
{
g_pb.operate.listInfo.selectMaxNumber = 1;
}
if(g_pb.operate.listInfo.selectItemPtr != PNULL)
{
SCI_FREE(g_pb.operate.listInfo.selectItemPtr);
g_pb.operate.listInfo.selectItemPtr = PNULL;
}
SCI_ASSERT(g_pb.operate.listInfo.selectItemPtr == PNULL);
size = sizeof(uint16) * g_pb.operate.listInfo.selectMaxNumber;
g_pb.operate.listInfo.selectItemPtr = SCI_ALLOC(size);
SCI_ASSERT(g_pb.operate.listInfo.selectItemPtr != PNULL);
SCI_MEMSET(g_pb.operate.listInfo.selectItemPtr, 0, size);
g_pb.operate.listInfo.selectNumber = 0;
}
/* ***************************************************************************
* Function name : DCW_PB_createNumTypeList
* Description : 创建电话号码类型的List
* Param : ctrlId : 控件ID
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_createNumTypeList(MMI_COMMON_CTRL_ID_T ctrlId)
{
int16 i;
int16 index ;
GUI_LISTBOX_ITEM_T addItem;
MMI_STRING_T defaultStr;
T_PB_RECORD_ITEM_ADDR *pAddr;
SCI_MEMSET(&addItem, 0x00, sizeof (GUI_LISTBOX_ITEM_T));
addItem.softkey_id[LEFT_BUTTON] = STXT_OK;
addItem.softkey_id[MIDDLE_BUTTON] = COMMON_TXT_NULL;
addItem.softkey_id[RIGHT_BUTTON] = STXT_RETURN;
for (i=0; i < DCW_PB_MAX_NV_PHONE_NUM; i++)
{
MMI_GetLabelTextByLang((TXT_PB_NUM_TYPE_PRIVATE + i), &defaultStr);
addItem.is_ucs2 = defaultStr.is_ucs2;
addItem.str_len = MIN(LISTBOX_STRING_MAX_NUM, defaultStr.length);
SCI_MEMCPY(addItem.str, defaultStr.str_ptr, addItem.str_len);
if(g_pb.operate.operateType == PB_OPERATE_COPY_ALL_TO_NV_E)
{
addItem.is_invalid = FALSE;
}
else if(g_pb.operate.operateType == PB_OPERATE_COPY_MANY_TO_NV_E)
{
addItem.is_invalid = FALSE;
}
else if(g_pb.operate.operateType == PB_OPERATE_ADD_IN_NV_E)
{
addItem.is_invalid = FALSE;
}
else
{
pAddr = DCW_PB_getRecordAddr(g_pb.operate.listInfo.selectItemPtr[0]);
SCI_ASSERT(pAddr != PNULL);
if(pAddr->type == PHONEBOOK_SIM_STORAGE)
{
addItem.is_invalid = FALSE;
}
else
{
index = pAddr->pos;
if(g_pb.nv.recordPtr[index].num[i].len == 0)
{
if(g_pb.operate.operateType == PB_OPERATE_ADD_NUM_TO_RECORD_E)
{
addItem.is_invalid = FALSE;
}
else
{
addItem.is_invalid = TRUE;
}
}
else
{
if(g_pb.operate.operateType == PB_OPERATE_ADD_NUM_TO_RECORD_E)
{
addItem.is_invalid = TRUE;
}
else
{
addItem.is_invalid = FALSE;
}
}
}
}
GUILISTBOX_AppendItem(ctrlId, &addItem);
}
}
/* ***************************************************************************
* Function name : DCW_PB_setRecordtoListBox
* Description : 把一条记录的内容放入List
* Param : ctrlId : 控件ID
offset : 记录在显示列表中的位置
* Return : None
* Author: : *************
* Note : None
*****************************************************************************/
void DCW_PB_setRecordtoListBox(MMI_COMMON_CTRL_ID_T ctrlId,uint16 offset)
{
uint16 pos;
T_PB_RECORD_ITEM_ADDR *pAddr;
pAddr = DCW_PB_getRecordAddr(offset);
SCI_ASSERT(pAddr != PNULL);
pos = pAddr->pos;
if(pAddr->type == PHONEBOOK_SIM_STORAGE)
{
DCW_PB_setSimRecordtoListBox(ctrlId,&g_pb.sim.recordPtr[pos]);
}
else
{
DCW_PB_setNvRecordtoListBox(ctrlId,&g_pb.nv.recordPtr[pos]);
}
}
void DCW_PB_setSimRecordToPage(MMI_COMMON_WINDOW_ID_E win_id,T_PB_SIM_RECORD *recordPtr)
{
T_PB_L_STRING numStr;
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_SIM_NAME_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_SIM_NUMBER_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_SIM_NAME_EDITBOX_CTRL_ID,recordPtr->outerName.array,
recordPtr->outerName.len,recordPtr->outerName.ucs2);
numStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(recordPtr->num.npi_ton), recordPtr->num.len,
recordPtr->num.number,numStr.array,DCW_PB_L_STR_MAX_LEN );
if(numStr.len > 0)
{
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_SIM_NUMBER_EDITBOX_CTRL_ID,numStr.array,numStr.len,FALSE);
}
}
void DCW_PB_setNvRecordToPage(MMI_COMMON_WINDOW_ID_E win_id,T_PB_NV_RECORD *recordPtr)
{
uint16 i;
uint16 size;
uint16 index;
T_PB_L_STRING numStr;
MMI_STRING_T groupName;
GUI_DROPDOWNLIST_ITEM_T *itemPtr = PNULL;
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_NV_NAME_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_NV_HOME_NUM_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_NV_WORK_NUM_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_NV_PERSON_NUM_EDITBOX_CTRL_ID,SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetEditBoxToSingle(DCW_PB_NV_MAIL_EDITBOX_CTRL_ID, SINGLE_ALIGN_CENTER);
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_NV_NAME_EDITBOX_CTRL_ID,recordPtr->outerName.array,
recordPtr->outerName.len,recordPtr->outerName.ucs2);
numStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(recordPtr->num[0].npi_ton), recordPtr->num[0].len,
recordPtr->num[0].number,numStr.array,DCW_PB_L_STR_MAX_LEN );
if(numStr.len > 0)
{
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_NV_PERSON_NUM_EDITBOX_CTRL_ID,numStr.array,numStr.len,FALSE);
}
numStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(recordPtr->num[1].npi_ton), recordPtr->num[1].len,
recordPtr->num[1].number,numStr.array,DCW_PB_L_STR_MAX_LEN );
if(numStr.len > 0)
{
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_NV_WORK_NUM_EDITBOX_CTRL_ID,numStr.array,numStr.len,FALSE);
}
numStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(recordPtr->num[2].npi_ton), recordPtr->num[2].len,
recordPtr->num[2].number,numStr.array,DCW_PB_L_STR_MAX_LEN );
if(numStr.len > 0)
{
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_NV_HOME_NUM_EDITBOX_CTRL_ID,numStr.array,numStr.len,FALSE);
}
if(recordPtr->mail.len > 0)
{
GUIEDITBOX_SetTextEditBoxStringInfo(DCW_PB_NV_MAIL_EDITBOX_CTRL_ID,recordPtr->mail.array,
recordPtr->mail.len,recordPtr->mail.ucs2);
}
/*初始化下拉列表*/
size = g_pb.group.amount * sizeof(GUI_DROPDOWNLIST_ITEM_T);
itemPtr = SCI_ALLOC(size);
SCI_ASSERT(itemPtr != PNULL);
SCI_MEMSET(itemPtr, 0x00, size);
for(i = 0; i < g_pb.group.amount;i++)
{
index = g_pb.group.index[i];
if(index < DCW_PB_MIN_GROUP_NUM)
{
MMI_GetLabelTextByLang((uint16)(TXT_PB_DEFAULT_GROUP_0 + index), &groupName);
itemPtr[i].is_ucs2 = groupName.is_ucs2;
itemPtr[i].str_len = MIN(DROPDOWNLIST_STRING_MAX_NUM,groupName.length);
SCI_MEMCPY(itemPtr[i].str,groupName.str_ptr,itemPtr[i].str_len);
}
else if(g_pb.group.groupName[g_pb.group.index[index]].len > 0)
{
itemPtr[i].str_len = (uint8)MIN(DROPDOWNLIST_STRING_MAX_NUM, g_pb.group.groupName[g_pb.group.index[index]].len);
itemPtr[i].is_ucs2 = g_pb.group.groupName[g_pb.group.index[index]].ucs2;
SCI_MEMCPY(itemPtr[i].str,g_pb.group.groupName[g_pb.group.index[index]].array,itemPtr[i].str_len);
}
else
{
MMI_GetLabelTextByLang((uint16)TXT_PB_DEFAULT_GROUP_0, &groupName);
itemPtr[i].is_ucs2 = groupName.is_ucs2;
itemPtr[i].str_len = MIN(DROPDOWNLIST_STRING_MAX_NUM,groupName.length);
SCI_MEMCPY(itemPtr[i].str,groupName.str_ptr,itemPtr[i].str_len);
}
}
GUIDROPDOWNLIST_LoadItemArray(DCW_PB_NV_GROUP_DROP_CTRL_ID, itemPtr, g_pb.group.amount);
GUIDROPDOWNLIST_SetSelectedDefaultPara(DCW_PB_NV_GROUP_DROP_CTRL_ID, recordPtr->groupId);
GUIDROPDOWNLIST_SetDisplayDirection(DCW_PB_NV_GROUP_DROP_CTRL_ID, TRUE);
SCI_FREE(itemPtr);
}
void DCW_PB_getSimRecordFromPage(T_PB_SIM_RECORD *recordPtr)
{
uint16 i;
TEXTEDIT_STRING_INFO_T textStrInfo;
STRING_INFO_T numStrInfo;
STRING_INFO_T strInfo;
MMI_PARTY_NUMBER_T partyNum;
BOOLEAN ret;
GUIEDITBOX_GetTextEditBoxInfo(DCW_PB_SIM_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_SIM_NUMBER_EDITBOX_CTRL_ID, &strInfo);
ret = MMI_GenPartyNumber((uint8 *)strInfo.str_ptr, strInfo.str_len, &partyNum);
if(ret == TRUE)
{
recordPtr->num.npi_ton = DCW_PB_GetBcdNumberNpiTon(partyNum.number_type);
recordPtr->num.len = (uint8)MIN(DCW_PB_BCD_NUMBER_MAX_LEN, partyNum.num_len);
SCI_MEMCPY(recordPtr->num.number,partyNum.bcd_num,recordPtr->num.len);
}
else
{
recordPtr->num.len = 0;
SCI_TRACE_LOW("DCW_PB_getSimRecordFromPage: MMI_GenPartyNumber false");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -