📄 wgui_categories_mm.c
字号:
x + MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH - 1,
y + MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT - 1,
&m->highlight_area);
m->save_x = x;
m->save_y = y;
/* Display the highlighted item */
mtk_show_animation_frames(x, y, m->list_of_items[m->highlighted_item], 1);
}
m->flags |= MAIN_MENU_ITEM_HIGHLIGHTED;
}
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
/*****************************************************************************
* FUNCTION
* main_menu_previous_row
* DESCRIPTION
* move to previous row of main menu item
* PARAMETERS
* m [IN] Menu
* RETURNS
* void
*****************************************************************************/
void main_menu_previous_row(matrix_main_menu *m)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 row, column;
S32 old_highlighted_item = m->highlighted_item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
row = old_highlighted_item / MAIN_MENU_N_COLUMNS;
column = old_highlighted_item % MAIN_MENU_N_COLUMNS;
if (m->flags & MAIN_MENU_LOOP)
{
if (row <= 0)
{
row = MAIN_MENU_N_ROWS - 1;
}
else
{
row--;
}
#ifdef __MMI_MAIN_MENU_CYCLE__
if (row == (MAIN_MENU_N_ROWS - 1))
if (column > 0)
{
column--;
}
else
{
column = MAIN_MENU_N_COLUMNS - 1;
}
#endif /* __MMI_MAIN_MENU_CYCLE__ */
}
else
{
if (row > 0)
{
row--;
}
}
m->highlighted_item = row * MAIN_MENU_N_COLUMNS + column;
if (m->highlighted_item > (m->n_items - 1))
{
m->highlighted_item = m->n_items - 1;
}
if (old_highlighted_item != m->highlighted_item)
{
m->item_unhighlighted(old_highlighted_item);
m->item_highlighted(m->highlighted_item);
gui_hide_animations();
show_main_menu_highlight(m);
}
}
/*****************************************************************************
* FUNCTION
* main_menu_next_row
* DESCRIPTION
* move to next row of main menu item
* PARAMETERS
* m [IN] Menu
* RETURNS
* void
*****************************************************************************/
void main_menu_next_row(matrix_main_menu *m)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 row, column;
S32 old_highlighted_item = m->highlighted_item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
row = old_highlighted_item / MAIN_MENU_N_COLUMNS;
column = old_highlighted_item % MAIN_MENU_N_COLUMNS;
if (m->flags & MAIN_MENU_LOOP)
{
if (row >= (MAIN_MENU_N_ROWS - 1))
{
row = 0;
}
else
{
row++;
}
#ifdef __MMI_MAIN_MENU_CYCLE__
if (row == 0)
{
column = (column + 1) % MAIN_MENU_N_COLUMNS;
}
#endif /* __MMI_MAIN_MENU_CYCLE__ */
}
else
{
if (row < (MAIN_MENU_N_ROWS - 1))
{
row++;
}
}
m->highlighted_item = row * MAIN_MENU_N_COLUMNS + column;
if (m->highlighted_item > (m->n_items - 1))
{
m->highlighted_item = m->n_items - 1;
}
if (old_highlighted_item != m->highlighted_item)
{
m->item_unhighlighted(old_highlighted_item);
m->item_highlighted(m->highlighted_item);
gui_hide_animations();
show_main_menu_highlight(m);
}
}
/*****************************************************************************
* FUNCTION
* main_menu_previous_column
* DESCRIPTION
* move to previous column of main menu item
* PARAMETERS
* m [IN] Menu
* RETURNS
* void
*****************************************************************************/
void main_menu_previous_column(matrix_main_menu *m)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 row, column;
S32 old_highlighted_item = m->highlighted_item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
row = old_highlighted_item / MAIN_MENU_N_COLUMNS;
column = old_highlighted_item % MAIN_MENU_N_COLUMNS;
if (m->flags & MAIN_MENU_LOOP)
{
if (column <= 0)
{
column = MAIN_MENU_N_COLUMNS - 1;
if (row <= 0)
{
row = MAIN_MENU_N_ROWS - 1;
}
else
{
row--;
}
}
else
{
column--;
}
}
else
{
if (column > 0)
{
column--;
}
}
m->highlighted_item = row * MAIN_MENU_N_COLUMNS + column;
if (m->highlighted_item > (m->n_items - 1))
{
m->highlighted_item = m->n_items - 1;
}
if (old_highlighted_item != m->highlighted_item)
{
m->item_unhighlighted(old_highlighted_item);
m->item_highlighted(m->highlighted_item);
gui_hide_animations();
show_main_menu_highlight(m);
}
}
/*****************************************************************************
* FUNCTION
* main_menu_next_column
* DESCRIPTION
* move to next column of main menu item
* PARAMETERS
* m [IN] Menu
* RETURNS
* void
*****************************************************************************/
void main_menu_next_column(matrix_main_menu *m)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 row, column;
S32 old_highlighted_item = m->highlighted_item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
row = old_highlighted_item / MAIN_MENU_N_COLUMNS;
column = old_highlighted_item % MAIN_MENU_N_COLUMNS;
if (m->flags & MAIN_MENU_LOOP)
{
if (column >= (MAIN_MENU_N_COLUMNS - 1))
{
column = 0;
if (row >= (MAIN_MENU_N_ROWS - 1))
{
row = 0;
}
else
{
row++;
}
}
else
{
column++;
}
}
else
{
if (column < (MAIN_MENU_N_COLUMNS - 1))
{
column++;
}
}
m->highlighted_item = row * MAIN_MENU_N_COLUMNS + column;
if (m->highlighted_item > (m->n_items - 1))
{
m->highlighted_item = m->n_items - 1;
}
if (old_highlighted_item != m->highlighted_item)
{
m->item_unhighlighted(old_highlighted_item);
m->item_highlighted(m->highlighted_item);
gui_hide_animations();
show_main_menu_highlight(m);
}
}
/*****************************************************************************
* FUNCTION
* main_menu_highlight_item
* DESCRIPTION
* handle main menu highlighted item
* PARAMETERS
* m [IN] Index of highlighted item
* index [IN] Index of highlighted item
* menu(?) [IN] Index of highlighted item
* RETURNS
* void
*****************************************************************************/
void main_menu_highlight_item(matrix_main_menu *m, S32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 old_highlighted_item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if ((index < 0) || (index >= m->n_items))
{
return;
}
if (index == m->highlighted_item)
{
return;
}
old_highlighted_item = m->highlighted_item;
m->highlighted_item = index;
m->item_unhighlighted(old_highlighted_item);
m->item_highlighted(m->highlighted_item);
gui_hide_animations();
show_main_menu_highlight(m);
}
/*****************************************************************************
* FUNCTION
* refresh_main_menu
* DESCRIPTION
* refresh main menu
* PARAMETERS
* m [IN] Menu
* RETURNS
* void
*****************************************************************************/
void refresh_main_menu(matrix_main_menu *m)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
gui_hide_animations();
show_main_menu(m);
show_main_menu_highlight(m);
}
/* Main menu wrappers */
/*****************************************************************************
* FUNCTION
* wgui_main_menu_previous_row
* DESCRIPTION
* move to main enu previous row
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_main_menu_previous_row(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
main_menu_previous_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_next_row
* DESCRIPTION
* move to main menu next row
* PARAMETERS
* void
* RETURNS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -