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

📄 dcw_pb_ctrl.c

📁 重写的展迅电话本, 重写的展迅电话本, 重写的展迅电话本,
💻 C
📖 第 1 页 / 共 3 页
字号:
        MMI_GetLabelTextByLang(TXT_PB_SPACE_NAME,&defaultStr);   
        itemPtr->is_ucs2 = defaultStr.is_ucs2;
        itemPtr->str_len = MIN(LISTBOX_STRING_MAX_NUM, defaultStr.length);
        SCI_MEMCPY(itemPtr->str, defaultStr.str_ptr, itemPtr->str_len);
    }    
}
/* ***************************************************************************
 *  Function name : DCW_PB_getRecordPhoneNumberForList
 *  Description   : 得到一条电话号码的显示,(电话号码为空,则需要添加默认字符串)
 *  Param         : item : Listbox的一个条目
                    numberInfo : 电话号码
                    offset;记录中的第几个电话 
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_getRecordPhoneNumberForList(GUI_LISTBOX_ITEM_T *itemPtr,T_PB_BCD_NUMBER *numPtr,uint8 offset)
{
    MMI_STRING_T   defaultStr; 
    T_PB_L_STRING  numStr;

    itemPtr->is_invalid = FALSE;
    itemPtr->is_ucs2    = FALSE;

    switch(offset)
    {
    case 0:
        itemPtr->left_icon_id = IMAGE_PHONEBOOK_SELF_NUMBER;
        break;
    case 1:
        itemPtr->left_icon_id = IMAGE_PHONEBOOK_HOME_NUMBER;
        break;
    case 2:
        itemPtr->left_icon_id = IMAGE_PHONEBOOK_COMPANY_NUMBER;
        break;
    default:
        break;
    }

    numStr.len = MMI_GenDispNumber(DCW_PB_GetBcdNumberType(numPtr->npi_ton), numPtr->len,
                                   numPtr->number,numStr.array,DCW_PB_L_STR_MAX_LEN );

    if(numStr.len > 0)
    {
        itemPtr->str_len = MIN(numStr.len,LISTBOX_STRING_MAX_NUM);
        SCI_MEMCPY(itemPtr->str, numStr.array, itemPtr->str_len);
    }
    else
    {
        MMI_GetLabelTextByLang(TXT_PB_SPACE_PHONE, &defaultStr);

        itemPtr->is_ucs2 = defaultStr.is_ucs2;

        itemPtr->str_len = (uint8)MIN(LISTBOX_STRING_MAX_NUM, defaultStr.length);
        SCI_MEMCPY(itemPtr->str,defaultStr.str_ptr,itemPtr->str_len);
    }
}
/* ***************************************************************************
 *  Function name : DCW_PB_getRecordMailForList
 *  Description   : 得到电子邮件的显示,(电子邮件为空,则需要添加默认字符串)
 *  Param         : item : Listbox的一个条目
                    mail : 电子邮件
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_getRecordMailForList(GUI_LISTBOX_ITEM_T *itemPtr,T_PB_L_STRING *mailPtr)
{
    MMI_STRING_T    defaultStr;

    itemPtr->is_invalid   = FALSE;
    itemPtr->left_icon_id = IMAGE_PHONEBOOK_MAIL_ADDRESS;

    if(mailPtr->len > 0)
    {
        itemPtr->str_len = (uint8)MIN(LISTBOX_STRING_MAX_NUM, mailPtr->len);
        itemPtr->is_ucs2 = mailPtr->ucs2;
        SCI_MEMCPY(itemPtr->str,mailPtr->array,itemPtr->str_len);
    }
    else
    {
        MMI_GetLabelTextByLang(TXT_PB_SPACE_MAIL,&defaultStr);
        itemPtr->is_ucs2 = defaultStr.is_ucs2;

        itemPtr->str_len = (uint8)MIN(LISTBOX_STRING_MAX_NUM, defaultStr.length);
        SCI_MEMCPY(itemPtr->str,defaultStr.str_ptr,itemPtr->str_len);
    }
}
/* ***************************************************************************
 *  Function name : DCW_PB_getRecordGroupForList
 *  Description   : 得到组信息的显示,(组信息为空,则需要添加默认字符串)
 *  Param         : item : Listbox的一个条目
                    groupId : 组ID
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_getRecordGroupForList(GUI_LISTBOX_ITEM_T *itemPtr,uint8 groupId)
{
    uint16       index; 
    MMI_STRING_T groupName;
    
    SCI_ASSERT(groupId < DCW_PB_MAX_GROUP_NUM);

    itemPtr->is_invalid   = FALSE;
    itemPtr->left_icon_id = IMAGE_PHONEBOOK_GROUP;

    index = g_pb.group.index[groupId];
    SCI_ASSERT(index < DCW_PB_MAX_GROUP_NUM);

    if(index < DCW_PB_MIN_GROUP_NUM)
    {
         MMI_GetLabelTextByLang((uint16)(TXT_PB_DEFAULT_GROUP_0 + index), &groupName);
         itemPtr->is_ucs2 = groupName.is_ucs2;
         itemPtr->str_len = MIN(LISTBOX_STRING_MAX_NUM,groupName.length);
         SCI_MEMCPY(itemPtr->str,groupName.str_ptr,itemPtr->str_len);         
    }
    else if(g_pb.group.groupName[index].len > 0)
    {
        itemPtr->str_len = (uint8)MIN(LISTBOX_STRING_MAX_NUM, g_pb.group.groupName[groupId].len);
        itemPtr->is_ucs2 = g_pb.group.groupName[groupId].ucs2;
        SCI_MEMCPY(itemPtr->str,g_pb.group.groupName[groupId].array,itemPtr->str_len);
    }
    else
    {
        MMI_GetLabelTextByLang((uint16)TXT_PB_DEFAULT_GROUP_0, &groupName);
        itemPtr->is_ucs2 = groupName.is_ucs2;
        itemPtr->str_len = MIN(LISTBOX_STRING_MAX_NUM,groupName.length);
        SCI_MEMCPY(itemPtr->str,groupName.str_ptr,itemPtr->str_len); 
    }
}

/* ***************************************************************************
 *  Function name : DCW_PB_createGroupNameList
 *  Description   : 得到组名字列表
 *  Param         : ctrlId : 控件ID
                    build  : 是新建列表,还是重新生成列表
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_createGroupNameList(MMI_COMMON_CTRL_ID_T ctrlId,BOOLEAN build)
{
    uint16              i;
    uint16              index;
    GUI_LISTBOX_ITEM_T  item;
    MMI_STRING_T        groupName;
   
    if(build == FALSE)
    {
        GUILISTBOX_RemoveAllItems(ctrlId);
    }

    GUILISTBOX_SetMaxItem(ctrlId, g_pb.group.amount);

    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;
    item.is_invalid = FALSE;
   
    MMI_GetLabelTextByLang((uint16)(TXT_PB_ADD_NEW_GROUP), &groupName);
    item.is_ucs2 = groupName.is_ucs2;
    item.str_len = MIN(LISTBOX_STRING_MAX_NUM,groupName.length);
    SCI_MEMCPY(item.str,groupName.str_ptr,item.str_len);
    GUILISTBOX_AppendItem(ctrlId, &item);

    for(i = 1; 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);
            item.is_ucs2 = groupName.is_ucs2;
            item.str_len = MIN(LISTBOX_STRING_MAX_NUM,groupName.length);
            SCI_MEMCPY(item.str,groupName.str_ptr,item.str_len);         
        }
        else if(g_pb.group.groupName[index].len > 0)
        {
            item.str_len = (uint8)MIN(LISTBOX_STRING_MAX_NUM, g_pb.group.groupName[index].len);
            item.is_ucs2 = g_pb.group.groupName[index].ucs2;
            SCI_MEMCPY(item.str,g_pb.group.groupName[index].array,item.str_len);
        }
        else
        {
            SCI_ASSERT(FALSE);
        }
        GUILISTBOX_AppendItem(ctrlId, &item);
    } 
}

/* ***************************************************************************
 *  Function name : DCW_PB_setGropuNameEditBox
 *  Description   : 为组名编辑框设置默认的名字
 *  Param         : ctrlId : 控件ID
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_setGropuNameEditBox(MMI_COMMON_CTRL_ID_T ctrlId)
{
    uint8           groupId;   
    MMI_STRING_T    groupName;
    T_PB_M_STRING   name;
    uint16          i;

    groupId = g_pb.group.index[g_pb.group.curIndex]; 

    if(groupId == 0)
    {
        for(i = DCW_PB_MIN_GROUP_NUM; i < DCW_PB_MAX_GROUP_NUM;i++)
        {
            if(g_pb.group.groupName[i].len == 0)
            {
                break;
            }
        }
        MMI_GetLabelTextByLang((uint16)TXT_PB_DEFAULT_GROUP_0 + i, &groupName);
        name.ucs2 = groupName.is_ucs2;
        name.len = MIN(DCW_PB_MAX_GROUP_NAME_LEN,groupName.length);
        SCI_MEMCPY(name.array,groupName.str_ptr,name.len); 
    }
    else if(groupId >= DCW_PB_MIN_GROUP_NUM && groupId < DCW_PB_MAX_GROUP_NUM)
    {
        name.len = (uint8)MIN(DCW_PB_MAX_GROUP_NAME_LEN, g_pb.group.groupName[groupId].len);
        name.ucs2 = g_pb.group.groupName[groupId].ucs2;
        SCI_MEMCPY(name.array,g_pb.group.groupName[groupId].array,name.len);
    }
    else
    {
        SCI_ASSERT(FALSE);
    }
    
    GUIEDITBOX_SetTextEditBoxStringInfo(ctrlId, name.array, name.len, name.ucs2);

    GUIEDITBOX_SetEditBoxStyle(ctrlId, SONG_FONT_16, 0x0000, 0xffff);
}
/* ***************************************************************************
 *  Function name : DCW_PB_loadUsedSpaceInfo
 *  Description   : 装载使用空间的信息
 *  Param         : ctrlId : 控件ID
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_loadUsedSpaceInfo(MMI_COMMON_CTRL_ID_T ctrlId)
{
    GUI_LISTBOX_ITEM_T  item;
    MMI_STRING_T        str;

    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;    
    item.is_invalid = FALSE;
    item.is_ucs2 = FALSE;

    item.left_icon_id = IMAGE_PHONEBOOK_SIM;
    
    MMI_GetLabelTextByLang(TXT_PB_ADD_IN_SIM, &str);
    item.is_ucs2 = str.is_ucs2;
    item.str_len = MIN(str.length,LISTBOX_STRING_MAX_NUM);
    SCI_MEMCPY(item.str, str.str_ptr, item.str_len);    
    GUILISTBOX_AppendItem(ctrlId, &item);

    item.is_ucs2 = FALSE;
    item.str_len = sprintf((char *)(item.str), "%d/%d", g_pb.sim.usedRecord,g_pb.sim.maxRecord);
    GUILISTBOX_AppendItem(ctrlId, &item);


    item.left_icon_id = IMAGE_PHONEBOOK_PHONE;
    MMI_GetLabelTextByLang(TXT_PB_ADD_IN_NV, &str);    
    item.is_ucs2 = str.is_ucs2;
    item.str_len = MIN(LISTBOX_STRING_MAX_NUM, str.length);
    SCI_MEMCPY(item.str, str.str_ptr, item.str_len);
    GUILISTBOX_AppendItem(ctrlId, &item);
    
    item.is_ucs2 = FALSE;
    item.str_len = sprintf((char *)(item.str),"%d/%d", g_pb.nv.usedRecord,g_pb.nv.maxRecord);    
    GUILISTBOX_AppendItem(ctrlId, &item);
}

BOOLEAN DCW_PB_isCurItemSelect(MMI_COMMON_CTRL_ID_T ctrlId)
{
    uint16  i;
    uint16  index;
    BOOLEAN flag = FALSE;

    index = GUILISTBOX_GetCurItemIndex(ctrlId);

    g_pb.operate.listInfo.selectNumber =  GUILISTBOX_GetSelectedItemIdx(ctrlId, g_pb.operate.listInfo.selectItemPtr,
                                                                        g_pb.operate.listInfo.selectMaxNumber);
            
    for(i = 0; i < g_pb.operate.listInfo.selectNumber; i++)
    {
        if(g_pb.operate.listInfo.selectItemPtr[i] == index)
        {
            flag = TRUE;
            break;
        }
    }

    return flag;
}

void DCW_PB_DrawTitleWithNum(MMI_COMMON_WINDOW_ID_E win_id,MMI_TEXT_ID_T textId,uint16 num1, uint16 num2)
{
    uint16          curLen;
    uint16          strMaxLen;
    MMI_STRING_T    tilteName;
    T_PB_L_STRING   tileNameWithNum;    

    MMI_GetLabelTextByLang((uint16)textId, &tilteName);
    tileNameWithNum.ucs2 = tilteName.is_ucs2;
    tileNameWithNum.len  =  MIN(DCW_PB_L_STR_MAX_LEN - 10,tilteName.length);
    SCI_MEMCPY(tileNameWithNum.array,tilteName.str_ptr,tileNameWithNum.len);

   /* DCW_PB_DrawTitleWithNum(win_id,(void *)&tileNameWithNum.array[tileNameWithNum.len],&curLen, 
                            DCW_PB_L_STR_MAX_LEN - tileNameWithNum.len - 1,num1,num2,tileNameWithNum.ucs2);*/
}

void DCW_PB_createLocalNameList(MMI_COMMON_CTRL_ID_T ctrlId)
{
    uint16                  nvPos  = 0;
    uint32                  size;
    uint16                  i;
    GUI_LISTBOX_ITEM_T      addItem;
    BOOLEAN                 ret;

    if(GUILISTBOX_SetMaxItem(ctrlId, g_pb.sim_localName.maxRecord))
    {
        for(i = 0; i < g_pb.sim_localName.maxRecord; 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;

            ret = DCW_PB_ReadOneRecordFromSim(&g_pb_simRecord,i,PHONEBOOK_MSISDN_STORAGE);

            if(ret == TRUE)
            {
                addItem.is_ucs2 = g_pb_simRecord.outerName.ucs2;
                addItem.str_len = MIN(g_pb_simRecord.outerName.len,LISTBOX_STRING_MAX_NUM);
                SCI_MEMCPY(addItem.str, g_pb_simRecord.outerName.array, addItem.str_len);
            }

            if(addItem.str_len == 0)
            {
                MMI_STRING_T        defaultStr;

                MMI_GetLabelTextByLang(TXT_BLANK, &defaultStr);
                addItem.is_ucs2 = defaultStr.is_ucs2;
                addItem.str_len = MIN(defaultStr.length,LISTBOX_STRING_MAX_NUM);
                SCI_MEMCPY(addItem.str, defaultStr.str_ptr, addItem.str_len);
            }

            addItem.left_icon_id = IMAGE_PHONEBOOK_SIM;
            addItem.is_invalid = FALSE;
            GUILISTBOX_AppendItem(ctrlId, &addItem);
        }
    }

    if(g_pb.operate.listInfo.selectItemPtr != PNULL)
    {
        SCI_FREE(g_pb.operate.listInfo.selectItemPtr);
        g_pb.operate.listInfo.selectItemPtr = PNULL;
    }

    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;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -