fixed N_SE-22741
authorMyoungJune Park <mj2004.park@samsung.com>
Thu, 24 Jan 2013 07:55:42 +0000 (16:55 +0900)
committerMyoungJune Park <mj2004.park@samsung.com>
Thu, 24 Jan 2013 07:55:42 +0000 (16:55 +0900)
setting-common/include/setting-common-draw-widget.h
setting-common/src/setting-common-draw-genlist.c
src/setting-plugin.c

index db1310d..ca360ce 100755 (executable)
@@ -200,6 +200,31 @@ extern Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object
                                                                         char *rejected);
 
 /**
+ * Create 1entry style item
+ * @return a pointer to Setting_GenGroupItem_Data
+ */
+extern Setting_GenGroupItem_Data *setting_create_Gendial_field_entry_fo(Evas_Object *genlist,
+                                                                    const Elm_Genlist_Item_Class *itc,
+                                                                    setting_call_back_func gl_sel,
+                                                                    void *sel_data,
+                                                                    SWALLOW_Type swallow_type,
+                                                                    char *l_icon_path,
+                                                                        char *r_icon_path,
+                                                                    int chk_status,
+                                                                    const char *keyStr,
+                                                                        char *sub_desc,
+                                                                    setting_call_back_func chk_change_cb,
+                                                                    setting_call_back_func chk_focus_out_cb,
+                                                                    Elm_Input_Panel_Layout input_type,
+                                                                    bool isPasswordFlag,
+                                                                    bool isFocusFlag,
+                                                                    int max_char_count,
+                                                                    int max_byte_count,
+                                                                    char *accepted,
+                                                                        char *rejected);
+
+
+/**
  * General function to create a subitem of expandable item
  *
  * @return a pointer to Setting_GenGroupItem_Data
index 1f86462..cd00559 100755 (executable)
@@ -497,14 +497,12 @@ static Evas_Object *__add_entry(Setting_GenGroupItem_Data *item_data, Evas_Objec
        retv_if(!item_data || !parent, NULL);
        elm_genlist_mode_set(parent, ELM_LIST_COMPRESS);        /* resolve abnormal height issue */
        Evas_Object *ed_name =
-           setting_create_editfiled(parent, _(item_data->keyStr),
-                                    item_data->sub_desc);
+           setting_create_editfiled(parent, _(item_data->keyStr), item_data->sub_desc);
        evas_object_pass_events_set(ed_name, 1);
        evas_object_propagate_events_set(ed_name, 0);
        Evas_Object *entry = elm_object_part_content_get(ed_name, "elm.swallow.content");
        item_data->eo_check = entry;
-       elm_entry_input_panel_layout_set(entry,
-                                        item_data->input_type);
+       elm_entry_input_panel_layout_set(entry, item_data->input_type);
 
        if (item_data->isSinglelineFlag) {
                elm_entry_scrollable_set(entry, EINA_TRUE);
@@ -1183,22 +1181,19 @@ Setting_GenGroupItem_Data *setting_create_Gendial_field_def(Evas_Object *
  * Create 1entry style item
  * @return a pointer to Setting_GenGroupItem_Data
  */
-Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object *
-                                                             genlist,
+Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(
+                                                                 Evas_Object * genlist,
                                                              const Elm_Genlist_Item_Class *itc,
                                                              setting_call_back_func gl_sel,
                                                              void *sel_data,
-                                                             SWALLOW_Type
-                                                             swallow_type,
+                                                             SWALLOW_Type swallow_type,
                                                              char *l_icon_path,
                                                              char *r_icon_path,
                                                              int chk_status,
                                                              const char *keyStr,
                                                              char *sub_desc,
-                                                             setting_call_back_func
-                                                             chk_change_cb,
-                                                             Elm_Input_Panel_Layout
-                                                             input_type,
+                                                             setting_call_back_func chk_change_cb,
+                                                             Elm_Input_Panel_Layout input_type,
                                                              bool isPasswordFlag,
                                                              bool isFocusFlag,
                                                              int max_char_count,
@@ -1207,8 +1202,7 @@ Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object *
                                                              char *rejected)
 {
        /* SETTING_TRACE_BEGIN; */
-       Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1,
-                                                sizeof (Setting_GenGroupItem_Data));
+       Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof (Setting_GenGroupItem_Data));
        setting_retvm_if(!item_data, NULL, "calloc failed");
        item_data->keyStr = (char *)g_strdup(keyStr);
        item_data->sub_desc = (char *)g_strdup(sub_desc);
@@ -1218,6 +1212,105 @@ Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object *
        item_data->chk_status = chk_status;
        item_data->chk_change_cb = chk_change_cb;
 
+    //setting_call_back_func chk_focus_out_cb,
+
+
+       item_data->input_type = input_type;
+       item_data->isPasswordFlag = isPasswordFlag;
+       item_data->isFocusFlag = isFocusFlag;
+
+       Elm_Entry_Filter_Accept_Set *digits_filter_data =
+           (Elm_Entry_Filter_Accept_Set *) calloc(1, sizeof (Elm_Entry_Filter_Accept_Set));
+       if(!digits_filter_data) {
+               SETTING_TRACE_ERROR("calloc Elm_Entry_Filter_Accept_Set failed");
+               // free allocated data
+               G_FREE(item_data->keyStr);
+               G_FREE(item_data->sub_desc);
+               G_FREE(item_data->l_swallow_path);
+               G_FREE(item_data->r_swallow_path);
+               FREE(item_data);
+               return NULL;
+       }
+
+
+       Elm_Entry_Filter_Limit_Size *limit_filter_data =
+           (Elm_Entry_Filter_Limit_Size *) calloc(1, sizeof (Elm_Entry_Filter_Limit_Size));
+       if(!limit_filter_data) {
+               SETTING_TRACE_ERROR("calloc Elm_Entry_Filter_Limit_Size failed");
+
+               // free allocated data
+               G_FREE(item_data->keyStr);
+               G_FREE(item_data->sub_desc);
+               G_FREE(item_data->l_swallow_path);
+               G_FREE(item_data->r_swallow_path);
+               FREE(item_data);
+               FREE(digits_filter_data);
+               return NULL;
+       }
+
+       limit_filter_data->max_char_count = max_char_count;
+       limit_filter_data->max_byte_count = max_byte_count;
+       digits_filter_data->accepted = (char *)g_strdup(accepted);
+       digits_filter_data->rejected = (char *)g_strdup(rejected);
+
+       item_data->digits_filter_data = digits_filter_data;
+       item_data->limit_filter_data = limit_filter_data;
+       item_data->userdata = sel_data;
+
+       if (gl_sel) {
+               item_data->item =
+                   elm_genlist_item_append(genlist, itc, item_data, NULL,
+                                           ELM_GENLIST_ITEM_NONE, gl_sel,
+                                           sel_data);
+       } else {
+               item_data->item =
+                   elm_genlist_item_append(genlist, itc, item_data, NULL,
+                                           ELM_GENLIST_ITEM_NONE,
+                                           _gl_Gendial_sel, sel_data);
+       }
+       return item_data;
+}
+
+/**
+ * Create 1entry style item
+ * focus out
+ * @return a pointer to Setting_GenGroupItem_Data
+ */
+Setting_GenGroupItem_Data *setting_create_Gendial_field_entry_fo(
+                                                                 Evas_Object * genlist,
+                                                             const Elm_Genlist_Item_Class *itc,
+                                                             setting_call_back_func gl_sel,
+                                                             void *sel_data,
+                                                             SWALLOW_Type swallow_type,
+                                                             char *l_icon_path,
+                                                             char *r_icon_path,
+                                                             int chk_status,
+                                                             const char *keyStr,
+                                                             char *sub_desc,
+                                                             setting_call_back_func chk_change_cb,
+                                                             setting_call_back_func chk_focus_out_cb,
+                                                             Elm_Input_Panel_Layout input_type,
+                                                             bool isPasswordFlag,
+                                                             bool isFocusFlag,
+                                                             int max_char_count,
+                                                             int max_byte_count,
+                                                             char *accepted,
+                                                             char *rejected)
+{
+       /* SETTING_TRACE_BEGIN; */
+       Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof (Setting_GenGroupItem_Data));
+       setting_retvm_if(!item_data, NULL, "calloc failed");
+       item_data->keyStr = (char *)g_strdup(keyStr);
+       item_data->sub_desc = (char *)g_strdup(sub_desc);
+       item_data->swallow_type = swallow_type;
+       item_data->l_swallow_path = (char *)g_strdup(l_icon_path);
+       item_data->r_swallow_path = (char *)g_strdup(r_icon_path);
+       item_data->chk_status = chk_status;
+       item_data->chk_change_cb = chk_change_cb;
+       item_data->stop_change_cb = chk_focus_out_cb;
+       item_data->isSinglelineFlag = true;
+    //setting_call_back_func chk_focus_out_cb,
+
        item_data->input_type = input_type;
        item_data->isPasswordFlag = isPasswordFlag;
        item_data->isFocusFlag = isFocusFlag;
index 8d02efa..a1e67fa 100755 (executable)
@@ -932,6 +932,7 @@ static void __entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
        __cfg_file_write((Draw_Data *)list_item->belongs_to);
 
        FREE(entry_str_utf8);
+       SETTING_TRACE_END;
 }
 
 
@@ -976,6 +977,12 @@ static void __editbox_changed_cb(void *data, Evas_Object *obj,
 }
 
 
+/**
+ *  editbox
+ *
+ * @see also __editbox_changed_cb
+ * @see also __entry_unfocus_cb
+ */
 static void* editbox_func(void *data, xmlNode *xmlObj)
 {
        SETTING_TRACE_BEGIN;
@@ -1011,13 +1018,15 @@ static void* editbox_func(void *data, xmlNode *xmlObj)
 
        } else {
                // add max length filter
-               list_item = setting_create_Gendial_field_entry(
+               list_item = setting_create_Gendial_field_entry_fo(
                                                                        pd->scroller,
                                                                        &(itc_1icon),
                                                                        __editbox_list_cb,
                                                                        pd,
                                                                        SWALLOW_Type_LAYOUT_ENTRY,
-                                                                       NULL, NULL, 0, title, key_str, __editbox_changed_cb,
+                                                                       NULL, NULL, 0, title, key_str,
+                                                                       __editbox_changed_cb,
+                                                                       __entry_unfocus_cb,
                                                                        ELM_INPUT_PANEL_LAYOUT_NORMAL,
                                                                        false,
                                                                        false,