MTK添加菜单有两个宏
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(), 因为它没有规定子菜单的个数。