📄 mmilists.c
字号:
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
data->Callback(data->Parent, &data->MenuData);
}
else if (getMelodyListStatus() == TRUE)
{
TRACE_EVENT("in melody");
mnuDown(data->MenuLists);
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.Reason = LISTS_REASON_SCROLL;
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level];
SEND_EVENT(data->Parent,E_START_MELODY,0,(void*)data);
}
else if (GetSMSLISTWINHandle())
{
TRACE_EVENT("in sms");
mnuDown(data->MenuLists);
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.Reason = LISTS_REASON_DOWN;
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
data->Callback(data->Parent, &data->MenuData);
}
#ifdef _MMS_ENABLE_
else if (data->Parent == MMS_Get_MMSImageMusic_WHnd()) //added by xie 04-07-15
{
mnuDown(data->MenuLists);
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.Reason = LISTS_REASON_DOWN;
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
data->Callback(data->Parent, &data->MenuData);
}
#endif
else
{
TRACE_EVENT("we only mnudown");
mnuDown(data->MenuLists);
}
break;
case KCD_LEFT: /* activate this entry */
// mnuSelect(data->MenuLists);
/*2003/11/24, wangyan modify*/
#if 0
if (getMelodyListStatus() == TRUE)
dspl_Clear(0,16,16,141);
#endif
data->ExitReason = LISTS_REASON_SELECT;
data->MenuData.Reason = LISTS_REASON_SELECT;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
//currentring = data->MenuData.ListPosition;
data->Callback(data->Parent, &data->MenuData);
#ifdef _MMS_ENABLE_
//begin xie 04-07-08
if (MMS_Get_CurSetList_WHnd() == data->Parent)
{
mnuSelect(data->MenuLists);
break;
}
//end xie
#endif
if (data->MenuData.autoDestroy)
{
winDelete (win);
FREE_MEMORY ((void*)data, sizeof (ListWinInfo));
}
break;
case KCD_CALL: /* press send key */
data->ExitReason = LISTS_REASON_SEND;
data->MenuData.Reason = LISTS_REASON_SEND;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
data->Callback(data->Parent, &data->MenuData);
if (data->MenuData.autoDestroy)
{
winDelete (win);
FREE_MEMORY ((void*)data, sizeof (ListWinInfo));
}
break;
case KCD_HUP: /* back to previous menu */
if (weeklyAlarm_win)
{
data->ExitReason = LISTS_REASON_HANGUP;
data->MenuData.Reason = LISTS_REASON_HANGUP;
data->Callback(data->Parent, &data->MenuData);
}
else if (data->Parent==GetWindowHandle()||data->Parent==GetCallWindowHandle())
{
TRACE_EVENT("in phb,press hup");
data->ExitReason = LISTS_REASON_HANGUP;
data->MenuData.Reason = LISTS_REASON_HANGUP;
data->Callback(data->Parent, &data->MenuData);
}
else if (getMelodyListStatus() == TRUE)
{
data->ExitReason = LISTS_REASON_HANGUP;
data->MenuData.Reason = LISTS_REASON_HANGUP;
data->Callback(data->Parent, &data->MenuData);
}
#ifdef _MMS_ENABLE_
else if (data->Parent == MMS_Get_MMSNew_WHnd() || data->Parent == MMS_Get_MsgList_WHnd() ||data->Parent == MMS_Get_RecvList_WHnd() || data->Parent == MMS_Get_AllSetList_WHnd() ||data->Parent == MMS_Get_CurSetList_WHnd())//add by xie 2004-7-1
{
data->ExitReason = LISTS_REASON_HANGUP;
data->MenuData.Reason = LISTS_REASON_HANGUP;
data->Callback(data->Parent, &data->MenuData);
}
#endif
else
{
mnuEscape(data->MenuLists);
}
if (returntoidle(0))
break;
if (data->MenuData.autoDestroy)
{
listsDestroy(win);
}
break;
case KCD_RIGHT: /* back to previous menu */
if (data->Parent==GetWindowHandle()||data->Parent==GetCallWindowHandle())
{
TRACE_EVENT("in phb,press right");
data->ExitReason = LISTS_REASON_BACK;
data->MenuData.Reason = LISTS_REASON_BACK;
data->Callback(data->Parent, &data->MenuData);
}
#ifdef _MMS_ENABLE_
else if (data->Parent == MMS_Get_RecvList_WHnd())//add by xie 04-07-28
{
data->ExitReason = LISTS_REASON_BACK;
data->MenuData.Reason = LISTS_REASON_BACK;
data->Callback(data->Parent, &data->MenuData);
break;
}
#endif
else
{
mnuEscape(data->MenuLists);
}
if (data->MenuData.autoDestroy)
{
listsDestroy(win);
}
break;
case KCD_MNULEFT:
data->ExitReason = LISTS_REASON_LEFT;
data->MenuData.Reason = LISTS_REASON_LEFT;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; // True cursor position in list menu.
data->Callback(data->Parent, &data->MenuData);
break;
case KCD_MNURIGHT:
data->ExitReason = LISTS_REASON_RIGHT;
data->MenuData.Reason = LISTS_REASON_RIGHT;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; // True cursor position in list menu.
data->Callback(data->Parent, &data->MenuData);
break;
case KCD_OK:
data->ExitReason = LISTS_REASON_OK;
data->MenuData.Reason = LISTS_REASON_OK;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; // True cursor position in list menu.
data->Callback(data->Parent, &data->MenuData);
if (data->MenuData.autoDestroy)
{
winDelete (win);
FREE_MEMORY ((void*)data, sizeof (ListWinInfo));
}
break;
case KCD_0:
case KCD_1:
case KCD_2:
case KCD_3:
case KCD_4:
case KCD_5:
case KCD_6:
case KCD_7:
case KCD_8:
case KCD_9:
data->ExitReason =k->code+20;// LISTS_REASON_KCD4;
data->MenuData.Reason = k->code+20;//LISTS_REASON_KCD4;
MenuHandle = mfwControl(data->MenuLists);
data->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
data->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
data->Callback(data->Parent, &data->MenuData);
break;
case KCD_F4: //stop melody when hall is closed in melody select menu
if (getMelodyListStatus()== TRUE)
{
if (drvpara.hallstatusflag ==0)
Stopplayingdevice();
data->ExitReason = LISTS_REASON_HANGUP;
data->MenuData.Reason = LISTS_REASON_HANGUP;
data->Callback(data->Parent, &data->MenuData);
}
if (!HallStatus())
{
returntoidle(1);
}
break;
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
}
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: listsWinEvent
$Description: window event handler
$Returns: none.
$Arguments:
*******************************************************************************/
static int listsWinEvent(MfwEvt e, MfwWin *w)
{
ListWinInfo * ListData = (ListWinInfo *)w->user;
MfwMnu *MenuHandle;
UINT32 oldColor,oldFontColor;
TRACE_FUNCTION("listsWinEvent()");
switch (e)
{
case E_WIN_VISIBLE:
// if (w->flags & E_WIN_VISIBLE&&!(CallListFlag==1&&cugwindows)) //CallListFlag==1&&cugwindows represent "in rencent menu list" and "have done a call "
if (w->flags & E_WIN_VISIBLE) //CallListFlag==1&&cugwindows represent "in rencent menu list" and "have done a call "
{
// dspl_ClearAll();//zy add 09/18
controlBrowseNew();//zy 10/08
oldColor=dspl_GetBkgColor();//zy 09/05
dspl_SetBkgColor(GetPreDefinedColor(ColorSoftKeyBG));
oldFontColor=dspl_GetFrgColor();
dspl_SetFrgColor(GetPreDefinedColor(ColorSoftKeyFont));
displaySoftKeys(ListData->MenuData.LeftSoftKey, ListData->MenuData.RightSoftKey);
dspl_SetBkgColor(oldColor);
dspl_SetFrgColor(oldFontColor);//zy 09/05
} // ListData->Callback(ListData->Parent, &ListData->MenuData);
if (getMelodyListStatus() == TRUE)
{
TRACE_EVENT("listsWinEvent():getMelodyListStatus is true");
}
else if ((CallListFlag==1&&cugwindows)||ListData->Parent==GetWindowHandle()||ListData->Parent==GetCallWindowHandle()||GetSMSLISTWINHandle())
//then case of "ListData->Parent==GetWindowHandle()" bemay done displaySoftKeys two times
//if (CallListFlag==1)
{
// displaySoftKeys(ListData->MenuData.LeftSoftKey, ListData->MenuData.RightSoftKey);
TRACE_FUNCTION("LISTS_REASON_UPDATE hubh 1-21 ");
ListData->ExitReason = LISTS_REASON_UPDATE;
ListData->MenuData.Reason = LISTS_REASON_UPDATE;
MenuHandle = mfwControl(ListData->MenuLists);
ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
ListData->Callback(ListData->Parent, &ListData->MenuData);
//SEND_EVENT(ListData->Parent, LISTS_REASON_UPDATE, 0, 0) //2003-1-21
}
// else
//displaySoftKeys(ListData->MenuData.LeftSoftKey, ListData->MenuData.RightSoftKey);
break;
default:
return MFW_EVENT_PASSED;
break;
}
return MFW_EVENT_CONSUMED;
}
static void lists_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
ListWinInfo * ListData = (ListWinInfo *)win_data->user;
T_MFW_HND * l_parent;
SHORT l_id;
TRACE_FUNCTION ("lists_exec_cb()");
switch (event)
{
case E_INIT:
case E_BACK:
case E_RETURN:
case E_ABORT:
case E_EXIT:
/* defaultreaction */
l_parent = ListData->Parent;
l_id = ListData->id;
winDelete (win);
FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo));
SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */
break;
default:
return;
}
}
/*******************************************************************************
$Function: listsListCbMenu
$Description: List menu handler. (mfw callback function)
$Returns: none.
$Arguments:
*******************************************************************************/
int listsListCbMenu(MfwEvt EventCode, MfwMnu *MenuHandle)
{
int Status = LISTS_OK;
T_MFW_HND win = mfw_parent (mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
ListWinInfo* ListData = (ListWinInfo *)win_data->user;
TRACE_FUNCTION("listsCbMenu()");
switch (EventCode)
{
case E_MNU_SELECT:
ListData->ExitReason = E_MNU_SELECT;
ListData->MenuData.Reason = LISTS_REASON_SELECT;// MZ 14/2/01 E_MNU_SELECT;
ListData->MenuData.CursorPosition = MenuHandle->lCursor[MenuHandle->level];
ListData->MenuData.ListPosition = MenuHandle->lCursor[MenuHandle->level]; /* True cursor position in list menu. */
ListData->Callback(ListData->Parent, &ListData->MenuData);
break;
case E_MNU_ESCAPE:
ListData->ExitReason = LISTS_REASON_BACK;
ListData->MenuData.Reason = LISTS_REASON_BACK;
ListData->Callback(ListData->Parent, &ListData->MenuData);
break;
default:
Status = LISTS_FAIL;
TRACE_FUNCTION("Activation 77 error");
break;
}
/*
* Free all allocated memory and handler
*/
if (ListData->MenuData.autoDestroy)
{
winDelete (win);
FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo));
}
return Status;
}
void listsDestroy(T_MFW_HND win)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
ListWinInfo * ListData = (ListWinInfo *)win_data->user;
winDelete (win);
FREE_MEMORY ((void*) ListData, sizeof (ListWinInfo));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -