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

📄 mmibookmenuwindow.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:
/*******************************************************************************

					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 + -