gengxin
authorCCC <2393524978@qq.com>
Fri, 22 Sep 2023 07:53:11 +0000 (15:53 +0800)
committerCCC <2393524978@qq.com>
Fri, 22 Sep 2023 07:53:11 +0000 (15:53 +0800)
16 files changed:
2.sdk/sdk/gui/lv_watch/CMakeLists.txt
2.sdk/sdk/gui/lv_watch/framework/language/lang_ch.c
2.sdk/sdk/gui/lv_watch/framework/language/lang_en.c
2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm.h
2.sdk/sdk/gui/lv_watch/framework/nvm/ui_nvm_api.c
2.sdk/sdk/gui/lv_watch/include/ui_nvm_interface.h
2.sdk/sdk/gui/lv_watch/include/ui_textid.h
2.sdk/sdk/gui/lv_watch/lv_apps/launcher/launcher.c
2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.c
2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu.h
2.sdk/sdk/gui/lv_watch/lv_apps/primary_menu/primary_menu_data.c
2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.c
2.sdk/sdk/gui/lv_watch/lv_apps/setting/setting.h
2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_activity_obj/lv_watch_activity_obj.c
2.sdk/sdk/gui/lv_watch/lv_objx/lv_watch_list/lv_watch_list.c
2.sdk/sdk/gui/lv_watch/lv_watch_res.h

index 3b2a6ff..b28c99b 100644 (file)
@@ -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
index 201202b..de0b18a 100644 (file)
@@ -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
index e05a7a5..0ee7c36 100644 (file)
@@ -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
index 6e4a519..c3cb9c9 100644 (file)
@@ -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
index fdd66aa..91f87ed 100644 (file)
@@ -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
index 5c7220f..ae91c2d 100644 (file)
@@ -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
index 354def9..53376f7 100644 (file)
@@ -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" */
 
 
 
index 6dab706..9364f4d 100644 (file)
@@ -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;
index a6b10c1..e539006 100644 (file)
 
 #include <stdio.h>
 
+
+#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*/
index 4792dd6..80be334 100644 (file)
@@ -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
  **********************/
index 02ec203..1928ad5 100644 (file)
@@ -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__*/
index a8a96fe..9683a4f 100644 (file)
@@ -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__
 };
 
 /**********************
index de79232..8f8baa3 100644 (file)
@@ -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
 
index 750d754..4951db6 100644 (file)
@@ -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;
         }
     }
index 4776080..cabceed 100644 (file)
@@ -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);
index 16d69e9..29ff9b9 100644 (file)
@@ -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