资源添加

2009-9-26

1.       添加字串的txt文件目录是plutommi/Customer/CustResource/PLUTO_MMI/ref_list

Resgenref_list.txt(包括plutommi/Customer/CustResource/PLUTO_MMI  plutommi/Customer/CustResource两个目录下的)都要依据ref_list下各个模块的txt重新生成

2.       优先搜索txt中添加的,若txt中对应语言中没有添加则再使用        ADD_APPLICATION_STRING2(STR_MY_SETTING, "My Setting", "string for  menuitem my setting")的第二个参数

3.       string_resource_usage.txt中字串data来自ADD_APPLICATION_STRING2中的第二个参数而非txt

 

 

MENU:

MTK添加菜单有两个宏

ADD_APPLICATION_MENUITEM()ADD_APPLICATION_MENUITEM2()的异同

参考http://hi.baidu.com/developer04/blog/item/67263ce6706cee27b83820f6.html
ADD_APPLICATION_MENUITEM()
ADD_APPLICATION_MENUITEM2()
他们之间有什么区别呢?
首先是结构不同:
ADD_APPLICATION_MENUITEM
需要要指明子菜单个数。例如下面第三个参数为子菜单个数
ADD_APPLICATION_MENUITEM((MENU_BARRING_OPTION,
0, 3,
MENU_BARRING_ACTIVATE,
MENU_BARRING_DEACTIVATE,
MENU_BARRING_QUERY, SHOW, NONMOVEABLE, DISP_LIST, STR_MENU_BARRING_OPTION, NULL));

ADD_APPLICATION_MENUITEM2 不需要指明子菜单个数,子菜单结尾处加一个MENU_ITEM_END标示子菜单项结束,其他项含义一样。例如
ADD_APPLICATION_MENUITEM2((MENU_ID_UCM_INCALL_OPTION_NEW_CALL, MENU_ID_UCM_INCALL_OPTION,
MENU_ID_UCM_INCALL_OPTION_NEW_CALL_VOICE,
#ifdef __MMI_VOIP__
MENU_ID_UCM_INCALL_OPTION_NEW_CALL_VOIP,
#endif /* __MMI_VOIP__ */
MENU_ITEM_END,
SHOW, MOVEABLEWITHINPARENT, DISP_LIST,
STR_ID_UCM_NEW_CALL,0));
用法上需要注意什么呢?
ADD_APPLICATION_MENUITEM()
任何地方都可以使用。一般用于固定个数不变的菜单。还有叶子菜单(即最底层菜单)。
ADD_APPLICATION_MENUITEM2()
必须要包含子菜单,不能用于叶子菜单。它最大的一个作用是用于菜单项根据需求有变化的情况。我们知道MTK有个features_switch 里面有好多宏开关,根据宏开关变化一些菜单也需要改变,这就用到了ADD_APPLICATION_MENUITEM2(), 因为它没有规定子菜单的个数。

 

2009-10-21

现象:如图,并未找到menu对应的菜单ID,却有此菜单项。高亮进入的窗口不确定,大体规律是进入最近一次进入的窗口

代码:

ADD_APPLICATION_MENUITEM((MITEM101_PBOOK_VIEW_OPTIONS,0,

#ifdef __POPO_INTERPHONE__

                   1+

#endif

         MMI_PHB_OPTION_ENUM_TOTAL,         //问题就在这里

#if defined(__MMI_PHB_DIAL_FROM_PHB__)

                   MENU_ID_PHB_OPTION_DIAL,

#endif

#if defined(__MMI_PHB_IP_DIAL_FROM_PHB__)

                   MENU_ID_PHB_OPTION_IP_DIAL,

#endif

#if defined(__MMI_PHB_SEND_SMS_FROM_PHB__)

                   MENU_ID_PHB_OPTION_SEND_SMS,

#endif

#if defined(__MMI_PHB_SEND_MMS_FROM_PHB__)

                   MENU_ID_PHB_OPTION_SEND_MMS,

#endif

#if defined(__MMI_IMPS__) && defined(IMPS_WV13_ENHANCEMENT)

                   MENU_ID_PHB_OPTION_SEND_IM,

#endif

#if defined(__MMI_MMS_POSTCARD__) && defined(__MMI_PHB_INFO_FIELD__)

                   MENU_ID_PHB_OPTION_SEND_POSTCARD,

#endif /* defined(__MMI_MMS_POSTCARD__) && defined(__MMI_PHB_INFO_FIELD__) */

#if defined(__POPO_INTERPHONE__)

                   MENU_ID_INTERPHONEPOPO,

#endif

                   MITEM1010_PBOOK_VIEW,

                   MITEM1011_PBOOK_EDIT,

#if defined(__MMI_PHB_INFO_FIELD__)

                   MENU_ID_PHB_OPTION_EDIT_DETAIL,

#endif

#if defined(__MMI_IMPS__) || defined(__MMI_PHB_POC_FIELD__) || defined(__MMI_VOIP__)

                   MENU_ID_PHB_OPTION_EDIT_SERVICE_FIELD,

#endif

                   MITEM1012_PBOOK_DELETE,

                   MITEM1013_PBOOK_COPY_ENTRY,

                   MITEM1014_PBOOK_MOVE,

#if defined(__MMI_VCARD__)

                   MENU_ID_PHB_VCARD_SEND_ENTRY,

#endif

#if defined(__MMI_VRSD_DIAL__)

                   MENU_ID_VRSD_DIAL_PHB_OPTION,

#endif

#if defined(__MMI_BPP_SUPPORT__)

        MENU_ID_PHB_PRINT,

#endif

#ifdef __MMI_PHB_DEFAULT_NUMBER__

        MENU_ID_PHB_OG_SET_DEFAULT_NUMBER,

#endif

SHOW,NONMOVEABLE, ISP_LIST,STR_GLOBAL_OPTIONS,IMG_GLOBAL_OPTIONS));

 

原因:定义的菜单个数不正确。由于宏的影响,    MMI_PHB_OPTION_ENUM_TOTAL并不与实际子菜单的个数一致,此例中实际有11个菜单项,而MMI_PHB_OPTION_ENUM_TOTAL的值是12,所以会多出一项!

改正:使用ADD_APPLICATION_MENUITEM2。如图,关于这两种添加菜单方式不同点参考下面

 

 

 

 

2009-12-10

Menu的最终位置并不由在ADD_APPLICATION_MENUITEM时其指定的父菜单决定,即此menu可能是其他菜单的子菜单,一般说来,加菜单时,指定的子菜单是一定的,但其父菜单却不一定。

另外有一种情况是,即使指定了子菜单并且未加任何宏控,在有些时候这些子菜单并不完全显示出来。如正在通话是左软键的option,加菜单的方式如下

    /* In-call option */

    ADD_APPLICATION_MENUITEM2((MENU_ID_UCM_INCALL_OPTION,0,

                                MENU_ID_UCM_INCALL_OPTION_HOLD_SINGLE,

                                MENU_ID_UCM_INCALL_OPTION_HOLD_CONF,

                                MENU_ID_UCM_INCALL_OPTION_RETRIEVE_SINGLE,

                                MENU_ID_UCM_INCALL_OPTION_RETRIEVE_CONF,

                                MENU_ID_UCM_INCALL_OPTION_SWAP,

                                MENU_ID_UCM_INCALL_OPTION_CONF,

                                MENU_ID_UCM_INCALL_OPTION_SPLIT,

                                MENU_ID_UCM_INCALL_OPTION_END_SINGLE,

                                MENU_ID_UCM_INCALL_OPTION_END_CONF,

                                MENU_ID_UCM_INCALL_OPTION_END_ALL,

                                MENU_ID_UCM_INCALL_OPTION_TRANSFER,

                                MENU_ID_UCM_INCALL_OPTION_NEW_CALL,

                          

左软键的响应函数是mmi_ucm_entry_incall_option()

每次进入其子菜单并不都会显示出来,原因是在mmi_ucm_entry_incall_optionshowcategory前有个过滤的过程   mmi_ucm_handle_incall_option();可以使其某些子菜单隐藏掉,具体相关数据是数组MenuItemMask[],此数组元素是U8型,每一个bit代表一个menuID隐藏与否。mmi_frm_hide_menu_itemmmi_frm_unhide_menu_item就是在求模对MenuItemMask相应的menuIdbit置位!

     从上面加菜单的方式可以看出有的菜单并不会体现在UI中如MENU_ID_UCM_INCALL_OPTION,在UI中是看不见此菜单的!(还要注意其父菜单是0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值