Support setting UI for wearable 55/70555/3
authorsungwook79.park <sungwook79.park@samsung.com>
Thu, 19 May 2016 11:38:45 +0000 (20:38 +0900)
committersungwook79.park <sungwook79.park@samsung.com>
Tue, 24 May 2016 11:35:33 +0000 (20:35 +0900)
Change-Id: I227861707a9946b69c6bbafbf8dfc620b5bf047f
Signed-off-by: sungwook79.park <sungwook79.park@samsung.com>
im_setting_list/input_method_setting_list_popup_view.cpp
im_setting_list/input_method_setting_list_ui.cpp
im_setting_selector/input_method_setting_selector.cpp [changed mode: 0644->0755]
im_setting_selector/input_method_setting_selector_ui.cpp [changed mode: 0644->0755]

index ab48158d64e43f2d67055634885a6d77c8bf1c0d..ba81cbfc19339e284236c21541523ae635238d41 100644 (file)
@@ -137,6 +137,15 @@ static void im_setting_list_update_radio_state(Elm_Object_Item *item, Evas_Objec
     }
 }
 
+void im_setting_list_update_window_selector(void *data)
+{
+    appdata *ad = (appdata *)data;
+    if (!ad)
+        return;
+    im_setting_list_load_active_ime_info();
+    im_setting_list_update_window(ad);
+}
+
 static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event_info)
 {
     sel_cb_data * cb_data = (sel_cb_data *)data;
@@ -153,21 +162,28 @@ static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event
         return;
     }
     im_setting_list_update_radio_state(item, obj, index);
-    im_setting_list_update_window(ad);
+    im_setting_list_update_window_selector(ad);
 
     if (ad->popup) {
         evas_object_del(ad->popup);
     }
     ad->popup = NULL;
     delete cb_data;
+    elm_naviframe_item_pop(ad->naviframe);
 }
 
-static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent)
+static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent, Evas_Object* conform)
 {
     if (!parent)
         return NULL;
     Evas_Object *genlist = elm_genlist_add(parent);
     elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+#ifdef _CIRCLE
+    /* Circle Surface Creation */
+    Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(conform);
+    Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface);
+    eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
+#endif
     evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
     elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
@@ -221,6 +237,15 @@ static void im_setting_list_genlist_item_class_create(void)
     }
 }
 
+
+static char *
+im_setting_list_default_keyboard_title_text_get(void *data, Evas_Object *obj, const char *part)
+{
+    char buf[1024];
+    snprintf(buf, 1023, "%s", IM_SETTING_LIST_POPUP_VIEW_TITLE);
+    return strdup(buf);
+}
+
 static Evas_Object *im_setting_list_list_create(void *data)
 {
     appdata *ad = (appdata *)data;
@@ -228,7 +253,7 @@ static Evas_Object *im_setting_list_list_create(void *data)
         return NULL;
     im_setting_list_genlist_item_class_create();
     Evas_Object *genlist = NULL;
-    genlist = im_setting_list_genlist_create(ad->popup);
+    genlist = im_setting_list_genlist_create(ad->popup, ad->conform);
     unsigned int i = 0;
 
     /* keyboard list */
@@ -299,12 +324,60 @@ static Evas_Object *im_setting_list_popup_create(void *data)
     return popup;
 }
 
+static Evas_Object *im_setting_list_screen_create(void *data)
+{
+    appdata *ad = NULL;
+    Evas_Object *genlist = NULL;
+    Elm_Genlist_Item_Class *ttc = elm_genlist_item_class_new();
+
+    ad = (appdata *) data;
+    if (ad == NULL) return NULL;
+
+    ttc->item_style = "title";
+    ttc->func.text_get = im_setting_list_default_keyboard_title_text_get;
+
+    im_setting_list_genlist_item_class_create();
+    genlist = im_setting_list_genlist_create(ad->win, ad->conform);
+
+    elm_genlist_mode_set(genlist, ELM_LIST_SCROLL);
+    elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+    if (NULL == group_radio) {
+        group_radio = elm_radio_add(genlist);
+        elm_radio_state_value_set(group_radio, g_active_ime_id);
+    }
+
+    /* keyboard list */
+    for (int i = 0; i < g_active_ime_info_list.size(); i++) {
+        sel_cb_data *cb_data = new sel_cb_data;
+        cb_data->data = data;
+        cb_data->index = i;
+        elm_genlist_item_append(genlist,
+            itc_im_list,
+            (void *)(i),
+            NULL,
+            ELM_GENLIST_ITEM_NONE,
+            im_setting_list_ime_sel_cb,
+            (void *)(cb_data));
+    }
+
+    elm_radio_state_value_set(group_radio, g_active_ime_id);
+    elm_radio_value_set(group_radio, g_active_ime_id);
+    elm_genlist_item_class_free(ttc);
+    elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, genlist, "empty");
+}
+
 void
 im_setting_list_popup_view_create(void *data)
 {
     appdata *ad = (appdata *)data;
     if (!ad || !ad->win)
         return;
+
     im_setting_list_load_active_ime_info();
+#ifdef _WEARABLE
+    im_setting_list_screen_create(data);
+#else
     im_setting_list_popup_create(data);
+#endif
 }
index c5758d887b42b2bade2ca9a9d4342929a6445530..12f2d1497e97839cde4220742a507995327d0ed6 100644 (file)
@@ -434,10 +434,16 @@ static Evas_Object *im_setting_list_naviframe_create(Evas_Object* parent)
     return naviframe;
 }
 
-static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent)
+static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent, Evas_Object* conform)
 {
     Evas_Object *genlist = elm_genlist_add(parent);
     elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+#ifdef _CIRCLE
+    /* Circle Surface Creation */
+    Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(conform);
+    Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface);
+    eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
+#endif
     evas_object_show(genlist);
     return genlist;
 }
@@ -649,6 +655,7 @@ static void im_setting_list_add_ime(void *data) {
         elm_object_item_disabled_set(item, !(g_ime_info_list[g_active_ime_index].has_option));
     }
 
+#ifdef _MOBILE
     /* Keyboards group */
     group_header_item = elm_genlist_item_append(ad->genlist,
             itc_im_list_group,
@@ -686,6 +693,7 @@ static void im_setting_list_add_ime(void *data) {
 
         g_gen_item_data[i].gen_item = item;
     }
+#endif
 }
 
 static Eina_Bool im_setting_list_navi_item_pop_cb(void *data, Elm_Object_Item *it)
@@ -713,7 +721,7 @@ Evas_Object *im_setting_list_list_create(void *data)
         return NULL;
     ad->conform = im_setting_list_conform_create(ad->win);
     ad->naviframe = im_setting_list_naviframe_create(ad->conform);
-    ad->genlist = im_setting_list_genlist_create(ad->naviframe);
+    ad->genlist = im_setting_list_genlist_create(ad->naviframe, ad->conform);
     im_setting_list_add_ime(ad);
 
     /* Add genlist to naviframe */
old mode 100644 (file)
new mode 100755 (executable)
index 5319754..3d930b6
@@ -44,6 +44,7 @@ app_control(app_control_h app_control, void *data)
 
     ad->app_type = APP_TYPE_NORMAL;
     ad->app_state = APP_STATE_SERVICE;
+
     im_setting_selector_app_create(ad);
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 3d4db3e..daddd7c
@@ -228,6 +228,9 @@ static void im_setting_selector_ime_sel_cb(void *data, Evas_Object *obj, void *e
     if (!cb_data)
         return;
     int index = cb_data->index;
+    appdata *ad = (appdata *)cb_data->data;
+    if (!ad)
+        return;
 
     Elm_Object_Item *item = (Elm_Object_Item *)event_info;
     if (!item)
@@ -235,13 +238,20 @@ static void im_setting_selector_ime_sel_cb(void *data, Evas_Object *obj, void *e
     im_setting_selector_update_radio_state(item, obj, index);
 
     delete cb_data;
+    elm_naviframe_item_pop(ad->naviframe);
     ui_app_exit();
 }
 
-static Evas_Object *im_setting_selector_genlist_create(Evas_Object* parent)
+static Evas_Object *im_setting_selector_genlist_create(Evas_Object* parent, Evas_Object* conform)
 {
     Evas_Object *genlist = elm_genlist_add(parent);
     elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+#ifdef _CIRCLE
+    /* Circle Surface Creation */
+    Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(conform);
+    Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface);
+    eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
+#endif
     evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
     elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
@@ -323,7 +333,7 @@ Evas_Object *im_setting_selector_list_create(void *data)
     appdata *ad = (appdata *)data;
     if (!ad)
         return NULL;
-    ad->genlist = im_setting_selector_genlist_create(ad->popup);
+    ad->genlist = im_setting_selector_genlist_create(ad->popup, ad->conform);
     im_setting_selector_add_ime(ad);
     return ad->genlist;
 }
@@ -359,6 +369,15 @@ im_setting_selector_popup_block_clicked_cb(void *data EINA_UNUSED, Evas_Object *
     ui_app_exit();
 }
 
+static char *
+im_setting_selector_title_text_get(void *data, Evas_Object *obj, const char *part)
+{
+    char buf[1024];
+    snprintf(buf, 1023, "%s", IM_SETTING_SELECTOR_TITLE);
+    return strdup(buf);
+}
+
+
 Evas_Object *im_setting_selector_popup_create(void *data)
 {
     appdata *ad = (appdata *)data;
@@ -401,6 +420,76 @@ Evas_Object *im_setting_selector_popup_create(void *data)
     return ad->popup;
 }
 
+static Evas_Object *im_setting_selector_conform_create(Evas_Object *parentWin)
+{
+    Evas_Object *conform = elm_conformant_add(parentWin);
+    elm_win_indicator_mode_set(parentWin, ELM_WIN_INDICATOR_SHOW);
+    elm_win_indicator_opacity_set(parentWin, ELM_WIN_INDICATOR_OPAQUE);
+    evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+    Evas_Object *bg = elm_bg_add(conform);
+    elm_object_style_set(bg, "indicator/headerbg");
+    elm_object_part_content_set(conform, "elm.swallow.indicator_bg", bg);
+    evas_object_show(bg);
+
+    Evas_Coord w = -1, h = -1;
+    elm_win_screen_size_get(parentWin, NULL, NULL, &w, &h);
+    if (w > 0 && h > 0) {
+        evas_object_resize(conform, w, h);
+    }
+    evas_object_event_callback_add(parentWin, EVAS_CALLBACK_RESIZE, NULL, conform);
+    evas_object_show(conform);
+    return conform;
+}
+
+static Evas_Object *im_setting_selector_screen_create(void *data)
+{
+    appdata *ad = NULL;
+    Evas_Object *genlist = NULL;
+    Elm_Genlist_Item_Class *ttc = elm_genlist_item_class_new();
+
+    ad = (appdata *) data;
+    if (ad == NULL) return NULL;
+
+    ttc->item_style = "title";
+    ttc->func.text_get = im_setting_selector_title_text_get;
+
+    ad->conform = im_setting_selector_conform_create(ad->win);
+    ad->naviframe = im_setting_selector_naviframe_create(ad->conform);
+    genlist = im_setting_selector_genlist_create(ad->win, ad->conform);
+    evas_object_show(ad->win);
+
+    im_setting_selector_genlist_item_class_create();
+
+    elm_genlist_mode_set(genlist, ELM_LIST_SCROLL);
+    elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+    if (NULL == group_radio) {
+        group_radio = elm_radio_add(genlist);
+        elm_radio_state_value_set(group_radio, g_active_ime_id);
+    }
+
+    /* keyboard list */
+    for (int i = 0; i < g_ime_info_list.size(); i++) {
+        sel_cb_data *cb_data = new sel_cb_data;
+        cb_data->data = data;
+        cb_data->index = i;
+        elm_genlist_item_append(genlist,
+            itc_im_selector,
+            (void *)(i),
+            NULL,
+            ELM_GENLIST_ITEM_NONE,
+            im_setting_selector_ime_sel_cb,
+            (void *)(cb_data));
+    }
+
+    elm_radio_state_value_set(group_radio, g_active_ime_id);
+    elm_radio_value_set(group_radio, g_active_ime_id);
+    elm_genlist_item_class_free(ttc);
+    elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, genlist, "empty");
+}
+
 void
 im_setting_selector_app_create(void *data)
 {
@@ -410,9 +499,12 @@ im_setting_selector_app_create(void *data)
     im_setting_selector_text_domain_set();
     ad->win = im_setting_selector_main_window_create(PACKAGE);
     im_setting_selector_load_ime_info();
+#ifdef _WEARABLE
+    im_setting_selector_screen_create(ad);
+#else
     im_setting_selector_popup_create(ad);
-
     evas_object_show(ad->win);
+#endif
 }
 
 void