From: CCC <2393524978@qq.com> Date: Fri, 22 Sep 2023 07:53:11 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=6a6c245c1560fa6691c3fba2c23bacec03ad9da3;p=mirrors%2FASR3603_Z5.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/CMakeLists.txt b/2.sdk/sdk/gui/lv_watch/CMakeLists.txt index 3b2a6ffb..b28c99b4 100644 --- a/2.sdk/sdk/gui/lv_watch/CMakeLists.txt +++ b/2.sdk/sdk/gui/lv_watch/CMakeLists.txt @@ -219,6 +219,7 @@ set(lv_watch_sources lv_apps/health_measure/health_heart_rate.c lv_apps/health_measure/health_spo2.c lv_apps/health_measure/health_temperature.c + lv_apps/setting/setting_main_menu_switch.c ) set(lv_watch_font_sources diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c index 201202bd..de0b18ae 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c @@ -873,6 +873,9 @@ const void * lang_text_ch[] = { "删除选中", // WATCH_TEXT_ID_DELETE_CURRENT_ITEM, "删除全部", // WATCH_TEXT_ID_DELETE_ALL_ITEM, "无网络", // WATCH_TEXT_ID_NO_NETWORK, + "主题切换", // WATCH_TEXT_ID_MAIN_MENU_SWITCH, + "大图标", // WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE, + "小图标", // WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST, //CHENG_MODIFY diff --git a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c index e05a7a5d..0ee7c36f 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c +++ b/2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c @@ -873,6 +873,9 @@ const void * lang_text_en[] = { "Delete current", // WATCH_TEXT_ID_DELETE_CURRENT_ITEM, "Delete all", // WATCH_TEXT_ID_DELETE_ALL_ITEM, "No SIM or no network", // WATCH_TEXT_ID_NO_NETWORK, + "Theme switch", // WATCH_TEXT_ID_MAIN_MENU_SWITCH, + "Big icon", // WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE, + "Small icon", // WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST, //CHENG_MODIFY diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h index 6e4a5193..c3cb9c92 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h @@ -45,6 +45,8 @@ extern "C" { #define NV_SECTION_UI_DO_NOT_DISTURB_LEN (sizeof(nv_watch_do_not_disturb_t)) #define NV_SECTION_UI_DIAL_PAD_SWITCH_LEN (sizeof(nv_watch_switch_t)) #define NV_SECTION_UI_WHITE_LIST_SWITCH_LEN (sizeof(nv_watch_switch_t)) +#define NV_SECTION_UI_MAIN_MENU_STYLE_LEN (sizeof(nv_watch_main_menu_style_t)) + //#endif @@ -137,6 +139,8 @@ typedef lv_fs_dir_t ui_dir_t; #define NV_SECTION_UI_DO_NOT_DISTURB_FILE "ui_do_not_disturb.nv" #define NV_SECTION_UI_DIAL_PAD_SWITCH_FILE "ui_dial_pad_switch.nv" #define NV_SECTION_UI_WHITE_LIST_SWITCH_FILE "ui_white_list_switch.nv" +#define NV_SECTION_UI_MAIN_MENU_STYLE_FILE "ui_main_menu_style.nv" + //#endif diff --git a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c index fdd66aa4..91f87ed7 100644 --- a/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c +++ b/2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c @@ -93,6 +93,8 @@ uint32_t UI_NV_Get_Section_Len(NV_UI_SECTION_ID SectionId) return (NV_SECTION_LEN(NV_SECTION_UI_DIAL_PAD_SWITCH)); case NV_SECTION_UI_WHITE_LIST_SWITCH: return (NV_SECTION_LEN(NV_SECTION_UI_WHITE_LIST_SWITCH)); + case NV_SECTION_UI_MAIN_MENU_STYLE: + return (NV_SECTION_LEN(NV_SECTION_UI_MAIN_MENU_STYLE)); //#endif @@ -187,6 +189,8 @@ char * UI_NV_Get_Section_path(NV_UI_SECTION_ID SectionId) return (NV_SECTION_FILE_PATH(NV_SECTION_UI_DIAL_PAD_SWITCH)); case NV_SECTION_UI_WHITE_LIST_SWITCH: return (NV_SECTION_FILE_PATH(NV_SECTION_UI_WHITE_LIST_SWITCH)); + case NV_SECTION_UI_MAIN_MENU_STYLE: + return (NV_SECTION_FILE_PATH(NV_SECTION_UI_MAIN_MENU_STYLE)); //#endif @@ -237,6 +241,7 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) nv_watch_do_not_disturb_t * do_not_disturb; nv_watch_switch_t * dial_pad_switch; nv_watch_switch_t * white_list_switch; + nv_watch_main_menu_style_t * main_menu_style; //#endif @@ -452,6 +457,14 @@ uint8_t UI_NV_Reset_Default(NV_UI_SECTION_ID SectionId) memset(white_list_switch, 0x0, SectionLen); TempData = (char *)white_list_switch; break; + + case NV_SECTION_UI_MAIN_MENU_STYLE: + main_menu_style = lv_mem_alloc(SectionLen); + memset(main_menu_style, 0x0, SectionLen); + mmi_main_menu_style_nv_default(main_menu_style); + TempData = (char *)main_menu_style; + break; + //#endif diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h index 5c7220f3..ae91c2d5 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h @@ -259,6 +259,12 @@ typedef struct uint8_t switch_flag; } __packed nv_watch_switch_t; +typedef struct +{ + uint8_t style_value; +} __packed nv_watch_main_menu_style_t; + + //#endif @@ -451,6 +457,7 @@ enum NV_SECTION_UI_DO_NOT_DISTURB, // nv_watch_do_not_disturb_t NV_SECTION_UI_DIAL_PAD_SWITCH, // nv_watch_switch_t NV_SECTION_UI_WHITE_LIST_SWITCH, // nv_watch_switch_t + NV_SECTION_UI_MAIN_MENU_STYLE, // nv_watch_main_menu_style_t //#endif diff --git a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h index 354def9d..53376f78 100644 --- a/2.sdk/sdk/gui/lv_watch/include/ui_textid.h +++ b/2.sdk/sdk/gui/lv_watch/include/ui_textid.h @@ -880,6 +880,9 @@ enum WATCH_TEXT_ID_DELETE_CURRENT_ITEM, /* "删除选中" "Delete current" */ WATCH_TEXT_ID_DELETE_ALL_ITEM, /* "删除全部" "Delete all" */ WATCH_TEXT_ID_NO_NETWORK, /* "无网络" "No SIM or no network" */ + WATCH_TEXT_ID_MAIN_MENU_SWITCH, /* "主题切换" "Theme switch" */ + WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE, /* "大图标" "Big icon" */ + WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST, /* "小图标" "Small icon" */ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c index 6dab706d..9364f4d0 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c @@ -494,6 +494,11 @@ static void launcher_tileview_leds_update(lv_obj_t * tileview) } else { lv_obj_set_hidden(ext->leds_content, false); } + + #ifdef __MMI_MAIN_MENU_SWITCH_MENU__ + //ext->show_leds_en = 0; + lv_obj_set_hidden(ext->leds_content, true); + #endif } for(uint8_t i = 0; i < tab_cnt; i++) { if(ext->leds[i] == NULL) continue; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c index a6b10c13..e539006a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c @@ -13,14 +13,482 @@ #include + +#ifdef __MMI_ZHSX_SUPPORT__ + +#include "primary_menu_data.c" + + +static watch_app_info_t * menu_app = NULL; +static uint8_t watch_menu_app_cnt = 0; +static nv_watch_main_menu_style_t s_main_menu_style = {0}; + + +void mmi_main_menu_style_nv_default(nv_watch_main_menu_style_t * data) +{ + data->style_value = MMI_MAIN_MENU_STYLE_DEFAULT; +} + +void mmi_main_menu_style_nv_read(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_main_menu_style_t); + + if(nv_data_length != UI_NV_Read_Req(NV_SECTION_UI_MAIN_MENU_STYLE, 0, nv_data_length, (uint8_t *)&s_main_menu_style)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv read fail\n", __FUNCTION__, __LINE__); + mmi_main_menu_style_nv_default(&s_main_menu_style); + } +} + +void mmi_main_menu_style_nv_write(void) +{ + uint32_t nv_data_length = sizeof(nv_watch_main_menu_style_t); + + if(nv_data_length != UI_NV_Write_Req(NV_SECTION_UI_MAIN_MENU_STYLE, 0, nv_data_length, (uint8_t *)&s_main_menu_style)) + { + printf("[@CHENG_DEBUG][%s][%d]: nv write fail\n", __FUNCTION__, __LINE__); + } +} + +MMI_MAIN_MENU_STYLE_E mmi_main_menu_style_get(void) +{ + return s_main_menu_style.style_value; +} + +void mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_E style_value) +{ + s_main_menu_style.style_value = style_value; + mmi_main_menu_style_nv_write(); +} + +uint8_t mmi_main_menu_app_num_pre_tab_get(void) +{ + uint8_t num = 0; + MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get(); + + switch(style_value) + { + case MMI_MAIN_MENU_STYLE_FOUR_GRID: + num = 4; + break; + + case MMI_MAIN_MENU_STYLE_ONE_PAGE: + case MMI_MAIN_MENU_STYLE_LIST: + num = 1; + break; + + default: + printf("[@CHENG_DEBUG][%s][%d]: should not run to here\n", __FUNCTION__, __LINE__); + break; + } + + printf("[@CHENG_DEBUG][%s][%d]: num=%d\n", __FUNCTION__, __LINE__, num); + return num; +} + + +void primary_menu_init(void) +{ + uint8_t i = 0; + MMI_MAIN_MENU_STYLE_E style_value = MMI_MAIN_MENU_STYLE_MAX; + + watch_menu_app_cnt = 0; + mmi_main_menu_style_nv_read(); + + style_value = mmi_main_menu_style_get(); + printf("[@CHENG_DEBUG][%s][%d]: style_value=%d\n", __FUNCTION__, __LINE__, style_value); + switch(style_value) + { + case MMI_MAIN_MENU_STYLE_FOUR_GRID: + #ifdef __MMI_MAIN_MENU_FOUR_GRID_STYLE__ + watch_menu_app_cnt = (sizeof(s_main_menu_four_grid) / sizeof(watch_app_info_t)); + if(watch_menu_app_cnt > WATCH_APP_MAX_COUNT) + { + printf("[@CHENG_DEBUG][%s][%d]: primary menu count %d should not greater than %d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt, WATCH_APP_MAX_COUNT); + return; + } + printf("[@CHENG_DEBUG][%s][%d]: menu count=%d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt); + menu_app = (watch_app_info_t *)lv_mem_alloc(sizeof(watch_app_info_t) * watch_menu_app_cnt); + for(i = 0; i < watch_menu_app_cnt; i++) + { + memcpy(&menu_app[i], &(s_main_menu_four_grid[i]), sizeof(watch_app_info_t)); + } + #endif + break; + + case MMI_MAIN_MENU_STYLE_ONE_PAGE: + #ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__ + watch_menu_app_cnt = (sizeof(s_main_menu_one_page) / sizeof(watch_app_info_t)); + if(watch_menu_app_cnt > WATCH_APP_MAX_COUNT) + { + printf("[@CHENG_DEBUG][%s][%d]: primary menu count %d should not greater than %d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt, WATCH_APP_MAX_COUNT); + return; + } + printf("[@CHENG_DEBUG][%s][%d]: menu count=%d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt); + menu_app = (watch_app_info_t *)lv_mem_alloc(sizeof(watch_app_info_t) * watch_menu_app_cnt); + for(i = 0; i < watch_menu_app_cnt; i++) + { + memcpy(&menu_app[i], &(s_main_menu_one_page[i]), sizeof(watch_app_info_t)); + } + #endif + break; + + case MMI_MAIN_MENU_STYLE_LIST: + #ifdef __MMI_MAIN_MENU_LIST_STYLE__ + watch_menu_app_cnt = 1; + if(watch_menu_app_cnt > WATCH_APP_MAX_COUNT) + { + printf("[@CHENG_DEBUG][%s][%d]: primary menu count %d should not greater than %d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt, WATCH_APP_MAX_COUNT); + return; + } + printf("[@CHENG_DEBUG][%s][%d]: menu count=%d\n", __FUNCTION__, __LINE__, watch_menu_app_cnt); + menu_app = (watch_app_info_t *)lv_mem_alloc(sizeof(watch_app_info_t) * watch_menu_app_cnt); + // do nothing + // + #endif + break; + + default: + printf("[@CHENG_DEBUG][%s][%d]: should not run to here\n", __FUNCTION__, __LINE__); + break; + } +} + +void primary_menu_destroy(void) +{ + if(menu_app != NULL) + { + lv_mem_free(menu_app); + menu_app = NULL; + } + watch_menu_app_cnt = 0; +} + +#ifdef __MMI_MAIN_MENU_FOUR_GRID_STYLE__ +static lv_obj_t * mmi_main_menu_style_four_grid_display(lv_obj_t * tab, int8_t btn_id, void * btn_src, watchLangTxtId_t txtId, lv_event_cb_t event_cb) +{ + lv_obj_t * cont = lv_obj_get_child(tab, NULL); + LV_ASSERT_MEM(cont); + if(cont == NULL) + return NULL; + + lv_obj_t * btn; + int8_t i = btn_id % mmi_main_menu_app_num_pre_tab_get(); + + btn = lv_imgbtn_create(cont, NULL); + lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, btn_src); + lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, btn_src); + lv_btn_set_checkable(btn, false); + + lv_obj_set_event_cb(btn, event_cb); + lv_tileview_add_element(lv_obj_get_parent(tab), btn); + + lv_obj_t * label = lv_label_create(cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font20); + lv_label_set_long_mode(label, LV_LABEL_LONG_DOT); + lv_obj_set_size(label, 100, 30); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label, txtId); + lv_obj_set_click(label, false); + +#if USE_LV_WATCH_UI_360_360 != 0 + if(i == 0) { + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_LEFT, 30*2, 20*2); + } else if(i == 1) { + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_RIGHT, -30*2, 20*2); + } else if(i == 2) { + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 30*2, -45*2); + } else if(i == 3) { + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -30*2, -45*2); + } +#elif USE_LV_WATCH_UI_240_320 != 0 + if(0 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_LEFT, 20, 40 - 15); + else if(1 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_RIGHT, -20, 40 - 15); + else if(2 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 20, -45 - 18); + else if(3 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -45 - 18); +#elif USE_LV_WATCH_UI_240_280 + if(0 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_LEFT, 23, 40 - 15); + else if(1 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_RIGHT, -23, 40 - 15); + else if(2 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 23, -45 - 8); + else if(3 == i) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -23, -45 - 8); +#else + if(i == 0) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_LEFT, 20, 40); + else if(i == 1) + lv_obj_align(btn, cont, LV_ALIGN_IN_TOP_RIGHT, -20, 40); + else if(i == 2) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_LEFT, 20, -45); + else if(i == 3) + lv_obj_align(btn, cont, LV_ALIGN_IN_BOTTOM_RIGHT, -20, -45); + +#endif + + lv_obj_align(label, btn, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); + + return btn; +} +#endif + +#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__ +static lv_obj_t * mmi_main_menu_style_one_page_display(lv_obj_t * tab, void * btn_src, watchLangTxtId_t txtId, lv_event_cb_t event_cb) +{ + lv_obj_t * cont = lv_obj_get_child(tab, NULL); + LV_ASSERT_MEM(cont); + if(cont == NULL) + return NULL; + + lv_obj_t * btn; + + btn = lv_imgbtn_create(cont, NULL); + lv_imgbtn_set_src(btn, LV_BTN_STATE_RELEASED, btn_src); + lv_imgbtn_set_src(btn, LV_BTN_STATE_PRESSED, btn_src); + lv_btn_set_checkable(btn, false); + lv_obj_set_event_cb(btn, event_cb); + lv_tileview_add_element(lv_obj_get_parent(tab), btn); + lv_obj_align(btn, cont, LV_ALIGN_CENTER, 0, 0); + + lv_obj_t * label = lv_label_create(cont, NULL); + lv_obj_add_style(label, LV_LABEL_PART_MAIN, &lv_watch_font30); + lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL_CIRC); + lv_obj_set_size(label, LV_HOR_RES / 2, 40); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); + lv_label_set_text_id(label, txtId); + lv_obj_set_click(label, false); + lv_obj_align(label, cont, LV_ALIGN_IN_BOTTOM_MID, 0, -20); + + return btn; +} +#endif + +#ifdef __MMI_MAIN_MENU_LIST_STYLE__ +static lv_obj_t * mmi_main_menu_style_list_display(lv_obj_t * tab) +{ + lv_obj_t * cont = lv_obj_get_child(tab, NULL); + LV_ASSERT_MEM(cont); + if(cont == NULL) + return NULL; + + lv_obj_t * list; + + list = lv_list_create(cont, NULL); + lv_obj_add_style(list, LV_LIST_PART_BG, &lv_watch_style_transp); + //lv_obj_set_style_local_pad_top(list, LV_LIST_PART_BG, LV_STATE_DEFAULT, 0); + //lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_BG, LV_STATE_DEFAULT, 0); + //lv_obj_set_style_local_pad_left(list, LV_LIST_PART_BG, LV_STATE_DEFAULT, 0); + //lv_obj_set_style_local_pad_right(list, LV_LIST_PART_BG, LV_STATE_DEFAULT, 0); + //lv_obj_set_style_local_pad_inner(list, LV_LIST_PART_BG, LV_STATE_DEFAULT, 0); + lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_size(list, lv_obj_get_width(cont) - 35 - 10, lv_obj_get_height(cont) - 20); + lv_obj_align(list, cont, LV_ALIGN_IN_TOP_LEFT, 35, 10); + lv_tileview_add_element(lv_obj_get_parent(tab), list); + //lv_watch_obj_add_element(lv_page_get_scrl(list)); + + uint8_t i = 0; + uint8_t menu_num = (sizeof(s_main_menu_list) / sizeof(watch_app_info_t)); + lv_obj_t * btn; + lv_obj_t * content; + lv_obj_t * img; + lv_obj_t *label; + + for(i = 0; i < menu_num; i++) + { + #if 0 + btn = lv_list_add_btn(list, s_main_menu_list[i].img_src, (char *)lv_lang_get_text(s_main_menu_list[i].txtId)); + lv_obj_set_event_cb(btn, s_main_menu_list[i].event_cb); + lv_watch_obj_add_element(btn); + + lv_obj_set_style_local_pad_top(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_bottom(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_left(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); // 15 + lv_obj_set_style_local_pad_right(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); // 15 + lv_obj_set_style_local_pad_inner(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 10); + + lv_obj_t *label = lv_obj_get_child(btn, NULL); + lv_label_set_long_mode(label, LV_LABEL_LONG_EXPAND); + //lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); + lv_label_set_text_id(label, s_main_menu_list[i].txtId); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font30); + #else + btn = lv_list_add_btn(list, NULL, NULL); + lv_cont_set_layout(btn, LV_LAYOUT_OFF); + lv_obj_set_size(btn, lv_obj_get_width(list), 78); + lv_obj_set_style_local_pad_top(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_bottom(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_left(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); // 15 + lv_obj_set_style_local_pad_right(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 0); // 15 + lv_obj_set_style_local_pad_inner(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 10); + + lv_obj_set_click(btn, true); + lv_obj_set_event_cb(btn, s_main_menu_list[i].event_cb); + lv_page_glue_obj(btn, true); + lv_watch_obj_add_element(btn); + + img = lv_img_create(btn, NULL); + lv_img_set_src(img, s_main_menu_list[i].img_src); + lv_obj_align(img, btn, LV_ALIGN_IN_LEFT_MID, 0, 0); + + label = lv_label_create(btn, NULL); + lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_watch_font30); + lv_label_set_long_mode(label, LV_LABEL_LONG_SROLL); + lv_obj_set_width(label, lv_obj_get_width(btn) - 70); + lv_label_set_text_id(label, s_main_menu_list[i].txtId); + lv_obj_align(label, img, LV_ALIGN_OUT_RIGHT_MID, 10, 0); + #endif + } + + return list; +} +#endif + +static lv_obj_t * primary_menu_add_btn(lv_obj_t * tab, int8_t btn_id, void * btn_src, watchLangTxtId_t txtId, lv_event_cb_t event_cb) +{ + lv_obj_t * btn; + MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get(); + switch(style_value) + { + case MMI_MAIN_MENU_STYLE_FOUR_GRID: + #ifdef __MMI_MAIN_MENU_FOUR_GRID_STYLE__ + btn = mmi_main_menu_style_four_grid_display(tab, btn_id, btn_src, txtId, event_cb); + #endif + break; + + case MMI_MAIN_MENU_STYLE_ONE_PAGE: + #ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__ + btn = mmi_main_menu_style_one_page_display(tab, btn_src, txtId, event_cb); + #endif + break; + + case MMI_MAIN_MENU_STYLE_LIST: + #ifdef __MMI_MAIN_MENU_LIST_STYLE__ + btn = mmi_main_menu_style_list_display(tab); + #endif + break; + + default: + printf("[@CHENG_DEBUG][%s][%d]: should not run to here\n", __FUNCTION__, __LINE__); + break; + } + + return btn; +} + +static lv_obj_t * menu_create(lv_obj_t * tileview, lv_obj_t * ancient_tab, uint16_t id) +{ + if(!tileview) tileview = lv_scr_act(); + lv_obj_t * tab; + + if(ancient_tab == NULL) { + /* desktop's signal support switch up or down view, all primary menu must be based on it */ + tab = launcher_tileview_add_tile(tileview, id); + } else { + //printf("menu_create: lv_tabview_clean ancient_tab=%p\n", ancient_tab); + lv_tabview_clean_tab(ancient_tab); + tab = ancient_tab; + } + + LV_ASSERT_MEM(tab); + if(tab == NULL) return NULL; + + lv_obj_t * cont = lv_cont_create(tab, NULL); + LV_ASSERT_MEM(cont); + if(cont == NULL) return NULL; + lv_cont_set_layout(cont, LV_LAYOUT_OFF); + lv_obj_add_style(cont, LV_CONT_PART_MAIN, &lv_style_transp); + lv_obj_set_width(cont, LV_HOR_RES); + lv_obj_set_height(cont, LV_VER_RES); + lv_tileview_add_element(tileview, cont); + lv_obj_set_click(cont, false); + + return tab; +} + +lv_obj_t * primary_menu_create_all(lv_obj_t * tabview) +{ + return primary_menu_create(tabview, true, -1); +} + +lv_obj_t * primary_menu_create_one(lv_obj_t * tabview, int8_t menu_id) +{ + return primary_menu_create(tabview, false, menu_id); +} + +uint8_t primary_menu_get_menu_cnt(void) +{ + uint8_t app_num_pre_tab = mmi_main_menu_app_num_pre_tab_get(); + + return (watch_menu_app_cnt + (app_num_pre_tab - 1)) / app_num_pre_tab; +} + +lv_obj_t * primary_menu_create(lv_obj_t * tileview, bool create_all, int8_t menu_id) +{ + lv_obj_t * tab = NULL; + uint8_t app_num_pre_tab = mmi_main_menu_app_num_pre_tab_get(); + + /* static add all menus, it need more memory space */ + if(create_all) { + for(int8_t i = 0; i < watch_menu_app_cnt; i++) { + //printf("app[%d].txtId = %s\n", i, app[i].txtId); + int8_t j = i % app_num_pre_tab; + int8_t menu_index = i / app_num_pre_tab; + int8_t tab_index = 0; + if(j == 0) { + /* new a tab */ + if(LAUNCHER_HOR_SLIDING_LOOP_MODE_ENABLE) + tab_index = menu_index + 2; + else + tab_index = menu_index + 1; + tab = menu_create(tileview, NULL, tab_index); + LV_ASSERT_MEM(tab); + if(tab == NULL) return NULL; + } + + primary_menu_add_btn(tab, j, (void *)menu_app[i].img_src, menu_app[i].txtId, menu_app[i].event_cb); + } + return tab; + } + + if(menu_id >= 0) { + /* dymatic add menu, it save memory space */ + for(int8_t i = 0; i < watch_menu_app_cnt; i++) { + //printf("app[%d].english = %s\n", i, app[i].english); + int8_t j = i % app_num_pre_tab; + int8_t menu_index = i / app_num_pre_tab; + if(menu_index < menu_id) continue; + if(menu_index > menu_id) break; + + if(j == 0) { + /* new a tab */ + tab = menu_create(tileview, NULL, 0); + LV_ASSERT_MEM(tab); + if(tab == NULL) return NULL; + } + primary_menu_add_btn(tab, j, (void *)menu_app[i].img_src, menu_app[i].txtId, menu_app[i].event_cb); + } + } + + return tab; +} + + + +#else // __MMI_ZHSX_SUPPORT__ + + + /********************* * DEFINES *********************/ -#ifdef __MMI_ZHSX_SUPPORT_PAGE_MAIN_MENU__ -#define PRIMARY_MENU_APP_NUM_PRE_TAB (1) -#else + #define PRIMARY_MENU_APP_NUM_PRE_TAB (4) -#endif + /********************** * TYPEDEFS @@ -77,14 +545,6 @@ void exercise_record_create_event_cb(lv_obj_t * btn, lv_event_t event) static watch_app_info_t * menu_app = NULL; static uint8_t watch_menu_app_cnt = 0; -#ifdef __MMI_ZHSX_SUPPORT__ - -#include "primary_menu_data.c" - -//count should not greater than WATCH_APP_MAX_COUNT !! -#define PRIMARY_MENU_COUNT (sizeof(s_primary_grid_menu) / sizeof(watch_app_info_t)) - -#else /*__MMI_ZHSX_SUPPORT__*/ static watch_app_info_t app[] = { { ICON_SETTING, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb }, @@ -149,7 +609,6 @@ static watch_app_info_t app[] = { #endif }; -#endif /*__MMI_ZHSX_SUPPORT__*/ /********************** @@ -176,19 +635,14 @@ void primary_menu_init(void) primary_set_default_menu(&launcher_info); } menu_app = (watch_app_info_t *)lv_mem_alloc(sizeof(watch_app_info_t) * watch_menu_app_cnt); -#ifdef __MMI_ZHSX_SUPPORT__ - for(i = 0; i < watch_menu_app_cnt; i++) - { - memcpy(&menu_app[i], &(s_primary_grid_menu[i]), sizeof(watch_app_info_t)); - } -#else + for(i = 0; i < WATCH_APP_MAX_COUNT; i++) { if(launcher_info.menu_app_show[i] == 1) { memcpy(&menu_app[j], &app[i], sizeof(watch_app_info_t)); j++; } } -#endif + } void primary_menu_destroy(void) @@ -340,22 +794,6 @@ lv_obj_t * primary_menu_create(lv_obj_t * tileview, bool create_all, int8_t menu **********************/ static void primary_set_default_menu(nv_watch_launcher_t * launcher_info) { -#ifdef __MMI_ZHSX_SUPPORT__ - if(PRIMARY_MENU_COUNT > WATCH_APP_MAX_COUNT) - { - printf("[@CHENG_DEBUG][%s][%d]: primary menu count %d should not greater than %d\n", __FUNCTION__, __LINE__, PRIMARY_MENU_COUNT, WATCH_APP_MAX_COUNT); - return; - } - - uint8_t i = 0; - for(i = 0; i < PRIMARY_MENU_COUNT; i++) - { - launcher_info->menu_app_show[i] = 1; - } - watch_menu_app_cnt = PRIMARY_MENU_COUNT; - -#else /*__MMI_ZHSX_SUPPORT__*/ - launcher_info->menu_app_show[APP_SETTING] = 1; launcher_info->menu_app_show[APP_WECHAT] = 1; launcher_info->menu_app_show[APP_PHONEBOOK] = 1; @@ -418,7 +856,6 @@ static void primary_set_default_menu(nv_watch_launcher_t * launcher_info) watch_menu_app_cnt++; } } -#endif /*__MMI_ZHSX_SUPPORT__*/ UI_NV_Write_Req(NV_SECTION_UI_LAUNCHER, 0, sizeof(nv_watch_launcher_t), (uint8_t *)launcher_info); printf("%s: add default show app cnt %d\n", __FUNCTION__, watch_menu_app_cnt); @@ -429,7 +866,6 @@ static lv_obj_t * menu_add_btn(lv_obj_t * tab, int8_t menu_index, int8_t btn_id, { int8_t i = btn_id % PRIMARY_MENU_APP_NUM_PRE_TAB; - lv_obj_t * cont = lv_obj_get_child(tab, NULL); LV_ASSERT_MEM(cont); if(cont == NULL) return NULL; @@ -550,4 +986,10 @@ static lv_obj_t * menu_create(lv_obj_t * tileview, lv_obj_t * ancient_tab, uint1 } #endif + + + +#endif + + #endif /*USE_LV_WATCH_PRIMARY_MENU*/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h index 4792dd6f..80be3348 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h @@ -98,6 +98,26 @@ typedef enum #endif } watch_app_type_t; + + +#ifdef __MMI_ZHSX_SUPPORT__ +typedef enum +{ + MMI_MAIN_MENU_STYLE_FOUR_GRID, + MMI_MAIN_MENU_STYLE_ONE_PAGE, + MMI_MAIN_MENU_STYLE_LIST, + + MMI_MAIN_MENU_STYLE_MAX, +}MMI_MAIN_MENU_STYLE_E; + + + +void mmi_main_menu_style_nv_default(nv_watch_main_menu_style_t * data); +MMI_MAIN_MENU_STYLE_E mmi_main_menu_style_get(void); +void mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_E style_value); + +#endif + /********************** * GLOBAL PROTOTYPES **********************/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c index 02ec203a..1928ad59 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c @@ -10,7 +10,9 @@ //count need not greater than WATCH_APP_MAX_COUNT !! -static watch_app_info_t s_primary_grid_menu[] = +// four grid +#ifdef __MMI_MAIN_MENU_FOUR_GRID_STYLE__ +static watch_app_info_t s_main_menu_four_grid[] = { { ICON_PHONEBOOK, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb}, #if USE_LV_WATCH_SMS_MSG != 0 @@ -32,8 +34,10 @@ static watch_app_info_t s_primary_grid_menu[] = { ICON_WECHAT, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb }, #endif - { ICON_CAMERA, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb }, //test code +#if USE_LV_WATCH_CAMERA != 0 + { ICON_CAMERA, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb }, { ICON_ALBUM, WATCH_TEXT_ID_ALBUM, album_create_event_cb }, +#endif #if USE_LV_WATCH_ALIPAY != 0 { ICON_ALIPAY, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb }, #endif @@ -41,9 +45,6 @@ static watch_app_info_t s_primary_grid_menu[] = { ICON_VIDEOCALL, WATCH_TEXT_ID_VIDEOCALL, video_call_create_event_cb }, #endif -#if USE_LV_WATCH_AUDIO_PLAYER != 0 - { ICON_MUSIC, WATCH_TEXT_ID_AUDIO_PLAYER, audio_player_create_event_cb }, -#endif { ICON_ALARM, WATCH_TEXT_ID_ALARM, alarm_create_event_cb }, { ICON_STOPWATCH, WATCH_TEXT_ID_STOPWATCH, stopwatch_create_event_cb }, { ICON_TIMER, WATCH_TEXT_ID_TIMER, timer_create_event_cb }, @@ -52,6 +53,141 @@ static watch_app_info_t s_primary_grid_menu[] = { ICON_CALENDAR, WATCH_TEXT_ID_CALENDER, calendar_create_event_cb }, { ICON_SETTING, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb }, }; +#endif + + + +// one page +#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__ + +#ifdef MMI_PROJECT_Z5_D12 +static watch_app_info_t s_main_menu_one_page[] = +{ + { ICON_PHONEBOOK_ONE_PAGE, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb}, +#if USE_LV_WATCH_SMS_MSG != 0 + { ICON_SMS_MSG_ONE_PAGE, WATCH_TEXT_ID_SMS_MSG, sms_msg_create_event_cb}, +#endif + { ICON_DIALPAD_ONE_PAGE, WATCH_TEXT_ID_DIALPAD, dialpad_create_event_cb }, + +#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__ + { ICON_HEART_RATE_ONE_PAGE, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__ + { ICON_SPO2_ONE_PAGE, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ + { ICON_TEMPERATURE_ONE_PAGE, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, +#endif +#ifdef __MMI_WECHAT_SUPPORT__ + { ICON_WECHAT_ONE_PAGE, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb }, +#endif + +#if USE_LV_WATCH_CAMERA != 0 + { ICON_CAMERA_ONE_PAGE, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb }, + { ICON_ALBUM_ONE_PAGE, WATCH_TEXT_ID_ALBUM, album_create_event_cb }, +#endif +#if USE_LV_WATCH_ALIPAY != 0 + { ICON_ALIPAY_ONE_PAGE, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb }, +#endif +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + { ICON_VIDEOCALL_ONE_PAGE, WATCH_TEXT_ID_VIDEOCALL, video_call_create_event_cb }, +#endif + + { ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb }, +}; + +#else + +static watch_app_info_t s_main_menu_one_page[] = +{ + { ICON_PHONEBOOK_ONE_PAGE, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb}, +#if USE_LV_WATCH_SMS_MSG != 0 + { ICON_SMS_MSG_ONE_PAGE, WATCH_TEXT_ID_SMS_MSG, sms_msg_create_event_cb}, +#endif + { ICON_DIALPAD_ONE_PAGE, WATCH_TEXT_ID_DIALPAD, dialpad_create_event_cb }, + { ICON_CALLLOG_ONE_PAGE, WATCH_TEXT_ID_CALL_LOG, call_log_create_event_cb }, + +#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__ + { ICON_HEART_RATE_ONE_PAGE, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__ + { ICON_SPO2_ONE_PAGE, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ + { ICON_TEMPERATURE_ONE_PAGE, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, +#endif +#ifdef __MMI_WECHAT_SUPPORT__ + { ICON_WECHAT_ONE_PAGE, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb }, +#endif + +#if USE_LV_WATCH_CAMERA != 0 + { ICON_CAMERA_ONE_PAGE, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb }, + { ICON_ALBUM_ONE_PAGE, WATCH_TEXT_ID_ALBUM, album_create_event_cb }, +#endif +#if USE_LV_WATCH_ALIPAY != 0 + { ICON_ALIPAY_ONE_PAGE, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb }, +#endif +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + { ICON_VIDEOCALL_ONE_PAGE, WATCH_TEXT_ID_VIDEOCALL, video_call_create_event_cb }, +#endif + + { ICON_ALARM_ONE_PAGE, WATCH_TEXT_ID_ALARM, alarm_create_event_cb }, + { ICON_STOPWATCH_ONE_PAGE, WATCH_TEXT_ID_STOPWATCH, stopwatch_create_event_cb }, + { ICON_TIMER_ONE_PAGE, WATCH_TEXT_ID_TIMER, timer_create_event_cb }, + + { ICON_CALCULATOR_ONE_PAGE, WATCH_TEXT_ID_CALCULATOR, calculator_create_event_cb }, + { ICON_CALENDAR_ONE_PAGE, WATCH_TEXT_ID_CALENDER, calendar_create_event_cb }, + { ICON_SETTING_ONE_PAGE, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb }, +}; +#endif +#endif + + + +// list +#ifdef __MMI_MAIN_MENU_LIST_STYLE__ + +static watch_app_info_t s_main_menu_list[] = +{ + { ICON_PHONEBOOK_LIST, WATCH_TEXT_ID_PHONEBOOK, phonebook_create_btn_event_cb}, +#if USE_LV_WATCH_SMS_MSG != 0 + { ICON_SMS_MSG_LIST, WATCH_TEXT_ID_SMS_MSG, sms_msg_create_event_cb}, +#endif + { ICON_DIALPAD_LIST, WATCH_TEXT_ID_DIALPAD, dialpad_create_event_cb }, + +#ifdef __MMI_HEALTH_MEASURE_HEART_SUPPORT__ + { ICON_HEART_RATE_LIST, WATCH_TEXT_ID_HEART_RATE, health_heart_rate_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_SPO2_SUPPORT__ + { ICON_SPO2_LIST, WATCH_TEXT_ID_SPO2, health_spo2_create_event_cb}, +#endif +#ifdef __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__ + { ICON_TEMPERATURE_LIST, WATCH_TEXT_ID_TEMPERATURE, health_temperature_create_event_cb}, +#endif +#ifdef __MMI_WECHAT_SUPPORT__ + { ICON_WECHAT_LIST, WATCH_TEXT_ID_WECHAT, wechat_create_event_cb }, +#endif + +#if USE_LV_WATCH_CAMERA != 0 + { ICON_CAMERA_LIST, WATCH_TEXT_ID_CAMERA, camera_create_btn_event_cb }, + { ICON_ALBUM_LIST, WATCH_TEXT_ID_ALBUM, album_create_event_cb }, +#endif +#if USE_LV_WATCH_ALIPAY != 0 + { ICON_ALIPAY_LIST, WATCH_TEXT_ID_ALIPAY, upay_create_event_cb }, +#endif +#ifdef __MMI_ZHSX_SUPPORT_VIDEO_CALL__ + { ICON_VIDEOCALL_LIST, WATCH_TEXT_ID_VIDEOCALL, video_call_create_event_cb }, +#endif + + { ICON_ALARM_LIST, WATCH_TEXT_ID_ALARM, alarm_create_event_cb }, + { ICON_STOPWATCH_LIST, WATCH_TEXT_ID_STOPWATCH, stopwatch_create_event_cb }, + { ICON_TIMER_LIST, WATCH_TEXT_ID_TIMER, timer_create_event_cb }, + + { ICON_SETTING_LIST, WATCH_TEXT_ID_SETTINGS, setting_create_event_cb }, +}; + +#endif + #endif /*__MMI_ZHSX_SUPPORT__*/ diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c index a8a96fef..9683a4fc 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c @@ -30,6 +30,31 @@ const struct { watchLangTxtId_t txtId; lv_event_cb_t event_cb; } settingList[] = { + +#ifdef __MMI_ZHSX_SUPPORT__ + + //{ ICON_SETTING_LANGUAGE, WATCH_TEXT_ID_LANGUAGE_SWITCH, language_create_btn_action }, + { ICON_SETTING_DAIL_FORMAT_SWITCH, WATCH_TEXT_ID_DAIL_REPLACE, dial_switch_create_btn_action }, +#ifdef __MMI_MAIN_MENU_SWITCH_MENU__ + { ICON_SETTING_MAIN_MENU_SWITCH, WATCH_TEXT_ID_MAIN_MENU_SWITCH, setting_main_menu_switch_create_event_cb }, +#endif + { ICON_SETTING_VOLUME, WATCH_TEXT_ID_VOLUME_ADJUST, setting_volume_create_btn_action }, + { ICON_SETTING_BRIGHTNESS, WATCH_TEXT_ID_BRIGHTNESS_ADJUST, setting_brightness_create_btn_action }, + { ICON_SETTING_DATETIME, WATCH_TEXT_ID_DATE_AND_TIME, setting_date_time_create_btn_action}, +#ifdef __MMI_APP_QRCODE_MENU_SUPPORT__ + { ICON_SETTING_APP_QRCODE, WATCH_TEXT_ID_APP_QRCODE, app_qrcode_create_event_cb }, +#endif +#if USE_LV_WATCH_QRCODE != 0 + { ICON_SETTING_QRCODE, WATCH_TEXT_ID_DEVICE_QRCODE, qrcode_create_event_cb }, +#endif + { ICON_SETTING_RESET, WATCH_TEXT_ID_RESTART_AND_RESET, restart_and_reset_create_btn_action }, +#if USE_LV_WATCH_SHUTDOWN != 0 + { ICON_SETTING_SHUTDOWN, WATCH_TEXT_ID_SHUTDOWN, shutdown_create_btn_action }, +#endif + { ICON_SETTING_ABOUT, WATCH_TEXT_ID_ABOUT_WATCH, setting_about_create_btn_action }, + +#else // __MMI_ZHSX_SUPPORT__ + #if USE_LV_BLUETOOTH != 0 { ICON_SETTING_BLUETOOTH, WATCH_TEXT_ID_BLUETOOTH, bluetooth_create_btn_action}, #endif @@ -96,6 +121,8 @@ const struct { #if USE_BT_SENSOR_HUB != 0 { ICON_SETTING_UPGRADE, WATCH_TEXT_ID_SH_UPGRADE, SensorHub_upgrade_create_event_cb}, #endif + +#endif // __MMI_ZHSX_SUPPORT__ }; /********************** diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h index de792325..8f8baa34 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h @@ -36,6 +36,8 @@ extern "C" { #include "setting_mobile_network.h" #include "setting_tab.h" #include "setting_search_switch.h" +#include "setting_main_menu_switch.h" + #if USE_LV_WATCH_SETTING != 0 diff --git a/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_activity_obj/lv_watch_activity_obj.c b/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_activity_obj/lv_watch_activity_obj.c index 750d7545..4951db6a 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_activity_obj/lv_watch_activity_obj.c +++ b/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_activity_obj/lv_watch_activity_obj.c @@ -81,6 +81,7 @@ lv_obj_t * lv_watch_get_activity_obj(lv_watch_Activity_Id_t actId) if(ext->actId == actId) { //printf("lv_watch_get_activity_obj, obj=%p, actId=%d\n", obj, actId); + //printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, ext->actId); return obj; } } diff --git a/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_list/lv_watch_list.c b/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_list/lv_watch_list.c index 47760800..cabceed5 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_list/lv_watch_list.c +++ b/2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_list/lv_watch_list.c @@ -105,16 +105,23 @@ lv_obj_t * lv_watch_list_create(lv_obj_t * activity_obj) /* update list style*/ lv_obj_add_style(list,LV_LIST_PART_BG, &lv_watch_style_transp); +#ifdef __MMI_ZHSX_SUPPORT__ + lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_OFF); +#else uint8_t pad_ver = 4; lv_obj_add_style(list, LV_LIST_PART_SCROLLABLE, &lv_watch_style_transp); lv_obj_set_style_local_pad_top(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, pad_ver); lv_obj_set_style_local_pad_bottom(list, LV_LIST_PART_SCROLLABLE, LV_STATE_DEFAULT, pad_ver); lv_list_set_scrollbar_mode(list, LV_SCROLLBAR_MODE_ON); +#endif lv_obj_set_width(list, lv_obj_get_width(content)); lv_coord_t height = lv_obj_get_height(content) - lv_obj_get_height(label_cont) ; //- pad_ver * 2; +#ifdef USE_LV_WATCH_UI_240_240_CIRCLE + height -= 35; +#endif lv_obj_set_height(list, height); return obj; @@ -152,11 +159,19 @@ lv_obj_t * lv_watch_list_add(lv_obj_t * obj, const void * img_src, watchLangTxtI lv_obj_set_event_cb(btn, rel_event_cb); lv_watch_obj_add_element(btn); +#ifdef USE_LV_WATCH_UI_240_240_CIRCLE + lv_obj_set_style_local_pad_top(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_bottom(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); + lv_obj_set_style_local_pad_left(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15+10); + lv_obj_set_style_local_pad_right(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15); + lv_obj_set_style_local_pad_inner(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 10); +#else lv_obj_set_style_local_pad_top(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); lv_obj_set_style_local_pad_bottom(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 6); lv_obj_set_style_local_pad_left(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15); lv_obj_set_style_local_pad_right(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 15); lv_obj_set_style_local_pad_inner(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, 10); +#endif //re-set long mode of btn label, otherwize the text will scroll lv_obj_t *label = lv_obj_get_child(btn, NULL); diff --git a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h index 16d69e93..29ff9b9b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_watch_res.h +++ b/2.sdk/sdk/gui/lv_watch/lv_watch_res.h @@ -46,6 +46,7 @@ LV_IMG_DECLARE(img_poweron_logo); #endif //primary_menu +#ifdef __MMI_MAIN_MENU_FOUR_GRID_STYLE__ #define ICON_SETTING "R:/png/primary_function/icon_settings.png" #define ICON_WECHAT "R:/png/primary_function/icon_wechat.png" #define ICON_CALLLOG "R:/png/primary_function/ICON_CALLLOG.png" @@ -55,28 +56,28 @@ LV_IMG_DECLARE(img_poweron_logo); //#define ICON_PRIMARY_QRCODES "R:/png/primary_function/icon_primary_qrcodes.png" #define ICON_STOPWATCH "R:/png/primary_function/icon_stopwatch.png" #define ICON_CALCULATOR "R:/png/primary_function/icon_calculator.png" -#if USE_LV_WATCH_EXERCISE != 0 -#define ICON_SPORT "R:/png/primary_function/icon_sport.png" -#endif +//#if USE_LV_WATCH_EXERCISE != 0 +//#define ICON_SPORT "R:/png/primary_function/icon_sport.png" +//#endif #define ICON_HEART_RATE "R:/png/primary_function/icon_heart_rate.png" #define ICON_VIDEOCALL "R:/png/primary_function/icon_videocall.png" //#define ICON_AIKNOWLEDGE "R:/png/primary_function/icon_aiknowledge.png" #define ICON_CALENDAR "R:/png/primary_function/icon_calendar.png" -#define ICON_CLEAR_RAM "R:/png/primary_function/icon_clear_ram.png" -#if USE_LV_WATCH_SPEECH_RECOG != 0 -#define ICON_ANSWEREDQUE "R:/png/primary_function/icon_answeredquestions.png" -#endif +//#define ICON_CLEAR_RAM "R:/png/primary_function/icon_clear_ram.png" +//#if USE_LV_WATCH_SPEECH_RECOG != 0 +//#define ICON_ANSWEREDQUE "R:/png/primary_function/icon_answeredquestions.png" +//#endif #define ICON_ALBUM "R:/png/primary_function/icon_album.png" //#define ICON_BLOODPRESSURE "R:/png/primary_function/icon_blood_pressure.png" //#define ICON_PRIMARY_BARCODES "R:/png/primary_function/icon_primary_barcodes.png" -#if USE_LV_WATCH_AUDIO_PLAYER != 0 -#define ICON_MUSIC "R:/png/primary_function/icon_music.png" -#endif +//#if USE_LV_WATCH_AUDIO_PLAYER != 0 +//#define ICON_MUSIC "R:/png/primary_function/icon_music.png" +//#endif #define ICON_IMGVIEWER "R:/png/primary_function/icon_imgviewer.png" #define ICON_ALARM "R:/png/primary_function/icon_alarm.png" -#if USE_LV_WATCH_COMPASS != 0 -#define ICON_COMPASS "R:/png/primary_function/icon_compass.png" -#endif +//#if USE_LV_WATCH_COMPASS != 0 +//#define ICON_COMPASS "R:/png/primary_function/icon_compass.png" +//#endif #define ICON_MESSAGE "R:/png/primary_function/icon_message.png" #define ICON_TIMER "R:/png/primary_function/icon_timer.png" #if USE_LV_WATCH_WEATHER != 0 @@ -94,6 +95,65 @@ LV_IMG_DECLARE(img_poweron_logo); #define ICON_ALIPAY "R:/png/primary_function/icon_alipay.png" #define ICON_SMS_MSG "R:/png/primary_function/icon_sms.png" #define ICON_PHONEBOOK "R:/png/primary_function/ICON_PHONEBOOK.png" +#endif + + +#ifdef __MMI_MAIN_MENU_ONE_PAGE_STYLE__ +#define ICON_PHONEBOOK_ONE_PAGE "R:/png/primary_function/one_page/ICON_PHONEBOOK.png" +#if USE_LV_WATCH_SMS_MSG != 0 +#define ICON_SMS_MSG_ONE_PAGE "R:/png/primary_function/one_page/icon_sms.png" +#endif +#define ICON_DIALPAD_ONE_PAGE "R:/png/primary_function/one_page/icon_dialpad.png" +//#define ICON_CALLLOG_ONE_PAGE "R:/png/primary_function/one_page/ICON_CALLLOG.png" + +#define ICON_HEART_RATE_ONE_PAGE "R:/png/primary_function/one_page/icon_heart_rate.png" +#define ICON_SPO2_ONE_PAGE "R:/png/primary_function/one_page/ICON_SPO2.png" +#define ICON_TEMPERATURE_ONE_PAGE "R:/png/primary_function/one_page/ICON_TEMPERATURE.png" + +#define ICON_WECHAT_ONE_PAGE "R:/png/primary_function/one_page/icon_wechat.png" +#define ICON_CAMERA_ONE_PAGE "R:/png/primary_function/one_page/icon_camera.png" +#define ICON_ALBUM_ONE_PAGE "R:/png/primary_function/one_page/icon_album.png" +#define ICON_ALIPAY_ONE_PAGE "R:/png/primary_function/one_page/icon_alipay.png" +#define ICON_VIDEOCALL_ONE_PAGE "R:/png/primary_function/one_page/icon_videocall.png" + +//#define ICON_ALARM_ONE_PAGE "R:/png/primary_function/one_page/icon_alarm.png" +//#define ICON_TIMER_ONE_PAGE "R:/png/primary_function/one_page/icon_timer.png" +//#define ICON_STOPWATCH_ONE_PAGE "R:/png/primary_function/one_page/icon_stopwatch.png" +//#define ICON_CALCULATOR_ONE_PAGE "R:/png/primary_function/one_page/icon_calculator.png" +//#define ICON_CALENDAR_ONE_PAGE "R:/png/primary_function/one_page/icon_calendar.png" + +#define ICON_SETTING_ONE_PAGE "R:/png/primary_function/one_page/icon_settings.png" +#endif + + +#ifdef __MMI_MAIN_MENU_LIST_STYLE__ +#define ICON_PHONEBOOK_LIST "R:/png/primary_function/list/ICON_PHONEBOOK.png" +#if USE_LV_WATCH_SMS_MSG != 0 +#define ICON_SMS_MSG_LIST "R:/png/primary_function/list/icon_sms.png" +#endif +#define ICON_DIALPAD_LIST "R:/png/primary_function/list/icon_dialpad.png" +//#define ICON_CALLLOG_LIST "R:/png/primary_function/list/ICON_CALLLOG.png" + +#define ICON_HEART_RATE_LIST "R:/png/primary_function/list/icon_heart_rate.png" +#define ICON_SPO2_LIST "R:/png/primary_function/list/ICON_SPO2.png" +#define ICON_TEMPERATURE_LIST "R:/png/primary_function/list/ICON_TEMPERATURE.png" + +#define ICON_WECHAT_LIST "R:/png/primary_function/list/icon_wechat.png" +#define ICON_CAMERA_LIST "R:/png/primary_function/list/icon_camera.png" +#define ICON_ALBUM_LIST "R:/png/primary_function/list/icon_album.png" +#define ICON_ALIPAY_LIST "R:/png/primary_function/list/icon_alipay.png" +#define ICON_VIDEOCALL_LIST "R:/png/primary_function/list/icon_videocall.png" + +#define ICON_ALARM_LIST "R:/png/primary_function/list/icon_alarm.png" +#define ICON_TIMER_LIST "R:/png/primary_function/list/icon_timer.png" +#define ICON_STOPWATCH_LIST "R:/png/primary_function/list/icon_stopwatch.png" +//#define ICON_CALCULATOR_LIST "R:/png/primary_function/list/icon_calculator.png" +//#define ICON_CALENDAR_LIST "R:/png/primary_function/list/icon_calendar.png" + +#define ICON_SETTING_LIST "R:/png/primary_function/list/icon_settings.png" +#endif + + //setting #define ICON_SETTING_DAIL_FORMAT_SWITCH "R:/png/setting/icon_setting_dail_format_switch.png" @@ -117,6 +177,9 @@ LV_IMG_DECLARE(img_poweron_logo); #define ICON_SPEAKER "R:/png/setting/icon_speaker.png" #define ICON_BRIGHTNESS "R:/png/setting/icon_brightness.png" #define ICON_SETTING_RING_MUSIC "R:/png/setting/icon_setting_ring_music.png" +#ifdef __MMI_MAIN_MENU_SWITCH_MENU__ +#define ICON_SETTING_MAIN_MENU_SWITCH "R:/png/setting/ICON_SETTING_MAIN_MENU_SWITCH.png" +#endif #define ICON_DATE "R:/png/date_time/icon_date.png" #define ICON_TIME "R:/png/date_time/icon_time.png" #define ICON_SETTING_REBOOT "R:/png/setting/icon_setting_reboot.png" @@ -663,6 +726,9 @@ LV_IMG_DECLARE(img_poweron_logo); #define ICON_COMMON_BG_BLACK "R:/png/common/ICON_COMMON_BG_BLACK.png" #define ICON_COMMON_BG_WHITE "R:/png/common/ICON_COMMON_BG_WHITE.png" #define ICON_COMMON_SUCCESS "R:/png/common/ICON_COMMON_SUCCESS.png" +#define ICON_ITEM_NOT_SELECTED "R:/png/common/icon_item_not_selected.png" +#define ICON_ITEM_SELECTED "R:/png/common/icon_item_selected.png" +#define ICON_ITEM_DISABLE_SELECTED "R:/png/common/icon_item_disable_selected.png" #ifdef __MMI_WHITE_BACKGROUND_SUPPORT__ #define ICON_BACKGROUND ICON_COMMON_BG_WHITE