📄 dcw_pb_window.c
字号:
/*****************************************************************************
** 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 + -