#include "include.h" #include "func.h" #include "func_menu.h" #include "app_variable.h" #if TRACE_EN #define TRACE(...) printf(__VA_ARGS__) #else #define TRACE(...) #endif //创建主菜单窗体,创建窗体中不要使用功能结构体 func_cb.f_cb compo_form_t *func_menu_form_create(void) { printf("func_menu_form_create %d",SysVariable.menu_style); switch (SysVariable.menu_style) { case MENU_STYLE_HONEYCOMB: return func_menu_sub_honeycomb_form_create(); case MENU_STYLE_WATERFALL: return func_menu_sub_waterfall_form_create(); case MENU_STYLE_LIST: case MENU_STYLE_CUM_FOURGRID: return func_menu_sub_list_form_create(); #if defined(TJD_GUI_Sudoku_Show) || defined(TJD_GUI_Sudoku_hrz_Show) case MENU_STYLE_SUDOKU: case MENU_STYLE_SUDOKU_HRZ: return func_menu_sub_sudoku_form_create(); #endif case MENU_STYLE_GRID: case MENU_STYLE_CUM_GRID: return func_menu_sub_grid_form_create(); #if defined(TJD_GUI_Disk_Show) case MENU_STYLE_DISK: return func_menu_sub_disk_form_create(); #endif case MENU_STYLE_RING: return func_menu_sub_ring_form_create(); case MENU_STYLE_ROLLER: return func_menu_sub_roller_form_create(); case MENU_STYLE_KALE: return func_menu_sub_kale_form_create(); #if defined(TJD_GUI_Skyrer_Show) case MENU_STYLE_SKYRER: return func_menu_sub_skyrer_form_create(); #endif case MENU_STYLE_CUM_SUDOKU: return func_menu_sub_cum_sudoku_form_create(); case MENU_STYLE_CUM_HEXAGON: return func_menu_sub_hexagon_form_create(); default: halt(HALT_FUNC_MENU_SUBSTA); return NULL; } } //切换菜单样式 static void func_menu_switch_style(void) { func_cb.menu_idx = 0; func_switching(FUNC_SWITCH_FADE_OUT | FUNC_SWITCH_AUTO, NULL); func_cb.flag_animation = true; SysVariable.menu_style ++; sys_cb.motor_flag = 1; set_func_motor(80, 2, 2, 1); if(SysVariable.menu_style > MENU_STYLE_KALE) SysVariable.menu_style = MENU_STYLE_HONEYCOMB; } //菜单样式公用消息 void func_menu_sub_message(size_msg_t msg) { switch (msg) { case KU_BACK: //不响应 break; case KD_BACK: if (tick_check_expire(func_cb.enter_tick, TICK_IGNORE_KEY)) { #ifdef MENU_CHANGE_STYLE_DRUM func_switch_to(FUNC_STYLE, FUNC_SWITCH_LR_ZOOM_RIGHT | FUNC_SWITCH_AUTO); #else func_menu_switch_style(); #endif } break; default: func_message(msg); break; } } //退出菜单样式 void func_menu_sub_exit(void) { compo_form_destroy(func_cb.frm_main); func_free(func_cb.f_cb); func_cb.frm_main = NULL; func_cb.f_cb = NULL; } //进入主菜单功能 static void func_menu_enter(void) { #if defined(TJD_MENU_ADD_BACKGROUND) sys_cb.switch_flag = false; #endif } //退出主菜单功能 static void func_menu_exit(void) { func_cb.last = FUNC_MENU; } //主菜单功能 void func_menu(void) { printf("%s\n", __func__); func_menu_enter(); while (func_cb.sta == FUNC_MENU) { switch (SysVariable.menu_style) { case MENU_STYLE_HONEYCOMB: func_menu_sub_honeycomb(); break; case MENU_STYLE_WATERFALL: func_menu_sub_waterfall(); break; case MENU_STYLE_LIST: case MENU_STYLE_CUM_FOURGRID: func_menu_sub_list(); break; #if defined(TJD_GUI_Sudoku_Show) || defined(TJD_GUI_Sudoku_hrz_Show) case MENU_STYLE_SUDOKU: case MENU_STYLE_SUDOKU_HRZ: func_menu_sub_sudoku(); break; #endif case MENU_STYLE_GRID: case MENU_STYLE_CUM_GRID: func_menu_sub_grid(); break; #if defined(TJD_GUI_Disk_Show) case MENU_STYLE_DISK: func_menu_sub_disk(); break; #endif case MENU_STYLE_RING: func_menu_sub_ring(); break; case MENU_STYLE_ROLLER: func_menu_sub_roller(); break; case MENU_STYLE_KALE: func_menu_sub_kale(); break; #if defined(TJD_GUI_Skyrer_Show) case MENU_STYLE_SKYRER: func_menu_sub_skyrer(); break; #endif case MENU_STYLE_CUM_SUDOKU: func_menu_sub_cum_sudoku(); break; case MENU_STYLE_CUM_HEXAGON: func_menu_sub_hexagon(); break; default: halt(HALT_FUNC_MENU_SUBSTA); break; } } func_menu_exit(); }