📄 mmimenu.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: Menus
$File: MmiMenu.c
$Revision: 1.0
$Author: Condat(UK)
$Date: 25/10/00
********************************************************************************
Description:
This provides the implementation of the main menu handling for the basic
MMI
********************************************************************************
$History: MmiMenu.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 "p_sim.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_lng.h"
/* SPR#1428 - SH - New Editor changes */
#ifndef NEW_EDITOR
#include "mfw_edt.h"
#endif
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_phb.h"
#include "mfw_sim.h"
#include "mfw_nm.h"
#include "mfw_tim.h"
#include "mfw_sms.h"
#include "mfw_icn.h"
#include "mfw_sat.h"
#include "dspl.h"
#include "ksd.h"
#include "psa.h"
#include "MmiMmi.h"
#include "MmiMain.h"
#include "MmiStart.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "mmiSmsBroadcast.h"
#include "MmiMenu.h"
#include "MmiSimToolkit.h"
#include "MmiSounds.h"
#include "MmiSettings.h"
#include "MmiServices.h"
#include "MmiPins.h"
#include "MmiIcons.h"
#include "MmiNetwork.h"
#include "MmiUserData.h"
#include "MmiSoftKeys.h"
#include "MmiTimeDate.h"
#include "MmiIdle.h"
#include "cus_aci.h"
#include "p_sim.h"
#include "pcm.h"
/*******************************************************************************
Private definitions
*******************************************************************************/
/* next define used for code that might be removed
*/
#define KEEP 0
/*******************************************************************************
Global Data Elements
*******************************************************************************/
/* Menus display area
*/
/*******************************************************************************
Module Global Data Elements
*******************************************************************************/
MfwHnd MenuWin = (MfwHnd) 0;
static MfwHnd win=0; /* our window */
static MfwHnd mnu; /* our menu */
static MfwHnd kbd; /* our keyboard */
static MfwHnd kbdLong;
static SimMenuFunc SimCallback;
static MfwHnd SimWindow;
static MmiState nextState; /* next state when finished */
static BOOL fromHotKey;
static BOOL flagHotKey;
static const int OperatorIndex = 1;
/*******************************************************************************
Local function prototypes
*******************************************************************************/
/*******************************************************************************
$Function: leftKeyEventHandler
$Description: invokes the menu select handler
$Returns: as per mnuSelect
$Arguments: event, to be handled
keynoard, handle
*******************************************************************************/
static int leftKeyEventHandler( MfwEvt event, MfwKbd *keyboard)
{
return mnuSelect(mnu);
}
/*******************************************************************************
$Function: rightKeyEventHandler
$Description: invokes the menu escape handler
$Returns: as per mnuEscape
$Arguments: event, to be handled
keynoard, handle
*******************************************************************************/
static int rightKeyEventHandler( MfwEvt event, MfwKbd *keyboard)
{
return mnuEscape(mnu);
}
/*******************************************************************************
$Function: menuSimItemCallback
$Description: invokes the SimCallback function if it is allocated
$Returns: MfwResOk, always
$Arguments: m, menu being activated, i, item in menu
*******************************************************************************/
int menuSimItemCallback( MfwMnu* m, MfwMnuItem* i)
{
if( SimCallback != NULL )
SimCallback(SimWindow);
return MfwResOk;
}
/*******************************************************************************
Public Routines
*******************************************************************************/
/*******************************************************************************
$Function: item_flag_none
$Description: Attribut function for menu entries. This function shall
be used for all cases of no specific attributes (default)
$Returns: zero always
$Arguments: m, ma, mi - not used
*******************************************************************************/
USHORT item_flag_none( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi )
{
return 0;
}
/*******************************************************************************
$Function: item_flag_hide
$Description: Attribut function for menu entries. This function shall
be used for all cases of hiding menu entries.
$Returns: MNU_ITEM_HIDE always
$Arguments: m, ma, mi - not used
*******************************************************************************/
USHORT item_flag_hide( T_MFW_MNU *m, T_MFW_MNU_ATTR *ma, T_MFW_MNU_ITEM *mi )
{
return MNU_ITEM_HIDE;
}
/*******************************************************************************
$Function: menuIsFocussed
$Description: Returns 1 if the menu window has the focus, else returns 0.
$Returns: Returns 1 if the menu window has the focus, else returns 0.
$Arguments: None
*******************************************************************************/
int menuIsFocussed( void )
{
return winIsFocussed( win );
}
/*******************************************************************************
$Function: menuEnableSimMenu
$Description: Unhides the SIM toolkit menu item, using <label> as the label.
If <label> is 0, the default label is used. If the SIM toolkit
menu item is invoked by the user, <simCallback> gets called
with argument <window>, unless <simCallback> is 0.
$Returns: None
$Arguments: label, simCallBack, simWindow as indicated above
*******************************************************************************/
void menuEnableSimMenu( char *label, SimMenuFunc simCallback, MfwHnd simWindow )
{
TRACE_FUNCTION("menuEnableSimMenu");
SimCallback = simCallback;
/* parameter to callback
*/
SimWindow = simWindow;
}
/*******************************************************************************
$Function: menuDisableSimMenu
$Description: Hides the SIM toolkit menu item
$Returns: None
$Arguments: None
*******************************************************************************/
void menuDisableSimMenu(void)
{
TRACE_FUNCTION("menuDisableSimMenu");
}
/*******************************************************************************
End Of File
*******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -