1.Modify dim window for selector. 2.Update the popup message. 37/41037/1
authorshoum.chen@samsung.com <shoum.chen@samsung.com>
Mon, 1 Jun 2015 08:02:18 +0000 (16:02 +0800)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 11 Jun 2015 04:16:19 +0000 (13:16 +0900)
Change-Id: I3346a7085993e99979faf67763472fefa5812f88
Signed-off-by: shoum.chen@samsung.com <shoum.chen@samsung.com>
im_setting_list/input_method_setting_list_ui.cpp
im_setting_selector/input_method_setting_selector_ui.cpp

index 4ab7f6843f96ba55fae3588183a6fea218a0a164..ff48871b3e91b806713525ab7354ddcdb3d7653e 100644 (file)
@@ -31,7 +31,9 @@
 #define IM_SETTING_LIST_VIRTUAL_KEYBOARD        dgettext(PACKAGE, "IDS_ST_HEADER_VIRTUAL_KEYBOARD")
 #define IM_SETTING_LIST_DEFAULT_KEYBOARD        dgettext(PACKAGE, "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB")
 #define IM_SETTING_LIST_KEYBOARD_SETTING        dgettext(PACKAGE, "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB")
-#define IM_SETTING_LIST_POPUP_TEXT              dgettext(PACKAGE, "IDS_ST_POP_THIS_INPUT_METHOD_MAY_BE_ABLE_TO_COLLECT_ALL_THE_TEXT                                                                  _YOU_TYPE_INCLUDING_PERSONAL_DATA_LIKE_PASSWORDS_AND_CREDIT_CARD_                                                                   NUMBERS_MSG")
+#define IM_SETTING_LIST_POPUP_TEXT              dgettext(PACKAGE, "IDS_ST_POP_THIS_INPUT_METHOD_MAY_BE_ABLE_TO_COLLECT_ALL_THE"\
+                                                                  "_TEXT_YOU_TYPE_INCLUDING_PERSONAL_DATA_LIKE_PASSWORDS_AND"\
+                                                                  "_CREDIT_CARD_NUMBERS_MSG")
 
 #define IM_SETTING_PACKAGE             PACKAGE
 #define IM_SETTING_LOCALE_DIR           ("/usr/apps/"PACKAGE_NAME"/res/locale")
@@ -108,6 +110,7 @@ static void im_setting_list_load_ise_info(void)
     {
         for(int i=0; i<cnt; ++i)
         {
+            SECURE_LOGD("%s %s %d %d %d", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
             g_ime_info_list.push_back(info[i]);
         }
         free(info);
@@ -170,12 +173,67 @@ static void im_setting_list_show_ise_selector(void)
       app_control_destroy(app_control);
 }
 
+static void
+im_setting_list_check_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    popup_cb_data *cb_data = (popup_cb_data *)data;
+
+    int index = (int)(cb_data->data);
+    Eina_Bool state = EINA_FALSE;
+    state = !elm_check_state_get (cb_data->parent);
+    elm_check_state_set(cb_data->parent, state);
+    isf_control_set_enable_ime(g_ime_info_list[index].appid, state);
+    evas_object_del(cb_data->popup);
+    delete cb_data;
+}
+
+static void
+im_setting_list_check_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    popup_cb_data *cb_data = (popup_cb_data *)data;
+    evas_object_del(cb_data->popup);
+    delete cb_data;
+}
+
 static void im_setting_list_check_button_change_cb(void *data, Evas_Object *obj, void *event_info)
 {
     /*save the checked ise*/
     int index = (int)data;
-    Eina_Bool state = elm_check_state_get (obj);
-    isf_control_set_enable_ime(g_ime_info_list[index].appid, state);
+    Eina_Bool state = !elm_check_state_get (obj);
+    elm_check_state_set (obj, state);
+    state = elm_check_state_get (obj);
+    if(state)
+    {
+        elm_check_state_set(obj, !state);
+        isf_control_set_enable_ime(g_ime_info_list[index].appid, !state);
+    }
+    else
+    {
+        Evas_Object *widget_parent = elm_object_parent_widget_get(obj);
+        Evas_Object *popup = elm_popup_add(widget_parent);
+        elm_object_part_text_set(popup, "title,text", IM_SETTING_LIST_POPUP_TITLE);
+        char chPopupMsg[255] = {'\0'};
+        sprintf(chPopupMsg, IM_SETTING_LIST_POPUP_TEXT, g_ime_info_list[index].label);
+        elm_object_text_set(popup, chPopupMsg);
+
+        popup_cb_data *cb_data = new popup_cb_data;
+        cb_data->popup = popup;
+        cb_data->parent = obj;
+        cb_data->event_info = event_info;
+        cb_data->data = data;
+
+        Evas_Object *btn_cancel = elm_button_add(popup);
+        elm_object_text_set(btn_cancel, IM_SETTING_LIST_POPUP_CANCEL);
+        elm_object_part_content_set(popup, "button1", btn_cancel);
+        evas_object_smart_callback_add(btn_cancel, "clicked", im_setting_list_check_popup_cancel_cb, cb_data);
+
+        Evas_Object *btn_ok = elm_button_add(popup);
+        elm_object_text_set(btn_ok, IM_SETTING_LIST_POPUP_OK);
+        elm_object_part_content_set(popup, "button2", btn_ok);
+        evas_object_smart_callback_add(btn_ok, "clicked", im_setting_list_check_popup_ok_cb, cb_data);
+
+        evas_object_show(popup);
+    }
 }
 
 static void im_setting_list_update_check_button_state(Elm_Object_Item *item, Evas_Object *obj, int index)
@@ -232,27 +290,45 @@ static void im_setting_list_item_sel_cb(void *data, Evas_Object *obj, void *even
         return;
     }
 
-    Evas_Object *popup = elm_popup_add(obj);
-    elm_object_part_text_set(popup, "title,text", IM_SETTING_LIST_POPUP_TITLE);
-    elm_object_text_set(popup, IM_SETTING_LIST_POPUP_TEXT);
-
-    popup_cb_data *cb_data = new popup_cb_data;
-    cb_data->popup = popup;
-    cb_data->parent = obj;
-    cb_data->event_info = event_info;
-    cb_data->data = data;
-
-    Evas_Object *btn_cancel = elm_button_add(popup);
-    elm_object_text_set(btn_cancel, IM_SETTING_LIST_POPUP_CANCEL);
-    elm_object_part_content_set(popup, "button1", btn_cancel);
-    evas_object_smart_callback_add(btn_cancel, "clicked", im_setting_list_popup_cancel_cb, cb_data);
-
-    Evas_Object *btn_ok = elm_button_add(popup);
-    elm_object_text_set(btn_ok, IM_SETTING_LIST_POPUP_OK);
-    elm_object_part_content_set(popup, "button2", btn_ok);
-    evas_object_smart_callback_add(btn_ok, "clicked", im_setting_list_popup_ok_cb, cb_data);
+    Evas_Object *ck = elm_object_item_part_content_get (item, "elm.icon.right");
+    if (ck == NULL){
+        ck = elm_object_item_part_content_get (item, "elm.icon");
+    }
+    Eina_Bool state = elm_check_state_get (ck);
 
-    evas_object_show(popup);
+    if(state)
+    {
+        elm_check_state_set (ck, !state);
+        evas_object_show(ck);
+        isf_control_set_enable_ime(g_ime_info_list[index].appid, !state);
+    }
+    else
+    {
+        Evas_Object *widget_parent = elm_object_parent_widget_get(obj);
+        Evas_Object *popup = elm_popup_add(widget_parent);
+        elm_object_part_text_set(popup, "title,text", IM_SETTING_LIST_POPUP_TITLE);
+        char chPopupMsg[255] = {'\0'};
+        sprintf(chPopupMsg, IM_SETTING_LIST_POPUP_TEXT, g_ime_info_list[index].label);
+        elm_object_text_set(popup, chPopupMsg);
+
+        popup_cb_data *cb_data = new popup_cb_data;
+        cb_data->popup = popup;
+        cb_data->parent = obj;
+        cb_data->event_info = event_info;
+        cb_data->data = data;
+
+        Evas_Object *btn_cancel = elm_button_add(popup);
+        elm_object_text_set(btn_cancel, IM_SETTING_LIST_POPUP_CANCEL);
+        elm_object_part_content_set(popup, "button1", btn_cancel);
+        evas_object_smart_callback_add(btn_cancel, "clicked", im_setting_list_popup_cancel_cb, cb_data);
+
+        Evas_Object *btn_ok = elm_button_add(popup);
+        elm_object_text_set(btn_ok, IM_SETTING_LIST_POPUP_OK);
+        elm_object_part_content_set(popup, "button2", btn_ok);
+        evas_object_smart_callback_add(btn_ok, "clicked", im_setting_list_popup_ok_cb, cb_data);
+
+        evas_object_show(popup);
+    }
 }
 
 static void im_setting_list_set_default_keyboard_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
index 524741b4bff8c1f9307e5f6a9d83247f152c5a45..c74d9f82df86765671fd552bc236afcc35a5b474 100644 (file)
@@ -48,10 +48,11 @@ im_setting_selector_main_window_create(char *name)
     Evas_Object *eo = NULL;
     int w = -1, h = -1;
     eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+
     if (eo) {
         elm_win_title_set(eo, name);
         elm_win_borderless_set(eo, EINA_TRUE);
-        elm_win_alpha_set(eo, EINA_FALSE);
+        elm_win_alpha_set(eo, EINA_TRUE);
         elm_win_conformant_set(eo, EINA_TRUE);
         elm_win_autodel_set(eo, EINA_TRUE);
         elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
@@ -86,6 +87,7 @@ static void im_setting_selector_load_ise_info(void)
     {
         for(int i=0; i<cnt; ++i)
         {
+            SECURE_LOGD("%s %s %d %d %d", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
             if(info[i].is_enabled)
             {
                 g_ime_info_list.push_back(info[i]);
@@ -322,7 +324,6 @@ im_setting_selector_app_create(void *data)
     appdata *ad = (appdata *)data;
     im_setting_selector_text_domain_set();
     ad->win = im_setting_selector_main_window_create(PACKAGE);
-    im_setting_selector_bg_create(ad->win);
     im_setting_selector_load_ise_info();
     im_setting_selector_popup_create(ad);