配色: 字号:
资源添加
2012-08-07 | 阅:  转:  |  分享 
  
一:模块添加

创建目录和文件

创建以下目录:

\plutommi\mmi\FirstApp\FirstAppInc 模块头文件目录

在此目录中创建4个头文件:FirstAppDefs.h

FirstAppProt.h

FirstAppTypes.h

FirstAppGprot.h

\plutommi\mmi\FirstApp\FirstAppSrc 模块源文件目录

在此目录中创建1个源文件:FirstAppSrc.c

将添加的模块加入项目

在目录make\pluommi\mmi_app中添加

①:mmi_app.inc:用来指明源文件所需要的头文件的目录

添加: \plutommi\mmi\FirstApp\FirstAppInc 到文件的末尾

②:mmi_app.lis:用来指明MMI所要编译的具体的源文件

添加: \plutommi\mmi\FirstApp\FirstAppSrc\FirstAppSrc.c 到文件末尾

③:mmi_app.pth:用来指明要编译的源文件目录

添加: \plutommi\mmi\FirstApp\FirstAppSrc 到文件的末尾

若在编译过程中报错:找不到头文件,则在文件\MoDIS\mmi_app.ini中添加

/I"..\..\plutommi\mmi\FirstApp\FirstAppInc"

给自己的模块添加宏开关

在文件make\Option.mak或make\Tyd_custom_option.mak中添加

COM_DEFS += __MMI_FIRSTAPP__



完成后执行:makeV25_09A gprs update 命令

注释:运行模拟器,若出现找不到某些函数实现的错误时,在VC的MMI目录树中新建文件夹“FirstAppSrc”,并将我们新增的文件FirstAppSrc.c文件导入文件夹即可。



二:资源

添加资源文件

在\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下创建文件Res_FirstApp.c并添加内容



#include"MMI_features.h"

#include"StdC.h"

#include"CustomCfg.h"

#ifdefFIRST_PASS

#include"BuildCfg.h"

#endif

#include"ComposeRingToneDefs.h"

#include"FirstAppDefs.h"

#include"PopulateRes.h"



voidPopulateFirstAppRes(void)

{



}

2.修改makefile文件

在文件\plutommi\Customer\ResGenerator\makefile文件中添加我们定义的FirstAppInc目录的路径

如下代码中的红色部分

includecustom_option.txt

includecustom_include.txt

PLUTO_INC=\

-I"../customerinc"\

-I"../../MMI/FirstApp/FirstAppInc"\

-I"../../tyd/SP/YLVM/inc"\

-I"../../MMI/PoC/PoCInc"\



3.修改PopulateRes.c文件

在文件PopulateRes.c中

查找PopulateCCARes(void)

添加如下代码中的红体部分

#ifdef__CCA_SUPPORT__

externvoidPopulateCCARes(void);

#endif



#ifdef__MMI_FIRSTAPP__

externvoidPopulateFirstAppRes(void);

#endif



查找函数PopulateResData()添加

#ifdef__MMI_FIRSTAPP__

RES_PRINT_INFO("PopulatingFirstAppResources\n");

PopulateFirstAppRes();

#endif



.4。对资源ID进行包装

在文件MMIDataType.h中

RESOURCE_BASE_ENUM_END()前添加

#ifdef__MMI_FIRSTAPP__

RESOURCE_BASE_RANGE(FIRSTAPP,50),

#endif



在RESOURCE_BASE_TABLE_END()前添加

/

FirstApp

/#defineFIRSTAPP_BASE ((U16)GET_RESOURCE_BASE(FIRSTAPP))

#defineFIRSTAPP_BASE_MAX ((U16)GET_RESOURCE_BASE(FIRSTAPP))

RESOURCE_BASE_TABLE_ITEM(FIRSTAPP)



5.在文件FirstAppDefs.h文件中添加新的屏幕ID

在文件中添加



typedefenum

{

SCR_FIRSTAPP_MAIN=FIRSTAPP_BASE+1

}SCREENID_LIST_FIRSTAPP;

三:字符串资源

1.在文件\plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt中添加

STR_FIRSTAPP undefined 20 FirstApp FirstApp 第一个程序 第一个程序

STR_FIRSTAPP_HELLOMTK undefined 20 HelloMTK HelloMTK 你好,

MTK! 你好,MTK!

在文件FirstAppDefs.h中添加字符串ID

typedefenum

{

STR_FIRSTAPP=FIRSTAPP_BASE+1,

STR_FIRSTAPP_HELLOMTK,

STR_FIRSTAPP_TOTAL

}STR_ID_FIRSTAPP_ENUM;

在文件Res_FirstApp.c中的函数PopulateFirstAppRes中添加

ADD_APPLICATION_STRING2(STR_FIRSTAPP,"FirstApp","NameofFirstApp");

ADD_APPLICATION_STRING2(STR_FIRSTAPP_HELLOMTK,"HelloMTK", "Asimplestring");

完成后执行makeV25_09A gprs update 命令



四:图片资源

1.定义图片ID

在文件

FirstAppDefs.h

中添加



typedefenum

{

IMG_FIRSTAPP=FIRSTAPP_BASE+1,

IMG_FIRSTAPP_1,

IMG_FIRSTAPP_2,

。。。

}

2.添加资源存放文件

在目录plutommi/customer/Image/PLUTO240x320/MainLCD中创建文件夹FirstApp

将图片ICON.bmp放入FirstApp文件夹下,将MainLCD打包成image.zip压缩文件

3.在文件

Res_FirstApp.c文件中添加图片加载代码

ADD_APPLICATION_IMAGE2(IMG_FIRSTAPP,CUST_IMG_PATH"\\\\MainLCD\\\\FirstApp\\\\ICON.BMP","FirstAppICON");



五:菜单资源添加

加载前确定添加内容的文件Res_FirstApp.c(资源加载文件)(文件可变)

(以organizer-工具箱为例添加)



I.确定菜单ID



GlobalMenuItems.h

文件中,在枚举中添加菜单ID



#ifdef__MMI_FIRSTAPP__

ORGANIZER_FIRSTAPP_MENU,

#endif



注意ID必须放在

MAX_MENU_ITEMS_VALUE

之前



2.将新的ID整合在organizer(模块)的菜单中

在MainMenu.c文件中,找到OrganizerMenu添加程序的菜单枚举值,



#ifdef__MMI_FIRSTAPP__

ORG_ENUM_FIRSTAPP,

#endif



还要在

#ifdefined(__MMI_BI_DEGREE_MAIN_MENU_STYLE__)下的宏

PopulateMainMenuRes(void)

或在

#ifdefined(__MMI_VERSION_2__)下的

PopulateMainMenuRes(void)

中的

ADD_APPLICATION_MENUITEM

中添加



#ifdefined(__MMI_FIRSTAPP__)

ORGANIZER_FIRSTAPP_MENU,

#endif



3.加载菜单本身

在资源加载函数(根据实际确定)

Res_FirstApp.c

中的函数

PopulateFirstAppRes(void)

中添加



ADD_APPLICATION_MENUITEM((

ORGANIZER_FIRSTAPP_MENU,//菜单ID

MAIN_MENU_ORGANIZER_MENUID,//父菜单ID

0,//子菜单ID,可为多个

SHOW,//隐藏属性,一般设为SHOW

SHORTCUTABLE,//菜单项的转移属性

DISP_LIST,//列表显示

STR_FIRSTAPP,//菜单显示的字符串ID

IMG_FIRSTAPP//菜单项的小图标ID,在图片资源中添加

));



完成后update下



4.菜单项接受高亮通知和将入口函数与左软键绑定



FirstAppSrc.c

文件中添加

voidmmi_firstapp_hilite(void)//(放在organizer的入口函数中被调用)

{

SetLeftSoftkeyFunction(EntryFirstAppScreen,KEY_EVENT_UP);//设定做菜单的响应函数

}

voidmmi_firstapp_init(void)//(放在初始化函数中)

{

SetHiliteHandler(ORGANIZER_FIRSTAPP_MENU,mmi_firstapp_hilite);//高亮接受通知(菜单ID,接受通知的函数指针)

}



5.在文件

organizer.c

中的

OrgInit(void)

中添加



#ifdef__MMI_FIRSTAPP__

mmi_firstapp_init();

#endif



在EntryOrganizer(void)中添加



#ifdef__MMI_FIRSTAPP__

mmi_firstapp_hilite();//FirstApp入口函数

#endif









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