展讯通信有限公司·保密·
MMKKERNEL软件API接口说明书
版本:1.0.1
SW-BASE-DS-0031
2004-06-19
www.spreadtrum.com
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第2页共44页12/2/2005
修订历史
版本日期作者审核说明
1.0.02004-06-17Edison.RaoGivethetemplate
1.0.12004-06-19Great.TianGivethedraft
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第3页共44页12/2/2005
重要声明
版权声明
版权所有?2003,展讯通信有限公司,保留所有权利。
商标声明
展讯通信有限公司和展讯通信有限公司的产品是展讯通信有限公司专有。在提及其他公司及其产品时将使用各自公司
所拥有的商标,这种使用的目的仅限于引用。
不作保证声明
展讯通信有限公司不对此文档中的任何内容作任何明示或暗示的陈述或保证,而且不对特定目的的适销性及适用性或
者任何间接、特殊或连带的损失承担任何责任。
保密声明
本文档(包括任何附件)包含的信息是保密信息。接收人了解其获得的本文档是保密的,除用于规定的目的外不得用
于任何目的,也不得将本文档泄露给任何第三方。
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第4页共44页12/2/2005
目录
1介绍.....................................................................................................................................6
1.1范围..............................................................................................................................6
1.2参考文档......................................................................................................................6
1.3缩写和定义...................................................................................................................6
2MMIKernel总体概述...........................................................................................................7
3MMIKernel提供的数据结构和接口.....................................................................................8
3.1数据结构......................................................................................................................8
3.1.1有关窗口的数据结构..............................................................................................8
3.1.1.1窗口优先级MMI_WIN_PRIORITY_E..........................................................................8
3.1.1.2控件类型MMI_CONTROL_TYPE_E............................................................................8
3.1.1.3返回结果MMI_RESULT_E............................................................................................9
3.1.1.4窗口IDMMI_WINDOW_ID_E.......................................................................................9
3.1.1.5控件IDMMI_CONTROL_ID_E...................................................................................10
3.1.2有关消息的数据结构............................................................................................10
3.1.2.1消息定义........................................................................................................................10
3.1.2.2消息注册结构REGISTER_APP_SIG_T......................................................................13
3.1.2.3消息类型枚举MMI_MESSAGE_TYPE_E..................................................................14
3.1.2.4消息结构MMI_MESSAGE_T......................................................................................14
3.1.3定时器数据结构...................................................................................................14
3.2接口函数....................................................................................................................15
3.2.1窗口的接口函数...................................................................................................15
3.2.1.1MMK_InitFirstWindow..................................................................................................15
3.2.1.2MMK_InitStaticWin.......................................................................................................15
3.2.1.3MMK_CreateDynaWin...................................................................................................16
3.2.1.4MMK_CreateDynaCtrl...................................................................................................18
3.2.1.5MMK_DestroyDynaCtrl.................................................................................................18
3.2.1.6MMK_SetAtvCtrl...........................................................................................................19
3.2.1.7MMK_GetWinPtrBaseWinId.........................................................................................19
3.2.1.8MMK_GetCtrlPtrFromWin............................................................................................20
3.2.1.9MMK_IsOpenWin..........................................................................................................20
3.2.1.10MMK_CloseWin.........................................................................................................20
3.2.1.11MMK_GetActiveCtrlId...............................................................................................21
3.2.1.12MMK_CheckCtrlId.....................................................................................................21
3.2.1.13MMK_GetFocusWinId...............................................................................................22
3.2.1.14MMK_GetWinAddDataPtr.........................................................................................22
3.2.1.15MMK_WinGetActive.................................................................................................25
3.2.1.16MMK_GetPrevWinId.................................................................................................25
3.2.1.17MMK_SetWinSoftkeyId.............................................................................................25
3.2.1.18MMK_ReturnAppintedWin........................................................................................26
3.2.1.19MMK_CreateCtrl........................................................................................................27
3.2.1.20MMK_CreateWin.......................................................................................................27
3.2.1.21MMK_OpenWindow..................................................................................................28
3.2.1.22MMK_CloseWindow..................................................................................................28
3.2.1.23MMK_SetWinTitle.....................................................................................................29删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第5页共44页12/2/2005
3.2.1.24MMK_SetWinTitleExt................................................................................................29
3.2.1.25MMK_SetWinTitleDisplayStyle................................................................................30
3.2.1.26MMK_FreeWinAddData............................................................................................30
3.2.1.27MMK_IsFocusWin.....................................................................................................31
3.2.1.28MMK_DestroyAllControls.........................................................................................31
3.2.1.29MMK_WinGrabFocus................................................................................................32
3.2.1.30MMK_CloseMiddleWin.............................................................................................32
3.2.1.31MMK_UpdateWinTitle...............................................................................................32
3.2.2定时器的接口函数...............................................................................................33
3.2.2.1MMK_CreateTimer........................................................................................................33
3.2.2.2MMK_CreateWinTimer.................................................................................................35
3.2.2.3MMK_StartTimer...........................................................................................................36
3.2.2.4MMK_StartWinTimer....................................................................................................36
3.2.2.5MMK_StopTimer...........................................................................................................37
3.2.2.6MMK_PauseTimer.........................................................................................................38
3.2.2.7MMK_ResumeTimer......................................................................................................38
3.2.2.8MMK_IsTimerActive....................................................................................................39
3.2.3消息控制的接口函数............................................................................................39
3.2.3.1MMK_InitMSGQueue....................................................................................................39
3.2.3.2MMK_GetMSGQueue....................................................................................................40
3.2.3.3MMK_DispatchMSGQueue...........................................................................................41
3.2.3.4MMK_FreeMSG.............................................................................................................41
3.2.3.5MMK_DispatchExtSig...................................................................................................42
3.2.3.6MMK_SendMsg.............................................................................................................42
3.2.3.7MMK_PostMsg...............................................................................................................43
3.2.3.8MMK_PostBCMessage..................................................................................................44
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第6页共44页12/2/2005
1介绍
这篇文档定义了SPREADTRUMMMKKernel的数据结构和对外的接口API。此文档的读者是在
SPREADTRUMMMI开发平台上进行应用开发的所有软件开发人员,相关的项目管理人员,研发人员,测
试人员,QA人员,涉及的其它项目组也能从此文档中得到有关的信息。
1.1范围
文档定义了MMK平台中Kernel的数据结构和接口函数,同时给出了相应的例子。
1.2参考文档
[1]
1.3缩写和定义
MMIManMachineInterface
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第7页共44页12/2/2005
2MMIKERNEL总体概述
MMIKernel作为MMI平台的一部分,主要提供完善的消息驱动流程和窗口管理机制,为各种上层应用
(WAP、MMS等)提供良好的支持。
以下为MMIKernel所提供的功能:
l对消息流程进行管理。
n消息分类
n系统消息的处理
nFocus消息
n广播消息
n定时器
l提供窗口管理机制。
n窗口组成
n窗口分类
n窗口等级
n窗口控件管理
n虚拟窗口
n窗口通信
n窗口切换
n窗口显示
本文档主要描述了MMIKernel的接口API,同时给出了相应的例子。
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第8页共44页12/2/2005
3MMIKERNEL提供的数据结构和接口
3.1数据结构
3.1.1有关窗口的数据结构
3.1.1.1窗口优先级MMI_WIN_PRIORITY_E
typedefenum
{
WIN_LOWEST_LEVEL,
WIN_ONE_LEVEL,
WIN_TWO_LEVEL,
WIN_THREE_LEVEL
}MMI_WIN_PRIORITY_E;
参数
WIN_LOWEST_LEVEL:最低优先级
WIN_ONE_LEVEL:低优先级
WIN_TWO_LEVEL:中优先级
WIN_THREE_LEVEL:高优先级
3.1.1.2控件类型MMI_CONTROL_TYPE_E
typedefenum
{
TYPE_EDITBOX,
TYPE_LISTBOX,
TYPE_ANIM,
TYPE_MENU,
TYPE_MSGBOX,
TYPE_PRGBOX,
TYPE_TEXTBOX,
TYPE_CALENDAR,
TYPE_STATUSBAR,
TYPE_LABEL,
TYPE_PUNCTUATION,
TOTAL_CTRLCLASS_COUNT
}MMI_CONTROL_TYPE_E;
参数
TYPE_EDITBOX:EditBox控件类型
TYPE_LISTBOX:ListBox控件类型
TYPE_ANIM:Animation控件类型删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第9页共44页12/2/2005
TYPE_MENU:Menu控件类型
TYPE_MSGBOX:MessageBox控件类型
TYPE_PRGBOX:ProgressBox控件类型
TYPE_TEXTBOX:TextBox控件类型
TYPE_CALENDAR:Calendar控件类型
TYPE_STATUSBAR:StatusBar控件类型
TYPE_LABEL:Label控件类型
TYPE_PUNCTUATION:Punctuation控件类型
TOTAL_CTRLCLASS_COUNT:控件总数
3.1.1.3返回结果MMI_RESULT_E
typedefenum
{
MMI_RESULT_FALSE,
MMI_RESULT_TRUE,
MMI_RESULT_CONTINUE,
MMI_RESULT_CTLQUIT,
MMI_RESULT_CTLOK,
MMI_RESULT_CTLCANCEL,
TOTAL_RESULT_NUMBER
}MMI_RESULT_E;
参数
MMI_RESULT_FALSE:失败返回,当Application收到自己不识别的消息时或者希望其它Application继
续处理该消息,则返回该值。
MMI_RESULT_TRUE:正确返回,当Application收到自己识别的消息并作出了处理,则返回该值。
MMI_RESULT_CONTINUE:继续返回,当Application收到自己识别的消息并作出了处理,并且也希望其
它能够识别该消息的Application继续处理,则返回该值。
MMI_RESULT_CTLQUIT:控件退出,系统使用。
MMI_RESULT_CTLOK:控件确定,系统使用。
MMI_RESULT_CTLCANCEL:控件取消,系统使用。
3.1.1.4窗口IDMMI_WINDOW_ID_E
typedefenum
{
BEGIN_WIN_ID,
MAIN_IDLE_WIN_ID,
MAIN_MAINMENU_WIN_ID,
TEST_WIN_ID,
TOTAL_WINDOW_ID_NUMBER
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第10页共44页12/2/2005
}MMI_WINDOW_ID_E;
参数
BEGIN_WIN_ID:起始ID
MAIN_IDLE_WIN_ID:Idle窗口ID
MAIN_MAINMENU_WIN_ID:MainMenu窗口ID
TEST_WIN_ID:测试窗口ID
TOTAL_WINDOW_ID_NUMBER:窗口ID的总数目
3.1.1.5控件IDMMI_CONTROL_ID_E
typedefenum
{
BEGIN_CTRL_ID,//begin
IDLEWIN_TEXTBOX_CTRL_ID,//idle窗口下Text控件的ID
MAINMENUWIN_MENU_CTRL_ID,//MainMenu窗口下的Menu控件ID
TOTAL_CONTROL_ID_NUMBER//控件ID的总数目
}MMI_CONTROL_ID_E;
参数
BEGIN_CTRL_ID:控件起始ID
IDLEWIN_TEXTBOX_CTRL_ID:idle窗口下Text控件的ID
MAINMENUWIN_MENU_CTRL_ID:MainMenu窗口下的Menu控件ID
TOTAL_CONTROL_ID_NUMBER:控件ID的总数
3.1.2有关消息的数据结构
3.1.2.1消息定义
注:0x0100~0xfffe提供给应用自己定义消息ID
MSG_KEYUP0x0000
MSG_KEYUP_UP0x0001
MSG_KEYUP_DOWN0x0002
MSG_KEYUP_LEFT0x0003
MSG_KEYUP_RIGHT0x0004
MSG_KEYUP_GREEN0x0005
MSG_KEYUP_CAMERA0x0006
MSG_KEYUP_10x0008
MSG_KEYUP_20x0009
MSG_KEYUP_30x000a
MSG_KEYUP_40x000b
MSG_KEYUP_50x000c
MSG_KEYUP_60x000d
MSG_KEYUP_70x000e
MSG_KEYUP_80x000f
MSG_KEYUP_90x0010
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第11页共44页12/2/2005
MSG_KEYUP_STAR0x0011
MSG_KEYUP_00x0012
MSG_KEYUP_HASH0x0013
MSG_KEYUP_OK0x0016
MSG_KEYUP_CANCEL0x0017
MSG_KEYUP_RED0x0018
MSG_KEYUP_UPSIDE0x0019
MSG_KEYUP_DOWNSIDE0x001a
MSG_KEYUP_WEB0x001b
MSG_KEYUP_GPIO_SIG10x001c
MSG_KEYUP_GPIO_SIG20x001d
MSG_KEYUP_FLIP0x001e
MSG_KEYUP_HEADSET_BUTTON0x001f
MSG_KEYUP_HEADSET_DETECT0x0020
MSG_KEYLONG0x0030
MSG_KEYLONG_UP0x0031
MSG_KEYLONG_DOWN0x0032
MSG_KEYLONG_LEFT0x0033
MSG_KEYLONG_RIGHT0x0034
MSG_KEYLONG_GREEN0x0035
MSG_KEYLONG_CAMREA0x0036
MSG_KEYLONG_10x0038
MSG_KEYLONG_20x0039
MSG_KEYLONG_30x003a
MSG_KEYLONG_40x003b
MSG_KEYLONG_50x003c
MSG_KEYLONG_60x003d
MSG_KEYLONG_70x003e
MSG_KEYLONG_80x003f
MSG_KEYLONG_90x0040
MSG_KEYLONG_START0x0041
MSG_KEYLONG_00x0042
MSG_KEYLONG_HASH0x0043
MSG_KEYLONG_OK0x0046
MSG_KEYLONG_CANCEL0x0047
MSG_KEYLONG_RED0x0048
MSG_KEYLONG_UPSIDE0x0049
MSG_KEYLONG_DOWNSIDE0x004a
MSG_KEYLONG_WEB0x004b
MSG_KEYLONG_GPIO_SIG10x004c
MSG_KEYLONG_GPIO_SIG20x004d
MSG_KEYLONG_FLIP0x004e
MSG_KEYLONG_HEADSET_BUTTON0x004f
MSG_KEYLONG_HEADSET_DETECT0x0050
MSG_KEYDOWN0x0060
MSG_KEYDOWN_UP0x0061
MSG_KEYDOWN_DOWN0x0062
MSG_KEYDOWN_LEFT0x0063
MSG_KEYDOWN_RIGHT0x0064
MSG_KEYDOWN_GREEN0x0065
MSG_KEYDOWN_CAMERA0x0066删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第12页共44页12/2/2005
MSG_KEYDOWN_10x0068
MSG_KEYDOWN_20x0069
MSG_KEYDOWN_30x006a
MSG_KEYDOWN_40x006b
MSG_KEYDOWN_50x006c
MSG_KEYDOWN_60x006d
MSG_KEYDOWN_70x006e
MSG_KEYDOWN_80x006f
MSG_KEYDOWN_90x0070
MSG_KEYDOWN_START0x0071
MSG_KEYDOWN_00x0072
MSG_KEYDOWN_HASH0x0073
MSG_KEYDOWN_SPUP0x0074
MSG_KEYDOWN_SPDW0x0075
MSG_KEYDOWN_OK0x0076
MSG_KEYDOWN_CANCEL0x0077
MSG_KEYDOWN_RED0x0078
MSG_KEYDOWN_UPSIDE0x0079
MSG_KEYDOWN_DOWNSIDE0x007A
MSG_KEYDOWN_WEB0x007B
MSG_KEYDOWN_GPIO_SIG10x007c
MSG_KEYDOWN_GPIO_SIG20x007d
MSG_KEYDOWN_FLIP0x007e
MSG_KEYDOWN_HEADSET_BUTTON0x007f
MSG_KEYDOWN_HEADSET_DETECT0x0080
MSG_TIMER0x0090
MSG_OPEN_WINDOW0x0091
MSG_CLOSE_WINDOW0x0092
MSG_LOSE_FOCUS0x0093
MSG_GET_FOCUS0x0094
MSG_FULL_PAINT0x0095
MSG_CTL_PAINT0x0096
MSG_CTL_OPEN0x0097
MSG_CTL_CLOSE0x0098
MSG_CTL_GETACTIVE0x0099
MSG_CTL_GET_ACTIVE0x0099
MSG_CTL_LOSEACTIVE0x009a
MSG_CTL_LOSE_ACTIVE0x009a
MSG_CTL_HANG0x009b
MSG_CTL_PROGRESS0x009c
MSG_CTL_QUIT0x009d
MSG_CTL_PAUSE0x009e
MSG_CTL_PLAY0x009f
MSG_VIRTUAL_OPEN0x00a0
MSG_CTL_LOSE_FOCUS0x00a1
MSG_CTL_GET_FOCUS0x00a2
MSG_CTL_OK0x00b0
MSG_CTL_CANCEL0x00b1
MSG_PROMPTWIN_OK0x00b2
MSG_PROMPTWIN_CANCEL0x00b3
MSG_ALERTWIN_CLOSED0x00b4删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第13页共44页12/2/2005
MSG_CTL_LISTBOX_MOVEBOTTOM0x00c2
MSG_CTL_LISTBOX_MOVEUP0x00c3
MSG_KEYPRESSUP0x00d0
MSG_KEYPRESSUP_UP0x00d1
MSG_KEYPRESSUP_DOWN0x00d2
MSG_KEYPRESSUP_LEFT0x00d3
MSG_KEYPRESSUP_RIGHT0x00d4
MSG_KEYPRESSUP_GREEN0x00d5
MSG_KEYPRESSUP_CAMERA0x00d6
MSG_KEYPRESSUP_10x00d8
MSG_KEYPRESSUP_20x00d9
MSG_KEYPRESSUP_30x00da
MSG_KEYPRESSUP_40x00db
MSG_KEYPRESSUP_50x00dc
MSG_KEYPRESSUP_60x00dd
MSG_KEYPRESSUP_70x00de
MSG_KEYPRESSUP_80x00df
MSG_KEYPRESSUP_90x00e0
MSG_KEYPRESSUP_START0x00e1
MSG_KEYPRESSUP_00x00e2
MSG_KEYPRESSUP_HASH0x00e3
MSG_KEYPRESSUP_SPUP0x00e4
MSG_KEYPRESSUP_SPDW0x00e5
MSG_KEYPRESSUP_OK0x00e6
MSG_KEYPRESSUP_CANCEL0x00e7
MSG_KEYPRESSUP_RED0x00e8
MSG_KEYPRESSUP_UPSIDE0x00e9
MSG_KEYPRESSUP_DOWNSIDE0x00eA
MSG_KEYPRESSUP_WEB0x00eB
MSG_KEYPRESSUP_GPIO_SIG10x00ec
MSG_KEYPRESSUP_GPIO_SIG20x00ed
MSG_KEYPRESSUP_FLIP0x00ee
MSG_KEYPRESSUP_HEADSET_BUTTON0x00ef
MSG_KEYPRESSUP_HEADSET_DETECT0x00f0
3.1.2.2消息注册结构REGISTER_APP_SIG_T
typedefstructRegAppSig_tag
{
uint16start_sig;
uint16end_sig;
PWNDapp_ptr;
}REGISTER_APP_SIG_T;
参数
start_sig:需要注册的消息的起始消息id
end_sig:需要注册的消息的终止消息id
app_ptr:注册该消息的应用指针
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第14页共44页12/2/2005
3.1.2.3消息类型枚举MMI_MESSAGE_TYPE_E
typedefenum
{
MSG_TYPE_NONE,
MSG_TYPE_STACK,
MSG_TYPE_TIMER,
MSG_TYPE_FOCUS,
MSG_TYPE_BROADCAST,
MSG_TYPE_WINDOW
}MMI_MESSAGE_TYPE_E;
参数
MSG_TYPE_NONE:不存在消息
MSG_TYPE_STACK:stack消息
MSG_TYPE_TIMER:定时器消息
MSG_TYPE_FOCUS:focus消息
MSG_TYPE_BROADCAST:广播消息
MSG_TYPE_WINDOW:窗口消息
3.1.2.4消息结构MMI_MESSAGE_T
typedefstructMessage_tag
{
PWNDhwnd;
MMI_MESSAGE_TYPE_Emsg_type;
MMI_MESSAGE_ID_Emsg_id;
DPARAMparam_ptr;
}MMI_MESSAGE_T;
typedefMMI_MESSAGE_TMMI_MESSAGE_PTR_T;
参数
hwnd:接收消息的窗口指针
msg_type:消息类型
msg_id:消息id
param_ptr:消息参数指针
3.1.3定时器数据结构
固定定时器id:
MMI_NONE_TIMER_ID0x00
MMI_KBD_TIMER_ID0x01
MMI_LCD_LIGHT_TIMER_ID0x02
T9_EXPL_TIMER_ID0x03
MMI_KEYBAD_LIGHT_TIMER_ID0x04
MMI_LAST_TIMER_ID0x04删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第15页共44页12/2/2005
3.2接口函数
3.2.1窗口的接口函数
3.2.1.1MMK_InitFirstWindow
函数定义
BOOLEANMMK_InitFirstWindow(
MMI_WINDOW_Tfirst_win_ptr,
PROCESSMSG_FUNCfunc,
MMI_APPLICATION_Tparent_app_ptr,
ADD_DATAadd_data_ptr,
MMI_WIN_PRIORITY_Ewin_priority,
MMI_SOFT_ICONsofticon_state
);
函数的详细描述
此函数用于初始化系统的第一个窗口,只允许调用一次。
输入参数的描述
first_win_ptr:[in]初始化窗口ID
func:[in]窗口的消息处理函数指针
parent_app_ptr:[in]窗口所属的Appliation指针
add_data_ptr:[in]窗口的附加数据块指针
win_priority:[in]窗口的优先级
softicon_state:[in]Softicon的状态(暂时不用)
返回值的描述
TRUE:初始化成功。
FALSE:初始化失败。
举例
见mmiphone.c中的CreateVirtualWin,注意此函数只允许在系统中调用一次。
3.2.1.2MMK_InitStaticWin
函数定义
BOOLEANMMK_InitStaticWin(
uint32win_id,
MMI_WINDOW_Twin_ptr,
PROCESSMSG_FUNCfunc,
MMI_APPLICATION_Tparent_app_ptr,
ADD_DATAadd_data_ptr,
MMI_WIN_PRIORITY_Ewin_priority,
MMI_SOFT_ICONsofticon_state删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第16页共44页12/2/2005
);
函数的详细描述
此函数用于初始化静态窗口
输入参数的描述
win_id:[in]初始化窗口ID
win_ptr:[in]需要初始化的窗口指针
func:[in]窗口的消息处理函数指针
parent_app_ptr:[in]窗口所属的Appliation指针
add_data_ptr:[in]窗口的附加数据块指针
win_priority:[in]窗口的优先级
softicon_state:[in]Softicon的状态(暂时不用)
返回值的描述
TRUE:初始化成功。
FALSE:初始化失败。
举例
//windowmodualofthemainapplication
MMI_WINDOW_Tg_idle_win;//idle窗口的实体
{
//初始化Idle窗口
MMK_InitStaticWin(MAIN_IDLE_WIN_ID,&g_idle_win,
(PROCESSMSG_FUNC)IdleWin_HandleMsg,&g_main_app,PNULL,
WIN_LOWEST_LEVEL,0);
}
具体见mainapp.c中的main_app_init函数中对Idle窗口的初始化。
注意对静态窗口进行初始化后还需要调用MMK_OpenWin才能将窗口打开。
3.2.1.3MMK_CreateDynaWin
函数定义
BOOLEANMMK_CreateDynaWin(
uint32win_id,
PROCESSMSG_FUNCfunc,
MMI_APPLICATION_Tparent_app_ptr,
ADD_DATAadd_data_ptr,
MMI_WIN_PRIORITY_Ewin_priority,
MMI_SOFT_ICONsofticon_state
);
函数的详细描述
此函数用于创建并打开动态窗口
输入参数的描述
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第17页共44页12/2/2005
win_id:[in]初始化窗口ID
func:[in]窗口的消息处理函数指针
parent_app_ptr:[in]窗口所属的Appliation指针
add_data_ptr:[in]窗口的附加数据块指针
win_priority:[in]窗口的优先级
softicon_state:[in]Softicon的状态(暂时不用)
返回值的描述
TRUE:创建并打开成功。
FALSE:创建并打开失败。
举例
以下是创建一个显示Text的窗口:
MMI_APPLICATION_Tg_mmistk_app;
{
BOOLEANrecode=FALSE;
recode=MMK_CreateDynaWin(
MMI_DISPLAYTEXT_WIN_ID,//在MMI_WINDOW_ID_E中定义
(PROCESSMSG_FUNC)DisplayTextWinHandleMsg,//处理函数
&g_mmistk_app,//Application实体
PNULL,//附加数据指针
WIN_ONE_LEVEL,//第一级
PNULL
);
if(recode)
{
//在MMI_DISPLAYTEXT_WIN_ID窗口中创建一个TextBox控件
GUI_RECT_Ttextbox_rect={20,20,100,100};
recode=MMK_CreateDynaCtrl(
MMISTK_TEXBOX_CTRL_ID,//控件ID
TYPE_TEXTBOX,//控件类型
MMISTK_DISPLAYTEXT_WIN_ID,//所属窗口ID
(ADD_DATA)GUITEXTBOX_Init(&textbox_rect,MAINLCD_ID)//初始化函数
);
if(recode)
{
//设置TextBox的内容、属性等等
//将TextBox控件设置成激活状态
MMK_SetAtvCtrl(
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第18页共44页12/2/2005
MMI_DISPLAYTEXT_WIN_ID,
MMISTK_TEXBOX_CTRL_ID);
}
else
{
SCI_TRACE_LOW(“MMISTK_TEXBOX_CTRL_ID:createerror!”);
}
}
else
{
SCI_TRACE_LOW(“MMI_DISPLAYTEXT_WIN_ID:openerror!”);
}
}
3.2.1.4MMK_CreateDynaCtrl
函数定义
BOOLEANMMK_CreateDynaCtrl(
uint32ctrl_id,
MMI_CONTROL_TYPE_Ectrl_type,
uint32parent_win_id,
ADD_DATAadd_data_ptr
);
函数的详细描述
此函数用于创建一个动态控件。
输入参数的描述
ctrl_id:[in]控件ID
ctrl_type:[in]控件类型
parent_win_id:[in]控件所属的父窗口ID
add_data_ptr:[in]控件的附加数据块指针
返回值的描述
TRUE:创建成功。
FALSE:创建失败。
举例
见3.2.1.3中的举例。
3.2.1.5MMK_DestroyDynaCtrl
函数定义
BOOLEANMMK_DestroyDynaCtrl(
uint32ctrl_id,
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第19页共44页12/2/2005
);
函数的详细描述
此函数用于销毁一个动态控件。
输入参数的描述
ctrl_id:[in]控件ID
返回值的描述
TRUE:销毁成功。
FALSE:销毁失败。
举例
略
3.2.1.6MMK_SetAtvCtrl
函数定义
BOOLEANMMK_SetAtvCtrl(
uint32win_id,
uint32ctrl_id,
);
函数的详细描述
此函数用于激活一个控件。
输入参数的描述
win_id:[in]父窗口ID
ctrl_id:[in]控件ID
返回值的描述
TRUE:激活成功。
FALSE:激活失败。
举例
见3.2.1.3中的举例。
3.2.1.7MMK_GetWinPtrBaseWinId
函数定义
MMI_WINDOW_TMMK_GetWinPtrBaseWinId(
uint32win_id
);
函数的详细描述
此函数用于通过窗口ID得到窗口指针,建议慎重使用该函数。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第20页共44页12/2/2005
MMI_WINDOW_T返回窗口指针,如果返回为空,则窗口不存在。
举例
略
3.2.1.8MMK_GetCtrlPtrFromWin
函数定义
MMI_CONTROL_TMMK_GetCtrlPtrFromWin(
MMI_WINDOW_Twin_ptr,
uint32ctrl_id
);
函数的详细描述
此函数用于通过窗口ID得到窗口指针,建议慎重使用该函数。
输入参数的描述
win_ptr:[in]窗口指针
ctrl_id:[in]控件ID
返回值的描述
MMI_CONTROL_T返回控件指针,如果为空,则控件不存在。
举例
略
3.2.1.9MMK_IsOpenWin
函数定义
BOOLEANMMK_IsOpenWin(
uint32win_id
);
函数的详细描述
此函数用于判断指定窗口是否已经打开。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:窗口已经打开。
FALSE:窗口没有打开。
举例
略
3.2.1.10MMK_CloseWin
函数定义
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第21页共44页12/2/2005
BOOLEANMMK_CloseWin(
uint32win_id
);
函数的详细描述
此函数用于关闭指定窗口。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:窗口关闭成功。
FALSE:窗口关闭失败。
举例
略
3.2.1.11MMK_GetActiveCtrlId
函数定义
uint32MMK_GetActiveCtrlId(
uint32win_id
);
函数的详细描述
此函数用于得到指定窗口中激活控件的ID
输入参数的描述
win_id:[in]窗口ID
返回值的描述
MMI_INVALID_ID:窗口中没有激活的控件。(定义见mmk_type.h)
Other:返回激活控件ID。
举例
略
3.2.1.12MMK_CheckCtrlId
函数定义
BOOLEANMMK_CheckCtrlId(
uint32win_id,
uint32ctrl_id
);
函数的详细描述
此函数用于检查控件是否在指定窗口中存在。
输入参数的描述
win_id:[in]窗口ID
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第22页共44页12/2/2005
ctrl_id:[in]控件ID
返回值的描述
TRUE:控件存在。
FALSE:控件不存在。
举例
略
3.2.1.13MMK_GetFocusWinId
函数定义
uint32MMK_GetFocusWinId(
void
);
函数的详细描述
此函数用于获得处于Focus窗口的ID。
输入参数的描述
无
返回值的描述
返回Focus窗口的窗口ID。
举例
略
3.2.1.14MMK_GetWinAddDataPtr
函数定义
ADD_DATAMMK_GetWinAddDataPtr(
uint32win_id,
);
函数的详细描述
此函数用于获得窗口的附加数据指针。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
返回窗口的附加数据指针。
举例
以下是一个Menu窗口关于窗口附加数据结构的使用:
//窗口Table,窗口中有一个Menu控件
WINDOW_TABLE(MMIMAIN_PHONENUM_OPERATE_MENU_WIN_TAB)=
{
CLEAR_LCD,删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第23页共44页12/2/2005
WIN_PRIO(WIN_ONE_LEVEL),
WIN_FUNC((uint32)HandlePhoneOperateMenuWinMsg),
WIN_ID(MMIMAIN_PHONENUM_MENU_WIN_ID),
CREATE_MENU_CTRL(0,0,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,
MMI_MAINSCREEN_BOTTOM_MAX_PIXEL,
MENU_PHONENUM_DIALUP_OPERATE,
MMIMAIN_PHONENUM_MENU_CTRL_ID),
END_WIN
};
//thephonenumberofthedialwindow
typedefstruct
{
uint8phonenum[40];
uint16phonenum_len;
uint16valid;//填充用的东东
}
DIAL_PHONENUM_T;
//创建并打开OperateMenu窗口
{
DIAL_PHONENUM_Tdial_ptr=
(DIAL_PHONENUM_T)SCI_ALLOC(sizeof(DIAL_PHONENUM_T));
//给dial_ptr赋值
//打开OperateMenu窗口
MMK_CreateWin(
(uint32)MMIMAIN_PHONENUM_OPERATE_MENU_WIN_TAB,
(ADD_DATA)dial_ptr//窗口附加数据指针
);
}
//OperateMenu处理函数
LOCALMMI_RESULT_EHandlePhoneOperateMenuWinMsg(
MMI_WINDOW_ID_Ewin_id,
MMI_MESSAGE_ID_Emsg_id,
DPARAMparam
)
{
MMI_RESULT_Erecode=MMI_RESULT_TRUE;
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第24页共44页12/2/2005
DIAL_PHONENUM_Tdial_ptr=PNULL;
switch(msg_id)
{
caseMSG_OPEN_WINDOW:
MMK_SetAtvCtrl(win_id,MMIMAIN_PHONENUM_MENU_CTRL_ID);
break;
caseMSG_CLOSE_WINDOW:
//如果窗口附加数据是Alloc的(本例即是这样),则在窗口关闭的时候一定要注意释放窗口附加数
据,如果是静态数据,则不需要释放。
MMK_FreeWinAddData(win_id);
break;
caseMSG_CTL_OK:
{
uint16group_id=0;
uint16menu_id=0;
dial_ptr=(DIAL_PHONENUM_T)MMK_GetWinAddDataPtr(win_id);
SCI_PASSERT(PNULL!=dial_ptr,("HandlePhoneOperateMenuWinMsg:theadddatais
PNULL!"));
//对dial_ptr作相关处理
}
break;
caseMSG_CTL_CANCEL:
MMK_CloseWin(win_id);
break;
default:
recode=MMI_RESULT_FALSE;
break;
}
return(recode);
}
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第25页共44页12/2/2005
3.2.1.15MMK_WinGetActive
函数定义
BOOLEANMMK_WinGetActive(
uint32win_id,
);
函数的详细描述
此函数用于使窗口处于激活状态,这样这样外部事件会直接丢给窗口进行处理。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:操作成功。
FALSE:操作失败。
举例
略
3.2.1.16MMK_GetPrevWinId
函数定义
uint32MMK_GetPrevWinId(
uint32win_id,
);
函数的详细描述
此函数用于获得指定窗口的前一个窗口的ID。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
如果存在前一个窗口则返回前一个窗口的ID,否则返回MMI_INVALID_ID。
举例
略
3.2.1.17MMK_SetWinSoftkeyId
函数定义
BOOLEANMMK_SetWinSoftkeyId(
uint32win_id,
uint32leftsoft_id,
uint32middlesoft_id,
uint32rightsoft_id,
BOOLEANis_flash
);
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第26页共44页12/2/2005
函数的详细描述
此函数用于设置窗口的Softkey。
输入参数的描述
win_id:[in]窗口ID
leftsoft_id:[in]左Softkey的TextID
middlesoft_id:[in]左Softkey的TextID
rightsoft_id:[in]左Softkey的TextID
is_flash:[in]是否立即刷新Softkey
返回值的描述
TRUE:设置成功。
FALSE:设置失败。
举例
略
3.2.1.18MMK_ReturnAppintedWin
函数定义
BOOLEANMMK_ReturnAppintedWin(
uint32win_id,
);
函数的详细描述
此函数用于返回到指定窗口,比如红键返回Idle窗口。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:操作成功。
FALSE:操作失败。
举例
//一个窗口中在处理Hash时需要返回Idle窗口
MMI_RESULT_EHandleWinMsg(
MMI_WINDOW_ID_Ewin_id,
MMI_MESSAGE_ID_Emsg_id,
DPARAMparam
)
{
MMI_RESULT_Erecode=MMI_RESULT_TRUE;
switch(msg_id)
{
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第27页共44页12/2/2005
caseMSG_APP_HASH:
//返回Idle窗口
MMK_ReturnAppintedWin(
MAIN_IDLE_WIN_ID//Idle窗口的ID
);
break;
default:
recode=MMI_RESULT_FALSE;
break;
}
return(recode);
}
3.2.1.19MMK_CreateCtrl
函数定义
BOOLEANMMK_CreateCtrl(
uint32ctrl_id,
MMI_CONTROL_TYPE_Ectrl_type,
MMI_WINDOW_Tparent_win_ptr,
ADD_DATAadd_data_ptr
);
函数的详细描述
此函数用于创建控件,只限于在解析WinTable时调用。
输入参数的描述
ctrl_id:[in]控件ID
ctrl_type:[in]控件类型
parent_win_ptr:[in]控件所属窗口的指针
add_data_ptr:[in]控件的附加数据指针
返回值的描述
TRUE:创建成功。
FALSE:创建失败。
举例
见window_parse.c中关于控件的Parse。
3.2.1.20MMK_CreateWin
函数定义
BOOLEANMMK_CreateWin(删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第28页共44页12/2/2005
uint32win_table_ptr,
ADD_DATAadd_data_ptr
);
函数的详细描述
此函数用于创建并打开一个WinTable的窗口。
输入参数的描述
win_table_ptr:[in]WinTable数组的指针
add_data_ptr:[in]窗口附加数据的指针
返回值的描述
TRUE:创建并打开成功。
FALSE:创建并打开失败。
举例
见3.2.1.14中的例子
3.2.1.21MMK_OpenWindow
函数定义
BOOLEANMMK_OpenWindow(
MMI_WINDOW_Twin_ptr
);
函数的详细描述
此函数用于打开一个已经创建的窗口。
输入参数的描述
win_ptr:[in]窗口指针
返回值的描述
TRUE:打开成功。
FALSE:打开失败。
举例
略
3.2.1.22MMK_CloseWindow
函数定义
BOOLEANMMK_CloseWindow(
MMI_WINDOW_Twin_ptr
);
函数的详细描述
此函数用于关闭一个窗口,在实际开发过程中,建议都用MMK_CloseWin取代。
输入参数的描述
win_ptr:[in]窗口指针删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第29页共44页12/2/2005
返回值的描述
TRUE:关闭成功。
FALSE:关闭失败。
举例
略
3.2.1.23MMK_SetWinTitle
函数定义
BOOLEANMMK_SetWinTitle(
uint32win_id,
uint8str_ptr,r
uint16str_len,
BOOLEANis_ucs2,
BOOLEANis_flash
);
函数的详细描述
此函数用于设置窗口的Title,直接通过String来设置,String的最大长度为20个Byte。
输入参数的描述
win_id:[in]窗口ID
str_ptr:[in]String指针
str_len:[in]String长度
is_ucs2:[in]String是否为Ucs2编码,TRUE:ucs2编码,FALSE:ascii编码
is_flash:[in]是否立即刷新
返回值的描述
TRUE:设置成功。
FALSE:设置失败。
举例
略
3.2.1.24MMK_SetWinTitleExt
函数定义
BOOLEANMMK_SetWinTitleExt(
uint32win_id,
uint32text_id,
BOOLEANis_flash
);
函数的详细描述
此函数用于设置窗口的Title,通过TextID来设置。
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第30页共44页12/2/2005
输入参数的描述
win_id:[in]窗口ID
text_id:[in]title的TextID
is_flash:[in]是否立即刷新
返回值的描述
TRUE:设置成功。
FALSE:设置失败。
举例
略
3.2.1.25MMK_SetWinTitleDisplayStyle
函数定义
BOOLEANMMK_SetWinTitleDisplayStyle(
uint32win_id,
WINDOW_TITLE_DISPLAY_STYLEstyle,
BOOLEANis_flash
);
函数的详细描述
此函数用于设置窗口Title的显示方式,目前支持居左、居中、局右三种类型,默认为居中。
输入参数的描述
win_id:[in]窗口ID
style:[in]title的显示类型,目前支持三种:TITLE_ALIGN_LEFT(居左),
TITLE_ALIGN_CENTER(居中),TITLE_ALIGN_RIGHT(局右)
is_flash:[in]是否立即刷新
返回值的描述
TRUE:设置成功。
FALSE:设置失败。
举例
略
3.2.1.26MMK_FreeWinAddData
函数定义
BOOLEANMMK_FreeWinAddData(
uint32win_id
);
函数的详细描述
此函数用于释放窗口的附加数据,对于使用附加数据的窗口,必须要通过该函数来释放数据数据。
输入参数的描述删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第31页共44页12/2/2005
win_id:[in]窗口ID
返回值的描述
TRUE:释放成功。
FALSE:释放失败。
举例
见3.2.1.14中的例子。
3.2.1.27MMK_IsFocusWin
函数定义
BOOLEANMMK_IsFocusWin(
uint32win_id
);
函数的详细描述
此函数用于判断窗口是否是Focus窗口。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:该窗口是Focus窗口。
FALSE:该窗口不是Focus窗口。
举例
略
3.2.1.28MMK_DestroyAllControls
函数定义
BOOLEANMMK_DestroyAllControls(
uint32win_id
);
函数的详细描述
此函数用于销毁窗口下的所有控件。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:销毁成功。
FALSE:销毁失败。
举例
略
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第32页共44页12/2/2005
3.2.1.29MMK_WinGrabFocus
函数定义
BOOLEANMMK_WinGrabFocus(
uint32win_id
);
函数的详细描述
此函数用于使不处于Focus状态的窗口获得Focus,前提是该窗口处于Open状态,并且优先级不低于
当前Focus窗口的优先级。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
TRUE:获得Focus成功。
FALSE:获得Focus失败。
举例
略
3.2.1.30MMK_CloseMiddleWin
函数定义
BOOLEANMMK_CloseMiddleWin(
uint32begin_win_id,
uint32end_win_id
);
函数的详细描述
此函数用于关闭指定两个窗口之间的所有窗口,关闭的窗口不包含这指定的两个窗口。
输入参数的描述
begin_win_id:[in]窗口ID1,这两个窗口ID不需要有先后顺序
end_win_id:[in]窗口ID2,这两个窗口ID不需要有先后顺序
返回值的描述
TRUE:关闭成功。
FALSE:关闭失败。
举例
略
3.2.1.31MMK_UpdateWinTitle
函数定义
voidMMK_UpdateWinTitle(
uint32win_id
);
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第33页共44页12/2/2005
函数的详细描述
此函数用于重新刷新窗口Title。
输入参数的描述
win_id:[in]窗口ID
返回值的描述
无
举例
略
3.2.2定时器的接口函数
注:1、定时器是依赖于窗口的,用户在退出某个窗口的时候,需要停止其所启动的定时器ID。
2、定时器ID对于应用是动态分配。
3.2.2.1MMK_CreateTimer
函数定义
uint8MMK_CreateTimer(
uint32time_out,
BOOLEANis_period
)
函数的详细描述
此函数用于在窗口中启动定时器,并获得该定时器的id。应用在该窗口的消息处理函数中,会接受的
MSG_TIMER消息,其参数为定时器的ID,用户通过判断该ID是否与该函数所返回的ID一致,决定是否作
处理
注:该函数的使用需要在窗口的处理函数中。
输入参数的描述
time_out:[in]定时器时间(单位:毫秒)
is_period:[in]是否为周期定时器(TRUE为周期性定时器)
返回值的描述
0:启动定时器失败
非0:定时器ID并且定时器启动成功
依赖关系
依赖于窗口
举例
该例针对一个定时关闭的窗口,在窗口处理函数中:
MMI_RESULT_EHandleMsgBoxWinMsg(
MMI_WINDOW_ID_Ewin_id,
MMI_MESSAGE_ID_Emsg_id,删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第34页共44页12/2/2005
DPARAMparam
)
{
staticuint8s_timer_id=0;
switch(msg_id)
{
caseMSG_OPEN_WINDOW:
if(0==s_timer_id)
{
s_timer_id=MMK_CreateTimer(MMISMS_3SECOND,FALSE);
}
else
{
MMK_StartTimer(s_timer_id,MMISMS_3SECOND,FALSE);
}
break;
...
caseMSG_TIMER:
if((uint8)param==s_timer_id)
{
MMK_CloseWin(win_id);
}
else
{
recode=MMI_RESULT_FALSE;
}
break;
caseMSG_KEYUP_1://通过按键1暂停定时器
if(MMK_IsTimerActive(s_timer_id))
{
MMK_PauseTimer(s_timer_id);
}
break;
caseMSG_KEYUP_2://通过按键1恢复定时器
MMK_ResumeTimer(s_timer_id);
Break;
caseMSG_CLOSE_WINDOW:
MMK_StopTimer(timer_id);//关闭定时器,其函数定义见后
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第35页共44页12/2/2005
s_timer_id=0;//同时将该变量置空
break;
...
}
return(recode);
}
3.2.2.2MMK_CreateWinTimer
函数定义
uint8MMK_CreateWinTimer(
uint32win_id,
uint32time_out,
BOOLEANis_period
)
函数的详细描述
此函数用于为指定窗口启动定时器,并获得该定时器的id。用户在指定窗口的消息处理函数中,会接受
的MSG_TIMER消息,其参数为定时器的ID,用户通过判断该ID是否与该函数所返回的ID一致,决定是否
作相应处理
注:该指定窗口需要在之前已经被开启
输入参数的描述
win_id:[in]指定的窗口ID
time_out:[in]定时器时间(单位:毫秒)
is_period:[in]是否为周期定时器(TRUE为周期性定时器)
返回值的描述
0:启动定时器失败
非0:定时器ID并且定时器启动成功
依赖关系
无
举例
//打开窗口
uint8g_timer_id=0;
...
MMK_CreateWin((uint32)MMISMS_MSGBOXWIN_TAB,PNULL);
//为窗口启动一周期性定时器
if(0==g_timer_id)
{
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第36页共44页12/2/2005
g_timer_id=MMK_CreateWinTimer(MMISMS_MSGBOX_WIN_ID,3000,TRUE);
}
else
{
MMK_StartWinTimer(MMISMS_MSGBOX_WIN_ID,3000,TRUE);
}
3.2.2.3MMK_StartTimer
函数定义
BOOLEANMMK_StartTimer(
uint8timer_id,
uint32time_out,
BOOLEANis_period
);
函数的详细描述
此函数用于启动一个已有ID的定时器,该函数会将原来已经启动定时器停止并以新的参数重新启动该
定时器。其定时器消息的处理可参考MMK_CreateTimer例子所示。
注:该函数的使用需要在窗口的处理函数中
输入参数的描述
timer_id:[in]定时器ID
time_out:[in]定时器时间(单位:毫秒)
is_period:[in]是否为周期定时器
返回值的描述
TRUE:启动成功
FALSE:启动失败。
依赖关系
依赖于窗口
举例
参见MMK_CreateTimer实例
3.2.2.4MMK_StartWinTimer
函数定义
BOOLEANMMK_StartWinTimer(
MMI_WINDOW_ID_Ewin_id,
uint8timer_id,
uint32time_out,删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第37页共44页12/2/2005
BOOLEANis_period
)
函数的详细描述
此函数用于为指定窗口启动一个已有ID的定时器,该函数会将原来已经启动定时器停止并以新的参数
重新启动该定时器。其定时器消息的处理可参考MMK_CreateTimer例子所示。
注:该指定窗口需要在之前已经被开启
输入参数的描述
win_id:[in]指定窗口的ID
timer_id:[in]定时器ID
time_out:[in]定时器时间(单位:毫秒)
is_period:[in]是否为周期定时器
返回值的描述
TRUE:启动成功
FALSE:启动失败。
依赖关系
无
举例
参见MMK_CreateWinTimer实例
3.2.2.5MMK_StopTimer
函数定义
BOOLEANMMK_StopTimer(
uint8timer_id
)
函数的详细描述
该函数用于停止指定ID的定时器,并且该ID也会被释放而可能被分配给其他应用使用。
输入参数的描述
timer_id:[in]定时器ID
返回值的描述
TRUE:成功
FALSE:失败。
依赖关系
无
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第38页共44页12/2/2005
举例
参见MMK_CreateTimer实例
3.2.2.6MMK_PauseTimer
函数定义
BOOLEANMMK_PauseTimer(
uint8timer_id
)
函数的详细描述
该函数用于暂停指定ID定时器,应用不会再接收到该ID的定时消息。但该定时器ID不会被释放,应用
可以将其恢复,再次接收该ID的定时消息。
输入参数的描述
timer_id:[in]定时器ID
返回值的描述
TRUE:成功
FALSE:失败
依赖关系
无
举例
参见MMK_CreateTimer实例
3.2.2.7MMK_ResumeTimer
函数定义
BOOLEANMMK_ResumeTimer(
uint8timer_id
)
函数的详细描述
该函数用于恢复指定ID的定时器,该函数是针对被MMK_PauseTimer所暂停的定时器。
输入参数的描述
timer_id:[in]定时器ID
返回值的描述
TRUE:成功
FALSE:失败
依赖关系删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第39页共44页12/2/2005
无
举例
参见MMK_CreateTimer实例
3.2.2.8MMK_IsTimerActive
函数定义
BOOLEANMMK_IsTimerActive(
uint8timer_id
)
函数的详细描述
该函数用于判断指定ID的定时器是否处于激活
输入参数的描述
timer_id:[in]定时器ID
返回值的描述
TRUE:该定时器处于激活,
FALSE:该定时器不处于激活
依赖关系
无
举例
参见MMK_CreateTimer实例
3.2.3消息控制的接口函数
3.2.3.1MMK_InitMSGQueue
函数定义
voidMMK_InitMSGQueue(
uint8msgQueue_len
);
函数的详细描述
该函数用于对MMI消息队列进行初始化。
输入参数的描述
msgQueue_len:[in]初始化消息队列的长度,如果该参数为0,则初始化默认的长度16
返回值的描述
无
依赖关系删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第40页共44页12/2/2005
无
举例
voidMMK_Init(void)
{
…
MMK_InitMSGQueue(0);
…
}
3.2.3.2MMK_GetMSGQueue
函数定义
BOOLEANMMK_GetMSGQueue(
MMI_MESSAGE_PTR_Tmmi_msg_ptr
);
函数的详细描述
该函数用于从MMI的消息队列中获得当前的消息
输入参数的描述
mmi_msg_ptr:[out]消息队列中的消息指针
注:该指针所指向的空间需要调用函数MMK_FreeMSG来释放
返回值的描述
TRUE:成功
FALSE:失败
依赖关系
无
举例
...
//获得消息队列中当前没有被处理的消息
if(MMK_GetMSGQueue(&mmi_msg))
{
//分发消息
MMK_DispatchMSGQueue(mmi_msg);
//释放该消息指针空间
MMK_FreeMSG(mmi_msg);
}
else
{
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第41页共44页12/2/2005
MmiReceiveSignal(P_APP,&receiveSignal);
MMK_DispatchExtSig(&receiveSignal);
...
}
3.2.3.3MMK_DispatchMSGQueue
函数定义
voidMMK_DispatchMSGQueue(
MMI_MESSAGE_PTR_Tmmi_msg_ptr
);
函数的详细描述
该函数用于将分发消息mmi_msg_ptr到相应的窗口处理函数中。
输入参数的描述
mmi_msg_ptr:[in]需要分发的消息的指针
返回值的描述
无
依赖关系
无
举例
参见MMK_GetMSGQueue实例
3.2.3.4MMK_FreeMSG
函数定义
voidMMK_FreeMSG(
MMI_MESSAGE_PTR_Tmmi_msg_ptr
);
函数的详细描述
该函数用于释放消息指针所指向的空间。
输入参数的描述
mmi_msg_ptr:[in]需要释放的消息的指针
返回值的描述
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第42页共44页12/2/2005
无
依赖关系
无
举例
参见MMK_GetMSGQueue实例
3.2.3.5MMK_DispatchExtSig
函数定义
voidMMK_DispatchExtSig(
MmiSignalSsignal_ptr
);
函数的详细描述
该函数用于处理分发接收到的底层PS和Ref向APP发送的消息。如为PS消息,会将该消息分发给注册
过该消息应用。
输入参数的描述
signal_ptr:[in]MMI接收到的其他Task所发送的消息指针的指针
返回值的描述
无
依赖关系
无
举例
参见MMK_GetMSGQueue实例
3.2.3.6MMK_SendMsg
函数定义
BOOLEANMMK_SendMsg(
MMI_WINDOW_ID_Ewin_id,
MMI_MESSAGE_ID_Emsg_id,
DPARAMparam_ptr
)
函数的详细描述
该函数提供给应用向一个已知ID的窗口发送同步消息。该函数所传递的消息会立即送到指定ID的窗口
的处理函数,并直到窗口处理函数处理返回。
输入参数的描述
删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第43页共44页12/2/2005
win_id:[in]接受消息的窗口的ID,如果为NULL,则发送给处于Focus的窗口
msg_id:[in]需要发送的消息
param_ptr:[in]消息需要传递的参数指针
返回值的描述
TRUE:成功
FALSE:失败
依赖关系
无
举例
...
if(MMK_IsOpenWin(MMISMS_SMSBOX_WIN_ID))
{
MMK_SendMsg(MMISMS_SMSBOX_WIN_ID,MSG_SMS_DELETE,PNULL);
}
...
3.2.3.7MMK_PostMsg
函数定义
BOOLEANMMK_PostMsg(
MMI_WINDOW_ID_Ewin_id,
MMI_MESSAGE_ID_Emsg_id,
DPARAMparam_ptr,
uint8size_of_param
)
函数的详细描述
该函数提供给应用向一个已知ID的窗口发送异步消息。该函数会将所传递的消息发送的MMI的消息队
列中,然后立即返回。Kernel对MMI的消息队列采用按先进先处理的原则处理存放在队列中的消息。
输入参数的描述
win_id:[in]接受消息的窗口的ID,如果为NULL,则发送给处于Focus的窗口
msg_id:[in]需要发送的消息
param_ptr:[in]消息需要传递的参数指针
size_of_param:[in]参数的大小
返回值的描述
TRUE:成功
FALSE:失败
依赖关系删除的内容:2005-1-24
MMKKERNEL软件API接口说明书版本:1.0.1SW-BASE-DS-0031
展讯通信有限公司·保密·第44页共44页12/2/2005
无
举例
...
if(MMK_IsOpenWin(MMISMS_SMSBOX_WIN_ID))
{
MMK_PostMsg(MMISMS_SMSBOX_WIN_ID,MSG_SMS_DELETE,PNULL,0);
}
...
3.2.3.8MMK_PostBCMessage
函数定义
BOOLEANMMK_PostBCMessage(
MMI_MESSAGE_ID_Emsg_id,
DPARAMparam_ptr,
uint8size_of_param
);
函数的详细描述
该函数提供给应用向所有已经被打开的窗口发送异步广播消息。该函数会将所传递的消息发送的MMI
的消息队列中,然后立即返回。Kernel对MMI的消息队列采用按先进先处理的原则处理存放在队列中的消
息。该消息会被分发到所有已经打开的窗口的处理函数。
输入参数的描述
msg_id:[in]需要发送的消息
param_ptr:[in]消息需要传递的参数指针
size_of_param:[in]参数的大小
返回值的描述
TRUE:成功
FALSE:失败
依赖关系
无
举例
...
MMK_PostBCMessage(MSG_CLOSE_WIN,PNULL,0);
...
删除的内容:2005-1-24
|
|