From: sungwook79.park Date: Thu, 19 May 2016 11:38:45 +0000 (+0900) Subject: Support setting UI for wearable X-Git-Tag: submit/tizen/20160525.013423~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a2988fb479733d602c2b52e3d16a38568b4ef558;p=platform%2Fcore%2Fuifw%2Finputmethod-setting.git Support setting UI for wearable Change-Id: I227861707a9946b69c6bbafbf8dfc620b5bf047f Signed-off-by: sungwook79.park --- diff --git a/im_setting_list/input_method_setting_list_popup_view.cpp b/im_setting_list/input_method_setting_list_popup_view.cpp index ab48158..ba81cbf 100644 --- a/im_setting_list/input_method_setting_list_popup_view.cpp +++ b/im_setting_list/input_method_setting_list_popup_view.cpp @@ -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 } diff --git a/im_setting_list/input_method_setting_list_ui.cpp b/im_setting_list/input_method_setting_list_ui.cpp index c5758d8..12f2d14 100644 --- a/im_setting_list/input_method_setting_list_ui.cpp +++ b/im_setting_list/input_method_setting_list_ui.cpp @@ -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 */ diff --git a/im_setting_selector/input_method_setting_selector.cpp b/im_setting_selector/input_method_setting_selector.cpp old mode 100644 new mode 100755 index 5319754..3d930b6 --- a/im_setting_selector/input_method_setting_selector.cpp +++ b/im_setting_selector/input_method_setting_selector.cpp @@ -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); } diff --git a/im_setting_selector/input_method_setting_selector_ui.cpp b/im_setting_selector/input_method_setting_selector_ui.cpp old mode 100644 new mode 100755 index 3d4db3e..daddd7c --- a/im_setting_selector/input_method_setting_selector_ui.cpp +++ b/im_setting_selector/input_method_setting_selector_ui.cpp @@ -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