Add IoT headed style genlist in STT language setting 25/249225/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 9 Dec 2020 05:04:42 +0000 (14:04 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 9 Dec 2020 05:11:08 +0000 (14:11 +0900)
Change-Id: If5f6cf573cd10ab526136e20f8ae9685291c7567
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/ise-stt-option.cpp

index b9b75a8..051177e 100644 (file)
@@ -37,6 +37,7 @@
 #define IMG_POPUP_DIM_BG                RESDIR"/tv/images/bg_dimmed_bk_95.9.png"
 #define IMG_POPUP_BAR_LINE              RESDIR"/tv/images/img_popup_bar_line.png"
 #define IMG_POPUP_BAR_SHADOW            RESDIR"/tv/images/img_popup_bar_shadow.png"
+#define OPTION_LAYOUT_EDJ               RESDIR"/edje/common/main_layout.edj"
 
 Eina_Bool g_setting_window_open_status = EINA_FALSE;
 
@@ -83,6 +84,23 @@ const char *disp_lang_array[] = {
     "한국어",
 };
 
+#ifdef _COMMON
+static void gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+    Elm_Object_Item *first_item = elm_genlist_first_item_get(obj);
+    Elm_Object_Item *last_item = elm_genlist_last_item_get(obj);
+
+    if (it == first_item && it == last_item)
+        elm_object_item_signal_emit(it, "elm,state,group,single", "elm");
+    else if (it == first_item)
+        elm_object_item_signal_emit(it, "elm,state,group,top", "elm");
+    else if (it == last_item)
+        elm_object_item_signal_emit(it, "elm,state,group,bottom", "elm");
+    else
+        elm_object_item_signal_emit(it, "elm,state,group,middle", "elm");
+}
+#endif
 
 static const char* get_lang_label(char lang[])
 {
@@ -342,6 +360,7 @@ static Evas_Object *create_language_list(Evas_Object *parent)
 #else
     itc_2text.item_style = "2line";
 #endif
+
     itc_2text.func.text_get = __get_genlist_item_label;
 #ifdef _TV
     itc_2text.func.content_get = NULL;
@@ -349,20 +368,6 @@ static Evas_Object *create_language_list(Evas_Object *parent)
     itc_2text.func.content_get = __get_genlist_item_content;
 #endif
 
-    item = item_append(genlist, itc_2text, (void *)0, language_set_genlist_radio_cb, genlist); // AUTO
-
-    if (lang_val == i) {
-        LOGD("%ld item is choiced.", i);
-        elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
-#ifdef _TV
-        elm_object_item_focus_set(item, EINA_TRUE);
-#endif
-    }
-
-    if (item == NULL) {
-        LOGD("elm_genlist_item_append was failed");
-    }
-
     // 1 line text
 #ifdef _WEARABLE
     itc_1text.item_style = "1text.1icon.1";
@@ -374,11 +379,33 @@ static Evas_Object *create_language_list(Evas_Object *parent)
     itc_1text.item_style = "1line";
 #endif
     itc_1text.func.text_get = __get_genlist_item_label;
+
 #ifdef _TV
     itc_1text.func.content_get = NULL;
 #else
     itc_1text.func.content_get = __get_genlist_item_content;
 #endif
+
+    item = item_append(genlist,
+#ifdef _COMMON
+                       itc_1text,
+#else
+                       itc_2text,
+#endif
+                       (void *)0, language_set_genlist_radio_cb, genlist); // AUTO
+
+    if (lang_val == i) {
+        LOGD("%ld item is choiced.", i);
+        elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+#ifdef _TV
+        elm_object_item_focus_set(item, EINA_TRUE);
+#endif
+    }
+
+    if (item == NULL) {
+        LOGD("elm_genlist_item_append was failed");
+    }
+
     for (i = 1; i < (long)(sizeof(disp_lang_array)/sizeof(disp_lang_array[0])); i++)
     {
         item = item_append(genlist, itc_1text, i, language_set_genlist_radio_cb, genlist);
@@ -430,7 +457,7 @@ void create_setting_window()
     int rots[] = { 0, 90, 180, 270 };
     elm_win_wm_rotation_available_rotations_set(window, rots, (sizeof(rots) / sizeof(int)));
 
-#ifdef _MOBILE
+#if defined(_MOBILE) || defined(_COMMON)
     elm_win_indicator_mode_set(window, ELM_WIN_INDICATOR_SHOW);
     elm_win_indicator_opacity_set(window, ELM_WIN_INDICATOR_OPAQUE);
 #else
@@ -467,6 +494,7 @@ void create_setting_window()
     elm_theme_extension_add(g_list_theme, EDJ_FILE);
 
     elm_object_theme_set(genlist, g_list_theme);
+
     Evas_Object *mlayout = NULL;
     mlayout = elm_layout_add(naviframe);
     evas_object_size_hint_weight_set(mlayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -493,10 +521,17 @@ void create_setting_window()
     elm_object_part_content_set(mlayout, "bar_shadow", bar_shadow);
 
     elm_object_part_content_set(mlayout, "part.list", genlist);
+#elif _COMMON
+    evas_object_smart_callback_add(genlist, "realized", gl_realized_cb, NULL);
+
+    Evas_Object *layout = elm_layout_add(naviframe);
+    elm_layout_file_set(layout, OPTION_LAYOUT_EDJ, "main_layout");
+    elm_object_content_set(layout, genlist);
+    evas_object_show(layout);
 #endif
 
     char *title = NULL;
-#ifdef _MOBILE
+#if defined(_MOBILE) || defined(_COMMON)
     title = _("IDS_VOICE_OPT_LANGUAGE_ABB");
 #endif
 
@@ -504,6 +539,8 @@ void create_setting_window()
 #ifdef _TV
     title_enable = false;
     naviframe_item_push(naviframe, title, mlayout, NULL, NULL, _naviframe_back_cb, naviframe, title_enable);
+#elif _COMMON
+    naviframe_item_push(naviframe, title, layout, NULL, NULL, _naviframe_back_cb, naviframe, title_enable);
 #else
     naviframe_item_push(naviframe, title, genlist, NULL, NULL, _naviframe_back_cb, naviframe, title_enable);
 #endif
@@ -516,4 +553,3 @@ void create_setting_window()
     elm_win_activate(window);
     evas_object_show(window);
 }
-