📄 wgui_categories_mm.c
字号:
* void
*****************************************************************************/
void wgui_main_menu_next_row(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
main_menu_next_row(&_wgui_main_menu);
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
#else /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
gdi_layer_blt_previous(MAIN_MENU_X1, MAIN_MENU_Y1, MAIN_MENU_X2, MAIN_MENU_Y2);
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
}
/*****************************************************************************
* FUNCTION
* wgui_main_menu_previous_column
* DESCRIPTION
* move to main menu previous column
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_previous_column(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
main_menu_previous_column(&_wgui_main_menu);
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
#else /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
gdi_layer_blt_previous(MAIN_MENU_X1, MAIN_MENU_Y1, MAIN_MENU_X2, MAIN_MENU_Y2);
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
}
/*****************************************************************************
* FUNCTION
* wgui_main_menu_next_column
* DESCRIPTION
* move to main menu next column
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_next_column(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
main_menu_next_column(&_wgui_main_menu);
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
#else /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
gdi_layer_blt_previous(MAIN_MENU_X1, MAIN_MENU_Y1, MAIN_MENU_X2, MAIN_MENU_Y2);
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
}
/*****************************************************************************
* FUNCTION
* wgui_main_menu_goto_item
* DESCRIPTION
* highlight particular menu item
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_goto_item(S32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
main_menu_highlight_item(&_wgui_main_menu, index);
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
#else /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
gdi_layer_blt_previous(MAIN_MENU_X1, MAIN_MENU_Y1, MAIN_MENU_X2, MAIN_MENU_Y2);
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
}
/*****************************************************************************
* FUNCTION
* wgui_main_menu_key_handler
* DESCRIPTION
* set the key handlers of main menu
* PARAMETERS
* vkey_code [IN] Key code
* key_state [IN] Key state
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_key_handler(S32 vkey_code, S32 key_state)
{
#if(MMI_BUILD_TYPE == BUILD_TYPE_X86WIN32)
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (key_state)
{
switch (vkey_code)
{
case 37:
wgui_main_menu_previous_column();
break;
case 39:
wgui_main_menu_next_column();
break;
case 38:
wgui_main_menu_previous_row();
break;
case 40:
wgui_main_menu_next_row();
break;
}
}
#else /* (MMI_BUILD_TYPE == BUILD_TYPE_X86WIN32) */
UI_UNUSED_PARAMETER(vkey_code);
UI_UNUSED_PARAMETER(key_state);
#endif /* (MMI_BUILD_TYPE == BUILD_TYPE_X86WIN32) */
}
/*****************************************************************************
* FUNCTION
* wgui_register_main_menu_keys
* DESCRIPTION
* register main menu keys handlers
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_register_main_menu_keys(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
SetKeyHandler(wgui_main_menu_previous_row, KEY_UP_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(wgui_main_menu_next_row, KEY_DOWN_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(wgui_main_menu_previous_column, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(wgui_main_menu_next_column, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(wgui_main_menu_previous_column, KEY_VOL_UP, KEY_EVENT_DOWN);
SetKeyHandler(wgui_main_menu_next_column, KEY_VOL_DOWN, KEY_EVENT_DOWN);
register_keyboard_key_handler(wgui_main_menu_key_handler);
}
/*****************************************************************************
* FUNCTION
* wgui_clear_main_menu_keys
* DESCRIPTION
* clear key handlers of main menu
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_clear_main_menu_keys(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ClearKeyHandler(KEY_UP_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_DOWN_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_LEFT_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}
/*****************************************************************************
* FUNCTION
* wgui_main_menu_highlight_handler
* DESCRIPTION
* main menu highlight handler
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_highlight_handler(S32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
MMI_menu_shortcut_number = index + 1;
if (index >= 0 && index <= (_wgui_main_menu.n_items))
{
MMI_highlighted_item_text = _wgui_main_menu_item_strings[index];
MMI_title_string = MMI_highlighted_item_text;
}
#if(!DISABLE_MAIN_MENU_HIGHLIGHT_TITLE_UPDATE)
draw_title();
#endif
MMI_matrix_highlight_handler(index);
}
/*****************************************************************************
* FUNCTION
* wgui_register_main_menu_shortcut_handler
* DESCRIPTION
* main menu shorcut handler
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_register_main_menu_shortcut_handler(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
register_menu_shortcut_keys();
register_menu_shortcut_handler(wgui_main_menu_goto_item);
}
/*****************************************************************************
* FUNCTION
* wgui_setup_main_menu
* DESCRIPTION
* Create main menu
* PARAMETERS
* n_items [IN] Number of items
* item_list [IN] Item list
* image_list [IN] Image list
* highlighted_item [IN] Highlighted item
* RETURNS
* void
*****************************************************************************/
void wgui_setup_main_menu(S32 n_items, U16 *item_list, U16 *image_list, S32 highlighted_item)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (i = 0; (i < n_items) && (i < MAIN_MENU_MAX_ITEMS); i++)
{
_wgui_main_menu_items[i] = (PU8) GetImage(image_list[i]);
_wgui_main_menu_item_strings[i] = (UI_string_type) GetString(item_list[i]);
}
#ifdef __MMI_MERGE_SAT_TO_MAINMENU__
#ifndef WAP_SUPPORT
if (IsSATPresent())
{
_wgui_main_menu_item_strings[7] = (UI_string_type) GetSATMainMenuAlphaID();
}
#endif /* WAP_SUPPORT */
#endif /* __MMI_MERGE_SAT_TO_MAINMENU__ */
setup_main_menu(&_wgui_main_menu, 1, (MMI_title_y + MMI_title_height) + 1, n_items, _wgui_main_menu_items);
_wgui_main_menu.flags |= MAIN_MENU_LOOP;
_wgui_main_menu.highlighted_item = highlighted_item;
_wgui_main_menu.item_highlighted = wgui_main_menu_highlight_handler;
wgui_main_menu_highlight_handler(highlighted_item);
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
wgui_matrix_main_menu_frame_counter = 0;
#endif
}
/*****************************************************************************
* FUNCTION
* wgui_redraw_main_menu
* DESCRIPTION
* redraw main menu
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_redraw_main_menu(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
refresh_main_menu(&_wgui_main_menu);
}
/*****************************************************************************
* FUNCTION
* set_matrix_main_menu_category_history
* DESCRIPTION
* set main menu matirx history
* PARAMETERS
* history_ID [IN]
* history_buffer [IN]
* RETURNS
* void
*****************************************************************************/
U8 set_matrix_main_menu_category_history(U16 history_ID, U8 *history_buffer)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (history_buffer != NULL)
{
matrix_main_menu_category_history *h = (matrix_main_menu_category_history*) history_buffer;
if (history_valid(h->history_ID, history_ID))
{
_wgui_main_menu.highlighted_item = h->highlighted_item;
_wgui_main_menu.flags = h->flags;
return (1);
}
}
return (0);
}
/*****************************************************************************
* FUNCTION
* get_matrix_main_menu_category_history
* DESCRIPTION
* get main menu matirx history
* PARAMETERS
* history_ID [IN]
* history_buffer [IN]
* RETURNS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -