|
创建菜单项公共属性
创建菜单项,菜单项有两种属性,一是公共属性,我们把所有菜单项属性中值完全相同的属性都合在一起,如每项高宽等,这样即方便控制又节省空间。二是单项属性(每项都不同),如菜单项文本图标等。
… …
fixed_icontext_menuitem My_fixed_icontext_menuitem_common; //菜单项公共属性
void mmi_myapp_entry(void)
{
… …
//开始显示菜单
… …
memset(&My_fixed_icontext_menuitem_common, 0, sizeof(fixed_icontext_menuitem));
gui_create_fixed_icontext_menuitem(&My_fixed_icontext_menuitem_common, 136, 18); //宽高
gui_fixed_icontext_menuitem_set_text_position( &My_fixed_icontext_menuitem_common, 24, 0); //文本偏移距离
My_fixed_icontext_menuitem_common.flags |= UI_MENUITEM_DISABLE_BACKGROUND; //统一标志符
//显示菜单结束
… …
}
4、创建菜单项单项属性
下面初始化每个菜单项的单项属性。
在初始化之前我们先加几个文本串资源,添加方法可参考第五章“字串资源”:
typedef enum
{
STR_MYAPP_HELLO = MYAPP_BASE + 1,
STR_MYAPP_HELLO_MTK,
STR_MYAPP_HELLO_TIBET,
STR_MYAPP_HELLO_LHASA,
STR_MYAPP_HELLO_SINKIANG,
STR_MYAPP_HELLO_MONGOLIA,
STR_MYAPP_HELLO_SIAN,
STR_MYAPP_HELLO_CHENGTU,
} STRINGID_LIST_MYAPP;
文本资源如下图:
菜单项创建方法如下:
… …
#define My_fixed_list_n_items (8) //菜单项项数
fixed_icontext_menuitem_type My_fixed_list_menuitems[My_fixed_list_n_items]; //icontext 型菜单项列表
void *My_fixed_menuitem_pointers[My_fixed_list_n_items]; //指向菜单项列表的索引列表
void mmi_myapp_entry(void)
{
S32 i;
… …
//开始显示菜单
… …
memset(&My_fixed_list_menuitems, 0, sizeof(fixed_icontext_menuitem_type) * My_fixed_list_n_items);
for (i = 0; i < My_fixed_list_n_items; i++)
{
My_fixed_list_menuitems[i].item_text = (UI_string_type)GetString(STR_MYAPP_HELLO + i); //菜单项文本
My_fixed_list_menuitems[i].item_icon = (PU8) GetImage(IMG_GLOBAL_L1 + i); //菜单项图标
My_fixed_list_menuitems[i].flags = (UI_MENUITEM_CENTER_TEXT_Y | I_MENUITEM_CENTER_ICON_Y);
My_fixed_list_menuitems[i].item_icon_handle = GDI_ERROR_HANDLE;
My_fixed_menuitem_pointers[i] = (void*)&My_fixed_list_menuitems[i]; //给索引列表赋值
}
//显示菜单结束
… …
}
My_fixed_menuitem_pointers 是指向菜单项中每一项的索引列表,主要用来通知菜单框架每一个菜单项的数据地址。
|
|