⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dcw_pb_ctrl.c

📁 重写的展迅电话本, 重写的展迅电话本, 重写的展迅电话本,
💻 C
📖 第 1 页 / 共 3 页
字号:
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 + -