|
創建菜單項公共屬性
創建菜單項,菜單項有兩種屬性,一是公共屬性,我們把所有菜單項屬性中值完全相同的屬性都合在一起,如每項高寬等,這樣即方便控制又節省空間。二是單項屬性(每項都不同),如菜單項文本圖標等。
… …
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 是指向菜單項中每一項的索引列表,主要用來通知菜單框架每一個菜單項的數據地址。
|
|