📄 ui_menu.c
字号:
#include <string.h>
#include "api.h"
#include "lcd.h"
#include "key.h"
#include "res_show.h"
#include "res.h"
#include "ui_menu.h"
#include "display.h"
#include "prefer.h"
//#include "mp3_utile.h"
function_menu_t globle_menu;
code UINT8 menu_pos_menu[7] = { POSITION_MENU1, POSITION_MENU2, POSITION_MENU3,
POSITION_MENU4 , POSITION_MENU5 , POSITION_MENU6 , POSITION_MENU7};
UINT8 menu_need_draw=1;
UINT8 menu_value_changed=1;
UINT8 menu_active,menu_old_active;
void show_active_menu(int old_active, int active)
{
int tmp;
tmp = old_active%7;
tmp = active%7;
gfx_bg_rectangle(4,menu_pos_menu[tmp], 120, 16);
bResShowPic(MENUARR, menu_ptr_x_def,menu_pos_menu[tmp]+2);
fg_color = COLOR_SELECT;
ResShowMultiString(globle_menu.title[active], tUserPreference.u8LanguageId, menu_str_x_def, menu_pos_menu[tmp]);
tmp = old_active%7;
gfx_bg_rectangle(4,menu_pos_menu[tmp], 120, 16);
bResShowPic(MENURDOT, menu_ptr_x_def,menu_pos_menu[tmp]+2);
fg_color = COLOR_UNSELECT;
ResShowMultiString(globle_menu.title[old_active], tUserPreference.u8LanguageId, menu_str_x_def, menu_pos_menu[tmp]);
}
void screen_menu(UINT8 key)
{
int i;
int cur_group;
int n;
switch( key)
{
case KEY_NEXT:
if(menu_active < globle_menu.total - 1)
{
menu_active++;
if(menu_active/7==cur_group)
{
menu_old_active=menu_active-1;
menu_value_changed=TRUE;
}
else
menu_need_draw = TRUE;
}
else
{
menu_active = 0;
menu_need_draw = TRUE;
}
break;
case KEY_PREV:
if(menu_active > 0)
{
menu_active--;
if(menu_active/7==cur_group)
{
menu_old_active=menu_active+1;
menu_value_changed=TRUE;
}
else
menu_need_draw = TRUE;
}
else
{
menu_active = globle_menu.total - 1;
menu_need_draw = TRUE;
}
break;
case KEY_MENU:
globle_menu.active = menu_active;
globle_menu.action(globle_menu.active);
return;
//case KEY_EOS:
// deal_loop();
// break;
// default:
}
if(menu_need_draw)
{
bResShowPic(MENUONE,0,0);
bResShowPic(MENU_TOP,0,140);
menu_old_active=menu_active;
cur_group = menu_active / 7;
n = cur_group*7;
for(i=0; i<7; i++)
{
if(n+i >= globle_menu.total) break; //处理不足5个的情况
if(n+i==menu_active)
{
bResShowPic(MENUARR, menu_ptr_x_def,menu_pos_menu[i]+2);
fg_color = COLOR_SELECT;
ResShowMultiString(globle_menu.title[menu_active],tUserPreference.u8LanguageId,
menu_str_x_def, menu_pos_menu[i]);
}
else
{
bResShowPic(MENURDOT, menu_ptr_x_def,menu_pos_menu[i]+2);
fg_color = COLOR_UNSELECT;
ResShowMultiString(globle_menu.title[n+i],tUserPreference.u8LanguageId,
menu_str_x_def, menu_pos_menu[i]);
}
}
menu_need_draw = 0;
}//need draw
if(menu_value_changed)
{
show_active_menu(menu_old_active,menu_active);
menu_value_changed=0;
}
}
void ui_menu_init(void)
{
menu_need_draw=1;
menu_value_changed = 0;
menu_active = globle_menu.active;
bg_color = 0x0000F77F;
gfx_set_bg(0x0000F77F);
screen_menu(KEY_PLAY);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -