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

📄 dcw_pb_window.c

📁 重写的展迅电话本, 重写的展迅电话本, 重写的展迅电话本,
💻 C
📖 第 1 页 / 共 5 页
字号:

/*****************************************************************************
** File Name:      dcw_pb_window.c                                           *
** Author:         *************                                             *
** Date:           2006-04-14                                                *
** Copyright:      2006 ************* All Rights                             *
** Description:    此文件包括所有的窗口处理函数                              *
/*****************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE                 NAME             DESCRIPTION                         *
** 2006-04-11           *************    Create                              *
******************************************************************************/

#ifndef _DCW_PB_WINDOW_C_
#define _DCW_PB_WINDOW_C_

#include "dcw_pb.h"
#include "ccapp.h"

BOOLEAN   g_pb_fristSearch = TRUE;  

/*****************************************************************************
 *  Function name : DCW_PB_openWindows
 *  Description   : 打开一个窗口或一个popup窗口
 *  Param         : winTable : 窗口信息
                    alertInfo: 结构体信息
 *  Return        : None
 *  Author:       : *************
 *  Note          : None
 *****************************************************************************/
void DCW_PB_openWindows(uint32 *winTablePtr,T_PB_ALERT_WIN_INFO *alertInfoPtr)
{
    if(winTablePtr !=PNULL)
    {
        if(DCW_PB_IsReady() == TRUE)
        {
            MMK_CreateWin(winTablePtr,PNULL);
        }
        else
        {
            PUBWIN_OpenPromptAlertWin(g_pb_waitWinTab.softkeyType, g_pb_waitWinTab.textId,
                                      g_pb_waitWinTab.imageId,g_pb_waitWinTab.timeOut,g_pb_waitWinTab.callBackFun);
        }
    }
    else if(alertInfoPtr != PNULL)
    {
        /* 定制的警告窗口 */
        PUBWIN_OpenPromptAlertWin(alertInfoPtr->softkeyType, alertInfoPtr->textId,
                                  alertInfoPtr->imageId,     alertInfoPtr->timeOut,alertInfoPtr->callBackFun);
    }
    else
    {
        /* trace (传递参数错误) */
        SCI_TRACE_LOW("DCW_PB_openWindows: The parameter is wrong");
    }
}
/* ***************************************************************************
 *  Function name : DCW_PB_openExternWidows
 *  Description   : 打开一个外调窗口
 *  Param         : None
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_openExternWidows(void)
{
    T_PB_RECORD_ITEM_ADDR   *recordAddrPtr;
    T_PB_BCD_NUMBER         *numPtr;
    T_PB_L_STRING           numStr;
    

    if(g_pb.operate.operateType == PB_OPERATE_GENERAL_BROWSE_E || 
       g_pb.operate.operateType == PB_OPERATE_SPEEDY_SEARCH_E  ||
       g_pb.operate.operateType == PB_OPERATE_ORDINARY_SEARCH_E)
    {
        recordAddrPtr = DCW_PB_getRecordAddr(g_pb.operate.listInfo.selectItemPtr[0]);
        SCI_ASSERT(recordAddrPtr != PNULL);

        if(recordAddrPtr->type == PHONEBOOK_SIM_STORAGE)
        {
            numPtr = &g_pb.sim.recordPtr[recordAddrPtr->pos].num;
        }
        else
        {
            numPtr = &g_pb.nv.recordPtr[recordAddrPtr->pos].num[recordAddrPtr->offset];
        }

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

        switch(g_pb.operate.subOperateType)
        {
        case PB_SUB_OPERATE_CALL_E:             /* 打电话 */
            CC_SendMoCall(numStr.array,numStr.len);
            break;

        case PB_SUB_OPERATE_IP_CALL_E:          /* 打IP电话 */
            CC_MakeIPCall(numStr.array,numStr.len);
            break;

        case PB_SUB_OPERATE_SEND_SMS_E:         /* 发送短信 */
            MMISMS_WriteNewMessage(PNULL, numStr.array, numStr.len);
            break;

        case PB_SUB_OPERATE_SEND_MMS_E:         /* 发送彩信 */
            MMIMMS_AnswerMMS(numStr.len, numStr.array);
            break;

        case PB_SUB_OPERATE_NUMBER_REJECT_E:    /* 设定为拒接电话 */    
            MMIMTFW_OpenEditWin(numStr.array, numStr.len);
            break;

        default:
            break;
        }
    }
    if(g_pb.operate.operateType == PB_OPERATE_GROUP_MANAGE_E)
    {
        if(g_pb.operate.subOperateType == PB_SUB_OPERATE_GROUP_SET_RING_E)
        {   
            MMISET_SelectCallOrAlarmRing(g_pb.group.index[g_pb.group.curIndex],MMIMP3_AS_CALL_RING);
        }
    }
    else if(g_pb.operate.operateType == PB_OPERATE_SETTING_SPEEDKEY_E)
    {   /* 单号拨电话 */
        CC_OpenSetSpeedDial();
    }
    else if(g_pb.operate.operateType == PB_OPERATE_SETTING_MTFW_E)
    {   /* 防火墙 */
        CC_MTFWList();
    }
    else
    {
    }
}

/* ***************************************************************************
 *  Function name : DCW_PB_handleMainMenuWinMsg
 *  Description   : 窗口消息处理函数   窗口层次 Mainmenu
 *  Param         : ...
 *  Return        : ...
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
MMI_RESULT_E DCW_PB_handleMainMenuWinMsg(MMI_COMMON_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param)
{
    MMI_RESULT_E         ret     = MMI_RESULT_TRUE;
    MMI_COMMON_CTRL_ID_T ctrlId  = DCW_PB_MAIN_MENU_CTRL_ID;
    uint32               groupId = 0;
    uint32               menuId  = 0;
    uint16               count;

    switch (msg_id)
    {
    case MSG_OPEN_WINDOW:
        MMK_SetAtvCtrl(win_id,ctrlId);
        MMK_SetWinSoftkeyId(win_id, STXT_OK, COMMON_TXT_NULL, STXT_RETURN, FALSE);
        if(g_pb.nv.usedRecord == g_pb.nv.maxRecord && g_pb.sim.usedRecord == g_pb.sim.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB,ID_PB_ADD,GRAYED);
            GUIMENU_SetGrayed(MENU_PB,ID_PB_COPY,GRAYED);
        }
        else if(g_pb.nv.usedRecord == g_pb.nv.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_NV,GRAYED);
        }
        else if(g_pb.sim.usedRecord == g_pb.sim.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_SIM,GRAYED);
        }
        else
        {
        }
        if(g_pb.sim_localName.maxRecord == 0)
        {
            GUIMENU_SetGrayed(MENU_PB,ID_PB_LOCAL_NAME,GRAYED);
        }
        break;
    case MSG_GET_FOCUS:
    case MSG_CTL_GET_FOCUS:
        if(g_pb.nv.usedRecord == g_pb.nv.maxRecord && g_pb.sim.usedRecord == g_pb.sim.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB,ID_PB_ADD,GRAYED);
            GUIMENU_SetGrayed(MENU_PB,ID_PB_COPY,GRAYED);
        }
        else if(g_pb.nv.usedRecord == g_pb.nv.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_NV,GRAYED);
        }
        else if(g_pb.sim.usedRecord == g_pb.sim.maxRecord)
        {
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_SIM,GRAYED);
        }
        else
        {
            GUIMENU_SetGrayed(MENU_PB,ID_PB_ADD,UNGRAYED);
            GUIMENU_SetGrayed(MENU_PB,ID_PB_COPY,UNGRAYED);
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_SIM,UNGRAYED);
            GUIMENU_SetGrayed(MENU_PB_ADD,ID_PB_ADD_IN_NV,UNGRAYED);
        }

        if(g_pb.sim_localName.maxRecord == 0)
        {
            GUIMENU_SetGrayed(MENU_PB,ID_PB_LOCAL_NAME,GRAYED);
        }
        break;

    case MSG_APP_OK:
    case MSG_CTL_OK:
        if(DCW_PB_IsReady() == FALSE)
        {
            DCW_PB_openWindows(PNULL,&g_pb_waitWinTab);
            break;
        }
        GUIMENU_GetRetID(ctrlId,&groupId,&menuId);
        switch(menuId)
        {
        case ID_PB_BROWSE:
            if(g_pb.nv.usedRecord != 0 || g_pb.sim.usedRecord != 0)
            {
                DCW_PB_loadOperateInfo(PB_OPERATE_GENERAL_BROWSE_E,PB_SUB_OPERATE_NONE_E,PNULL);
                DCW_PB_openWindows((uint32 *)g_pb_recordBrowseWinTab, PNULL);
            }
            else
            {   /* 没有电话记录 */              
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_SPEEDY_SEARCH:
            if(g_pb.nv.usedRecord != 0 || g_pb.sim.usedRecord != 0)
            {   
                DCW_PB_loadOperateInfo(PB_OPERATE_SPEEDY_SEARCH_E,PB_SUB_OPERATE_NONE_E,PNULL);
                DCW_PB_openWindows((uint32 *)g_pb_speedySearchWinTab, PNULL);
            }
            else
            {   
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }            
            break;
    
        case ID_PB_ORDINARY_SEARCH:
            if(g_pb.nv.usedRecord != 0 || g_pb.sim.usedRecord != 0)
            {   
                DCW_PB_loadOperateInfo(PB_OPERATE_ORDINARY_SEARCH_E,PB_SUB_OPERATE_NONE_E,PNULL);
                DCW_PB_openWindows((uint32 *)g_pb_ordinarySearchWinTab, PNULL);
            }
            else
            {   /* 没有电话记录 */
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_ADD_IN_SIM:
            if(g_pb.sim.usedRecord < g_pb.sim.maxRecord)
            {
                SCI_MEMSET(&g_pb_simRecord,0x00,sizeof(T_PB_SIM_RECORD));     
                DCW_PB_loadOperateInfo(PB_OPERATE_ADD_IN_SIM_E,PB_SUB_OPERATE_NONE_E,PNULL);
                DCW_PB_openWindows((uint32 *)g_pb_editSimRecordWinTab, PNULL);
            }
            else
            {   /* sim卡记录满 */
                DCW_PB_openWindows(PNULL,&g_pb_simFullWinTab);
            }
            break;

        case ID_PB_ADD_IN_NV:
            if(g_pb.nv.usedRecord < g_pb.nv.maxRecord)
            {   
                SCI_MEMSET(&g_pb_nvRecord,0x00,sizeof(T_PB_NV_RECORD));
                DCW_PB_loadOperateInfo(PB_OPERATE_ADD_IN_NV_E,PB_SUB_OPERATE_NONE_E,PNULL);
                DCW_PB_openWindows((uint32 *)g_pb_editNvRecordWinTab, PNULL);
            }
            else
            {   /* Nv记录满 */
                DCW_PB_openWindows(PNULL,&g_pb_nvFullWinTab);
            }
            break;

        case ID_PB_ERASE_MANY:
            DCW_PB_loadOperateInfo(PB_OPERATE_ERASE_MANY_E,PB_SUB_OPERATE_NONE_E,PNULL);
            DCW_PB_openWindows((uint32 *)g_pb_multipleSelectBrowseWinTab, PNULL);
            break;

        case ID_PB_ERASE_SIM_ALL:
            if(g_pb.sim.usedRecord > 0)
            {
                DCW_PB_loadOperateInfo(PB_OPERATE_ERASE_SIM_ALL_E,PB_SUB_OPERATE_NONE_E,PNULL);
                g_pb_text = TXT_VC_IS_DEL_ALL;
                DCW_PB_openWindows((uint32 *)g_pb_orNotWinTab,PNULL);
            }
            else
            {   /* 没有电话记录 */
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_ERASE_NV_ALL:        
            if(g_pb.nv.usedRecord > 0)
            {
                DCW_PB_loadOperateInfo(PB_OPERATE_ERASE_NV_ALL_E,PB_SUB_OPERATE_NONE_E,PNULL);
                g_pb_text = TXT_VC_IS_DEL_ALL;
                DCW_PB_openWindows((uint32 *)g_pb_orNotWinTab,PNULL);
            }
            else
            {   /* 没有电话记录 */
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_COPY_MANY_FROM_NV_TO_SIM:
            count = DCW_PB_getPhoneNumInNv();
            if(count > 0)
            {
                if(g_pb.sim.usedRecord < g_pb.sim.maxRecord)
                {
                    DCW_PB_loadOperateInfo(PB_OPERATE_COPY_MANY_TO_SIM_E,PB_SUB_OPERATE_NONE_E,PNULL);
                    DCW_PB_openWindows((uint32 *)g_pb_multipleSelectBrowseWinTab,PNULL);
                }
                else
                {
                    DCW_PB_openWindows(PNULL,&g_pb_simFullWinTab);
                }
            }
            else
            {
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_COPY_MANY_FROM_SIM_TO_NV:
            if(g_pb.sim.usedRecord > 0)
            {
                if(g_pb.nv.usedRecord < g_pb.nv.maxRecord)
                {
                    DCW_PB_loadOperateInfo(PB_OPERATE_COPY_MANY_TO_NV_E,PB_SUB_OPERATE_NONE_E,PNULL);
                    DCW_PB_openWindows((uint32 *)g_pb_numTypeChooseWinTab,PNULL);
                }
                else
                {
                    DCW_PB_openWindows(PNULL,&g_pb_nvFullWinTab);
                }
            }
            else
            {
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            break;

        case ID_PB_COPY_ALL_FROM_SIM_TO_NV:
            if(g_pb.sim.usedRecord == 0)
            {   /* 没有电话记录 */
                DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
            }
            else
            {
                if(g_pb.nv.usedRecord < g_pb.nv.maxRecord)
                {
                    if(g_pb.nv.usedRecord + g_pb.sim.usedRecord <= g_pb.nv.maxRecord)
                    {
                        DCW_PB_loadOperateInfo(PB_OPERATE_COPY_ALL_TO_NV_E,PB_SUB_OPERATE_NONE_E,PNULL);  
                        DCW_PB_openWindows((uint32 *)g_pb_numTypeChooseWinTab,PNULL);
                    }
                    else
                    {
                        DCW_PB_openWindows(PNULL,&g_pb_nvSpaceNotEnoughWinTab);
                    }
                }
                else
                {   /* Nv卡记录满 */
                    DCW_PB_openWindows(PNULL,&g_pb_nvFullWinTab);
                }
            }
            break;

⌨️ 快捷键说明

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