--- /dev/null
+
+
+
+#include "lv_watch.h"
+
+#ifdef __MMI_MAIN_MENU_SWITCH_MENU__
+
+#if 1
+
+void * setting_main_menu_switch_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SETTING_MAIN_MENU_SWITCH);
+ if(NULL == activity_obj)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL != watch_obj)
+ {
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+ return ext;
+ }
+
+ return NULL;
+}
+
+static void setting_main_menu_switch_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+static void setting_main_menu_switch_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)setting_main_menu_switch_ext_get();
+ if(NULL == ext)
+ return NULL;
+
+ bool is_change_style = false;
+ MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+
+ printf("[@CHENG_DEBUG][%s][%d]: obj=0x%x\n", __FUNCTION__, __LINE__, obj);
+ printf("[@CHENG_DEBUG][%s][%d]: style0=0x%x,style1=0x%x\n", __FUNCTION__, __LINE__, ext->style0, ext->style1);
+ if((MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value) && (ext->style1 == obj))
+ {
+ mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_LIST);
+ is_change_style = true;
+ }
+ else if((MMI_MAIN_MENU_STYLE_LIST == style_value) && (ext->style0 == obj))
+ {
+ mmi_main_menu_style_set(MMI_MAIN_MENU_STYLE_ONE_PAGE);
+ is_change_style = true;
+ }
+
+ if(true == is_change_style)
+ {
+ lv_watch_obj_cleanup(obj);
+ setting_main_menu_switch_prepare_destory(NULL);
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_watch_go_home();
+ launcher_recreate();
+ }
+}
+
+static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj)
+{
+ if(NULL == activity_obj) {
+ lv_watch_activity_ext_t activity_ext;
+ memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+ activity_ext.actId = ACT_ID_SETTING_MAIN_MENU_SWITCH;
+ activity_ext.create = setting_main_menu_switch_create;
+ activity_ext.prepare_destory = setting_main_menu_switch_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj) {
+ return NULL;
+ }
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ if(NULL == obj)
+ return NULL;
+
+ lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_main_menu_switch_obj_ext_t));
+ if(NULL == ext)
+ return NULL;
+
+ lv_obj_t * title_label = lv_label_create(obj, NULL);
+ lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title_label, false);
+ lv_label_set_text_id(title_label, WATCH_TEXT_ID_MAIN_MENU_SWITCH);
+ lv_obj_align(title_label, obj, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+ //
+ lv_obj_t * style_btn_0 = lv_btn_create(obj, NULL);
+ lv_obj_add_style(style_btn_0, LV_BTN_PART_MAIN, &lv_style_transp_fit);
+ lv_btn_set_fit(style_btn_0, LV_FIT_TIGHT);
+ lv_btn_set_layout(style_btn_0, LV_LAYOUT_ROW_MID);
+ lv_obj_set_event_cb(style_btn_0, setting_main_menu_switch_event_cb);
+ ext->style0 = style_btn_0;
+ lv_watch_obj_add_element(style_btn_0);
+
+ lv_obj_t * style_img_0 = lv_img_create(style_btn_0, NULL);
+ lv_img_set_src(style_img_0, ICON_ITEM_NOT_SELECTED);
+
+ lv_obj_t* style_label_0 = lv_label_create(style_btn_0, NULL);
+ lv_obj_add_style(style_label_0, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(style_label_0, WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE);
+
+ //
+ lv_obj_t * style_btn_1 = lv_btn_create(obj, style_btn_0);
+ lv_obj_set_event_cb(style_btn_1, setting_main_menu_switch_event_cb);
+ ext->style1 = style_btn_1;
+ lv_watch_obj_add_element(style_btn_1);
+
+ lv_obj_t * style_img_1 = lv_img_create(style_btn_1, NULL);
+ lv_img_set_src(style_img_1, ICON_ITEM_NOT_SELECTED);
+
+ lv_obj_t* style_label_1 = lv_label_create(style_btn_1, NULL);
+ lv_obj_add_style(style_label_1, LV_LABEL_PART_MAIN, &lv_watch_font26); // &lv_watch_font20);
+ lv_label_set_text_id(style_label_1, WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST);
+ //lv_label_set_long_mode(label_reset, LV_LABEL_LONG_BREAK);
+ //lv_obj_set_width(label_reset, LV_HOR_RES * 2 / 3);
+
+ MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+ if(MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value)
+ lv_img_set_src(style_img_0, ICON_ITEM_SELECTED);
+ else if(MMI_MAIN_MENU_STYLE_LIST == style_value)
+ lv_img_set_src(style_img_1, ICON_ITEM_SELECTED);
+
+ lv_obj_align(style_btn_0, obj, LV_ALIGN_CENTER, -20, -40);
+ lv_obj_align(style_btn_1, style_btn_0, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 40);
+
+ return obj;
+}
+
+void setting_main_menu_switch_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_watch_png_cache_all_free();
+
+ lv_obj_t * obj = setting_main_menu_switch_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return;
+}
+
+#else
+
+void * setting_main_menu_switch_ext_get(void)
+{
+ lv_obj_t * activity_obj = lv_watch_get_activity_obj(ACT_ID_SETTING_MAIN_MENU_SWITCH);
+ if(NULL == activity_obj)
+ return NULL;
+
+ lv_obj_t * watch_obj = NULL;
+ lv_watch_get_child_obj(activity_obj, lv_watch_obj_signal, &watch_obj);
+ if(NULL != watch_obj)
+ {
+ void * ext = lv_obj_get_ext_attr(watch_obj);
+ return ext;
+ }
+
+ return NULL;
+}
+
+static void setting_main_menu_switch_prepare_destory(lv_obj_t * activity_obj)
+{
+ lv_watch_png_cache_all_free();
+}
+
+static void setting_main_menu_switch_event_cb(lv_obj_t * obj, lv_event_t event)
+{
+ if(event != LV_EVENT_CLICKED)
+ return;
+
+ lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)setting_main_menu_switch_ext_get();
+ if(NULL == ext)
+ return NULL;
+
+ uint8_t value = lv_watch_get_free_num(obj);
+ switch(value)
+ {
+ case 0:
+ lv_checkbox_set_checked(ext->style0, true);
+ lv_checkbox_set_checked(ext->style1, false);
+ break;
+
+ case 1:
+ lv_checkbox_set_checked(ext->style0, false);
+ lv_checkbox_set_checked(ext->style1, true);
+ break;
+
+ default:
+ break;
+ }
+
+#if defined(__MMI_MAIN_MENU_ONE_PAGE_STYLE__) && defined(__MMI_MAIN_MENU_LIST_STYLE__)
+ mmi_main_menu_style_set((0 == value) ? MMI_MAIN_MENU_STYLE_ONE_PAGE : MMI_MAIN_MENU_STYLE_LIST);
+#else
+
+#endif
+
+ lv_watch_obj_cleanup(obj);
+ setting_main_menu_switch_prepare_destory(NULL);
+ printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_watch_go_home();
+ launcher_recreate();
+}
+
+static lv_obj_t * setting_main_menu_switch_create(lv_obj_t * activity_obj)
+{
+ if(NULL == activity_obj) {
+ lv_watch_activity_ext_t activity_ext;
+ memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
+ activity_ext.actId = ACT_ID_SETTING_MAIN_MENU_SWITCH;
+ activity_ext.create = setting_main_menu_switch_create;
+ activity_ext.prepare_destory = setting_main_menu_switch_prepare_destory;
+ activity_obj = lv_watch_creat_activity_obj(&activity_ext);
+ LV_ASSERT_MEM(activity_obj);
+ if(NULL == activity_obj) {
+ return NULL;
+ }
+ }
+
+ lv_obj_t * obj = lv_watch_obj_create(activity_obj);
+ LV_ASSERT_MEM(obj);
+ if(NULL == obj)
+ return NULL;
+
+ lv_main_menu_switch_obj_ext_t * ext = (lv_main_menu_switch_obj_ext_t *)lv_obj_allocate_ext_attr(obj, sizeof(lv_main_menu_switch_obj_ext_t));
+ if(NULL == ext)
+ return NULL;
+
+ lv_obj_t * content = lv_cont_create(obj, NULL);
+ lv_obj_set_size(content, lv_obj_get_width(obj), lv_obj_get_height(obj));
+ //lv_obj_add_style(content, LV_CONT_PART_MAIN, &lv_watch_style_transp);
+ lv_obj_set_style_local_bg_color(content, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_BLACK);
+ lv_cont_set_layout(content, LV_LAYOUT_OFF);
+ lv_obj_set_click(content, false);
+ lv_obj_align(content, NULL, LV_ALIGN_CENTER, 0, 0);
+ //lv_watch_obj_add_element(content);
+
+ lv_obj_t * title_label = lv_label_create(content, NULL);
+ lv_obj_add_style(title_label, LV_LABEL_PART_MAIN, &lv_watch_font20_gray);
+ lv_label_set_align(title_label, LV_LABEL_ALIGN_CENTER);
+ lv_obj_set_click(title_label, false);
+ lv_label_set_text_id(title_label, WATCH_TEXT_ID_MAIN_MENU_SWITCH);
+ lv_obj_align(title_label, content, LV_ALIGN_IN_TOP_MID, 0, 10);
+
+ lv_obj_t * checkbox_0 = lv_checkbox_create(content, NULL);
+ lv_obj_clean_style_list(checkbox_0, LV_CHECKBOX_PART_BULLET);
+ lv_obj_add_style(checkbox_0, LV_CHECKBOX_PART_BULLET, &lv_watch_cb_styles);
+ lv_obj_set_event_cb(checkbox_0, setting_main_menu_switch_event_cb);
+ lv_obj_align(checkbox_0, content, LV_ALIGN_IN_TOP_MID, 0, 80);
+ lv_watch_set_free_num(checkbox_0, 0);
+ ext->style0 = checkbox_0;
+
+ lv_obj_t * checkbox_1 = lv_checkbox_create(content, checkbox_0);
+ lv_obj_set_event_cb(checkbox_1, setting_main_menu_switch_event_cb);
+ lv_obj_align(checkbox_1, checkbox_0, LV_ALIGN_OUT_BOTTOM_MID, 0, 30);
+ lv_watch_set_free_num(checkbox_1, 1);
+ ext->style1 = checkbox_1;
+
+#if defined(__MMI_MAIN_MENU_ONE_PAGE_STYLE__) && defined(__MMI_MAIN_MENU_LIST_STYLE__)
+ lv_checkbox_set_text(ext->style0, lv_lang_get_text(WATCH_TEXT_ID_MAIN_MENU_SWITCH_ONE_PAGE));
+ lv_checkbox_set_text(ext->style1, lv_lang_get_text(WATCH_TEXT_ID_MAIN_MENU_SWITCH_LIST));
+
+ MMI_MAIN_MENU_STYLE_E style_value = mmi_main_menu_style_get();
+ if(MMI_MAIN_MENU_STYLE_ONE_PAGE == style_value)
+ {
+ lv_checkbox_set_checked(ext->style0, true);
+ lv_checkbox_set_checked(ext->style1, false);
+ }
+ else
+ {
+ lv_checkbox_set_checked(ext->style0, false);
+ lv_checkbox_set_checked(ext->style1, true);
+ }
+#else
+
+#endif
+
+ return obj;
+}
+
+void setting_main_menu_switch_create_event_cb(lv_obj_t * btn, lv_event_t event)
+{
+ (void)btn;
+
+ if(LV_EVENT_CLICKED != event)
+ return;
+
+ lv_watch_png_cache_all_free();
+
+ lv_obj_t * obj = setting_main_menu_switch_create(NULL);
+ LV_ASSERT_MEM(obj);
+ if(obj == NULL)
+ return;
+}
+#endif
+
+#endif
+