比较优雅的设置页面

Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
2022-08-11 18:54:35 +08:00
parent c47fb33163
commit f2feab9cbb
35 changed files with 3421 additions and 3218 deletions
+53 -13
View File
@@ -26,7 +26,7 @@ button B1,TACKA,TACKB;//创建一个按钮
encoder E1;//创建一个编码器
int mode=0;
uint32_t run_tick=0,jump_tick=0;
char str[16];
char str[32];
uint16_t fps=0,fps_=0;
char sys_lan=0;
@@ -37,8 +37,8 @@ int test_code=0;
menu menu_main=
{
0,0,
"Back\nInput mode\nBuzzer\nDisplay\nLanguage\nAbout",
"返回\n输入模式\n蜂鸣器\n显示\n语言\n关于",5,
"Main GUI\nInput mode\nBuzzer\nDisplay\nLanguage\nAbout",
"主页\n输入模式\n蜂鸣器\n显示\n语言\n关于",5,
NULL
@@ -67,7 +67,7 @@ word turnoff=
};
int SHOW_MENU(menu *m,int encoder,char button,char lan)
int SHOW_MENU(menu *m,int encoder,char button,char lan,char dismode)
{
int return_code=-1;
const char *list;
@@ -99,8 +99,17 @@ int SHOW_MENU(menu *m,int encoder,char button,char lan)
OLED_Str_list(0,0,16,list,m->list_dis_top,4,1);
sprintf(temp,"%d/%d",m->sele,m->list_const);
OLED_Str(96,56,8,temp,0,1);
if(m->r_sw_list!=NULL)
{
OLED_Str_list(96,0,16,m->r_sw_list,m->list_dis_top,4,1);
}
if(dismode==1)
{
sprintf(temp,"%d/%d",m->sele,m->list_const);
OLED_Str(96,56,8,temp,0,1);
}
OLED_square(0,(m->sele-m->list_dis_top)*16,128,((m->sele-m->list_dis_top)*16)+16,2);
@@ -175,14 +184,13 @@ void mymain()
{
jump_tick=HAL_GetTick()+10000;
if(mode==2)
{
if(config_buzzer_for_sele_change==1)
if(config_buzzer_for_sele_change==1&&(mode==2||mode==3))
{
BUZZER_PLAY_NOTES(1000,50,50);
BUZZER_PLAY_NOTES(0,0,0);
}
}
}
@@ -230,7 +238,7 @@ void mymain()
case 2:
//菜单界面
switch(SHOW_MENU(&menu_main,encode_c,B1.code,sys_lan))
switch(SHOW_MENU(&menu_main,encode_c,B1.code,sys_lan,1))
{
case 0:
//jump to main GUI
@@ -248,11 +256,43 @@ void mymain()
case 3:
//buzzer setting
switch(SHOW_MENU(&buzzer_setting,encode_c,B1.code,sys_lan))
buzzer_setting.r_sw_list=&str;
sprintf(str,"../");
if(config_buzzer_for_button_pass)
{
sprintf(str,"%s%s",str,"\non");
}else
{
sprintf(str,"%s%s",str,"\nof");
}
if(config_buzzer_for_button_longpass)
{
sprintf(str,"%s%s",str,"\non");
}else
{
sprintf(str,"%s%s",str,"\nof");
}
if(config_buzzer_for_sele_change)
{
sprintf(str,"%s%s",str,"\non");
}else
{
sprintf(str,"%s%s",str,"\nof");
}
switch(SHOW_MENU(&buzzer_setting,encode_c,B1.code,sys_lan,0))
{
case 0:
//jump to main GUI
mode=1;
mode=2;
break;
case 1:
if(config_buzzer_for_button_pass){config_buzzer_for_button_pass=0;}else{config_buzzer_for_button_pass=1;}
break;
case 2:
if(config_buzzer_for_button_longpass){config_buzzer_for_button_longpass=0;}else{config_buzzer_for_button_longpass=1;}
break;
case 3:
if(config_buzzer_for_sele_change){config_buzzer_for_sele_change=0;}else{config_buzzer_for_sele_change=1;}
break;
}