配色: 字号:
MMK_Kernel软件API接口说明书
2012-08-06 | 阅:  转:  |  分享 
  


展讯通信有限公司·保密·

















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

献花(0)
+1
(本文系小云蔡首藏)