📄 mmipcsyn.c
字号:
/******************************************************************************
$Project name: Basic MMI
$File: mmiPcsyn.c
$Author: talcon hu
$Date: 2004-07-03
$Description:
$History:
pcsyn mmi wnd
*******************************************************************************/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "mfw_sys.h"
//#include "typedef.h"
//#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#include "p_sim.h"
#include "cus_aci.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_sat.h"
#include "dspl.h"
#include "MmiMmi.h"
//#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiSoftkeys.h"
#include "MmiIcons.h"
//#include "MmiMenu.h"
#include "gdi.h"
#include "Audio.h"
#include "MmiSounds.h"
#include "MmiBookShared.h"
//#include "bmieastapi.h"
#include "Gamedisplay.h"
#include "mmi3dframe.h"
#include "mmiblklangdb.h"
#include "mmipcsyn.h"
typedef struct PCSYN_DATA
{
T_MMI_CONTROL mmi_control; // common control parameter
T_MFW_HND win;
T_MFW_HND kbd;
T_MFW_HND kbd_long;
T_MFW_HND edt;
T_MFW_HND menu;
T_MFW_HND parent_win;
MfwEdtAttr edt_attr;
T_MFW_HND timer;
BYTE controlid;
BYTE cid1;
BYTE cid2;
BYTE nEvents;
}T_PCSYN_DATA;
static T_PCSYN_DATA* pcsyn_data = 0;
BYTE g_pcsynwnd = 0;/* 0: no wnd
* 1: WND and focus
* 2 wnd anf unfocus(call wnd is focus)
*/
static int pcsyn_win_cb (MfwEvt e, MfwWin *w);
static int pcsyn_kbd_cb (MfwEvt e, MfwKbd *k);
static int pcsyn_timer_cb(MfwEvt e, MfwTim *t);
static void pcsynDestroy (T_MFW_HND own_window);
static T_MFW_HND pcsynCreate( MfwHnd parent );
/********************win function****************************/
static int pcsyn_win_cb (MfwEvt e, MfwWin *w)
{
TRACE_FUNCTION("pcsyn_win_cb");
switch ( e )
{
case MfwWinVisible:
dspl_ClearAll();
switch(pcsyn_data->cid1)
{
case 0x11:
dspl_TextOut(10,10, 0, "File");
break;
case 0x12:
dspl_TextOut(10,10, 0, "Phone Book");
break;
case 0x13:
dspl_TextOut(10,10, 0, "SMS");
break;
case 0x14:
dspl_TextOut(10,10, 0, "Call record");
break;
}
displaySoftKeys( TxtNull, TxtSoftBack);
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
static void pcsyn_dialog_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
BYTE *buffer = (BYTE*)parameter;
TRACE_FUNCTION ("pcsyn_dialog");
switch( event )
{
case PCSYN_MMI_STATUS_IND:
pcsyn_data->controlid = buffer[0];
pcsyn_data->cid1 = buffer[1];
pcsyn_data->cid2 = buffer[2];
winShow(win);
break;
default:
return;
}
}
static int pcsyn_kbd_cb (MfwEvt e, MfwKbd *k)
{
T_MFW_HND win = mfw_parent (mfw_header());
TRACE_FUNCTION("pcsyn_kbd_cb");
if(!(e & KEY_MAKE))
return MFW_EVENT_CONSUMED;
switch(k->code)
{
case KCD_RIGHT:
case KCD_HUP:
pcsynDestroy(win);
break;
}
return MFW_EVENT_CONSUMED;
}//end function:GameSnake_kbd_cb
static int pcsyn_timer_cb(MfwEvt e, MfwTim *t)
{
MfwHnd win = mfwParent (mfwHeader());
TRACE_FUNCTION("pcsyn_timer_cb");
if(winIsFocussed(win))
{
g_pcsynwnd = 1;
}
else
g_pcsynwnd = 2;
tim_start(pcsyn_data->timer);
return 0;
}
static void pcsynDestroy (T_MFW_HND own_window)
{
TRACE_FUNCTION("pcsynDestroy");
win_delete (pcsyn_data->win);
mfwFree((U8*)pcsyn_data,sizeof(T_PCSYN_DATA));
pcsyn_data = 0;
g_pcsynwnd =0;
}
static T_MFW_HND pcsynCreate( MfwHnd parent )
{
T_MFW_WIN * win;
T_PCSYN_DATA *data= (T_PCSYN_DATA *)mfwAlloc(sizeof(T_PCSYN_DATA));
TRACE_FUNCTION("pcsynCreate");
data->win=win_create(parent,0,E_WIN_VISIBLE | MfwWinFocussed,(T_MFW_CB)pcsyn_win_cb);
if (data->win EQ 0)
{
return 0;
}
pcsyn_data = data;
g_pcsynwnd =1;
data->mmi_control.dialog = (T_DIALOG_FUNC)pcsyn_dialog_cb;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *) data;
data->kbd = kbd_create (data->win,KEY_ALL | KEY_MAKE,(T_MFW_CB)pcsyn_kbd_cb);
data->timer = tim_create (data->win,500,(T_MFW_CB)pcsyn_timer_cb); // timeout
winShow(data->win);
return data->win;
}
int pcsyn_start(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
T_MFW_HND winCur = pcsynCreate(win);
TRACE_FUNCTION("pcsyn_start");
return MFW_EVENT_CONSUMED;
}
void send_pcsyn_event(USHORT event, void * parameter)
{
SEND_EVENT(pcsyn_data->win, PCSYN_MMI_STATUS_IND ,0, parameter);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -