📄 mmibookmenuwindow.c
字号:
/*******************************************************************************
CONDAT (UK)
********************************************************************************
This software product is the property of Condat (UK) Ltd and may not be
disclosed to any third party without the express permission of the owner.
********************************************************************************
$Project name: Basic MMI
$Project code: BMI (6349)
$Module: PhoneBook
$File: MmiBookMenuWindow.c
$Revision: 1.0
$Author: Condat(UK)
$Date: 25/10/00
********************************************************************************
Description:
Menu handling for the phone book
********************************************************************************
$History: MmiBookMenuWindow.c
25/10/00 Original Condat(UK) BMI version.
$End
*******************************************************************************/
/*******************************************************************************
Include Files
*******************************************************************************/
#define ENTITY_MFW
/* includes */
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "mfw_sys.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_lng.h"
#include "mfw_edt.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_tim.h"
#include "mfw_sim.h"
#include "mfw_cm.h"
#include "mfw_nm.h"
#include "mfw_phb.h"
#include "mfw_mme.h"
#include "mfw_sat.h"
#include "mfw_sms.h"
#include "dspl.h"
#include "ksd.h"
#include "psa.h"
#include "MmiMain.h"
#include "MmiBookController.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiMenu.h"
#include "MmiCall.h"
#include "MmiIcons.h"
#include "MmiIdle.h"
#include "MmiSoftKeys.h"
#include "MmiSounds.h"
#include "MmiIdle.h"
#include "MmiNetwork.h"
#include "MmiSat_i.h"
#include "MmiAoc.h"
#include "Mmistopwatch.h"
#include "gdi.h"
#include "audio.h"
#include "cus_aci.h"
#include "p_sim.h"
#include "mfw_ffs.h"
#include "MmiTimers.h"
#include "MmiBookShared.h"
#include "MmiSettings.h" // for keypadlock
#include "MmiSounds.h"
#include "MmiIdle.h"
#include "Mmiservices.h"
#include "Mmihost.h"
#include "mmiQQSwitch.h"
//2004.08.02 Added by Cathy for Camera
#ifdef CAMERA_ENABLED
#include "mmicamera.h"
#endif
extern int gPlayKeytoneFlag; // MI18800000126
extern UBYTE HUPKeyOrigin; // Variable to indicate that long end key press is coming from menu
extern MfwHnd stopw_win;
extern ToolkitTitle;
extern WapTitle;
extern T_idle idle_data;
extern MfwHnd wap_main_window;
extern MfwHnd show_timer;
extern MfwHnd edt_timer;
extern UBYTE AllowPredText;
extern INT8 g_norejectkeyflag;
extern T_call call_data;
extern BOOL g_SATsession_is_active;
extern UBYTE anim_real_complete;
static int menutype = 0;
extern BOOL phonebook_search_flag;
#define ONEKEY_TOIDLE
/*******************************************************************************
External Function Prototype
*******************************************************************************/
/* Fix for the melody and volume settings. */
extern BOOL getScrollSelectMenuItem(void);
extern void ClearWindowHandle();
extern clearScrollSelectMenuItem(void);
extern void volMenuItemSelected(void);
extern USHORT getSoundsReason(void);
extern void startRingerVolSettingInactivityTimer(void);
extern void stopRingerVolSettingInactivityTimer(void);
extern void restartVolSettingInactivityTimer(void);
extern void ec_editDeactivate(void);
#ifdef QQFUNC
extern uint8 In_QQ;
extern void FreeListMemory();
#endif
/* 2004/07/09 sunsj add for forbidden hall off */
extern void sat_destroy();
/*******************************************************************************
Private Methods
*******************************************************************************/
/*******************************************************************************
$Function: bookMenuMenuCB
$Description: Menu handler for the menu window
$Returns: MFW_EVENT_CONSUMED if event handled, otherwise
MFW_EVENT_PASSED
$Arguments: e, event, m, menu handle
*******************************************************************************/
static int bookMenuMenuCB( MfwEvt e, MfwMnu *m )
{
T_MFW_HND window = mfwParent( mfw_header() );
T_MFW_WIN *win_data = ((T_MFW_HDR *)window)->data;
tBookStandard *data = (tBookStandard *) win_data->user;
TRACE_FUNCTION( "bookMenuMenuCB()" );
/* We only handle the ESCAPE event in here
*/
switch (e)
{
case E_MNU_ESCAPE:
{
/* Escape requested, we need to shut down this window
*/
if (data->Callback)
(data->Callback) (data->parent_win, NULL, NULL);
bookMenuDestroy( window );
stopRingerVolSettingInactivityTimer();
}
break;
default:
{
/* unknown event, pass it up the tree for handling elsewhere
*/
return MFW_EVENT_PASSED;
}
break;
}
/* We got here, event handled, prevent anyone else
dealing with it
*/
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: bookMenuDialog
$Description: Menu window dialog function
$Returns: none
$Arguments: win, window handle
event, event to be handled
value, not used
parameter, not used
*******************************************************************************/
void bookMenuDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter )
{
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
tBookStandard *data = (tBookStandard *) win_data->user;
MfwMnu *mnu;
char * userdefine; //define the child menu title value
TRACE_FUNCTION( "bookMenuDialog()" );
/* The menu dialog function has to deal with initialisation
and responses from the PIN2 validation methods
*/
switch (event)
{
case MENU_INIT:
{
/* On initialisation, create the menus and display the window */
if (value EQ PhbkDetailsListDone)
{
userdefine=(char *)"userRename";
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkHostkeyList)
{
userdefine=(char *) MmiRsrcGetText(TxtHostKeyItems);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = PhbkHostkeyList;
}
else if (value EQ PhbkHostkeyOnOffList)
{
userdefine=(char *) MmiRsrcGetText(TxtHostKeySet);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkNormal)
{
userdefine=MmiRsrcGetText(TxtPhonebook);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkFromVoiceMemo)
{
userdefine=MmiRsrcGetText(TxtVoiceMemo);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkSearchItem)
{
userdefine=MmiRsrcGetText(TxtSearchItem);
#if(MAIN_LCD_SIZE==3)
phonebook_search_flag=FALSE;
#endif
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkFromGroupingItem)
{
userdefine=MmiRsrcGetText(TxtGroupingItem);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if ((value EQ PhbkNameEnterIdle) || (value EQ PhbkNameEnterSms)||(value EQ PhbkNameEnterRecentCall))
{
userdefine=MmiRsrcGetText(TxtPhoneAdd);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkToolkit)
{
userdefine=MmiRsrcGetText(ToolkitTitle);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkWap)
{
#ifdef MMI_WAP_ENABLED
userdefine=MmiRsrcGetText(WapTitle);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
#endif
}
else if (value EQ CFTimeSet)
{
userdefine=MmiRsrcGetText(TxtSetCFTime);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
else if (value EQ PhbkVoiceList)
{
userdefine=MmiRsrcGetText(TxtVoiceList);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
#ifdef QQFUNC
else if ((value EQ Nvm_fri_list))
{
userdefine=MmiRsrcGetText(TxtQQFriSel);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Nvm_fri_list;
}
else if (value EQ Net_fri_list)
{
userdefine=MmiRsrcGetText(TxtQQFriSel);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Net_fri_list; //for update the datalist when back
}
else if (value EQ Sys_info_list)
{
userdefine=MmiRsrcGetText(TxtQQSysInfo);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Sys_info_list; //update the datalist when back
}
else if (value EQ Chat_info_list)
{
userdefine=MmiRsrcGetText(TxtQQChatInfo);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Chat_info_list; //update the datalist when back
}
else if (value EQ Unread_info_list)
{
userdefine=MmiRsrcGetText(TxtNewQQ);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Unread_info_list;
}
else if (value EQ find_fri_sel)
{
userdefine=MmiRsrcGetText(TxtQQFriSel);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = find_fri_sel;
}
else if (value EQ Left_info_list)
{
userdefine=MmiRsrcGetText(TxtQQLeftInfo);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
menutype = Left_info_list;
}
#endif //QQFUNC
else if (value EQ Phbksoftversion)
{
userdefine=MmiRsrcGetText(TxtSoftwareVersion);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
} /*2003/12/5, wangyan modify*/
#ifdef MMI_EM_ENABLED
else if(value EQ PhbEmMode)
{
userdefine = MmiRsrcGetText(TxtEngineeringMode);
data->menu = mnuListCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB, userdefine );
}
#endif
else
{
data->menu = mnuCreate( data->win, (MfwMnuAttr *) parameter, E_MNU_ESCAPE, (MfwCb) bookMenuMenuCB );
}
mnuLang( data->menu, mainMmiLng );
mnuUnhide( data->menu );
winShow( data->win );
if (value EQ PhbkHostkeyList)
displaySoftKeys( TxtSoftOK, TxtCancel);
if (value EQ PhbkMainMenu)
{
// start the timer for the keypadlock
tim_start (data->menu_tim);
data->status_of_timer = FALSE;
}
else
{
data->status_of_timer = TRUE;
}
if (value == SettingVolume)
{
/*
The ringer volume settings dialog has been invoked, create and start the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -