fixed bug of app-control that didn't work with font-size
[apps/core/preloaded/settings.git] / setting-font / src / setting-font-main.c
index aa2b713..9eba3d2 100755 (executable)
@@ -157,50 +157,51 @@ static void __setting_font_main_genlist_item_create(void *data)
 
        SettingFontUG *ad = (SettingFontUG *)data;
        Elm_Object_Item *item = NULL;
-       item = elm_genlist_item_append(ad->genlist, &(ad->itc_seperator), NULL, NULL,
-                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
-       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-
-       char *font_type_name = NULL;
-       font_type_name = cur_font_get();
-
-       ad->font_type = setting_create_Gendial_exp_parent_field(ad->genlist,
-                                                   &(ad->itc_2text_3_parent),
-                                                   NULL, NULL,
-                                                   SWALLOW_Type_INVALID,
-                                                   SETTING_FONT_TYPE_STR,
-                                                   font_type_name);
-       if (ad->font_type) {
-               ad->font_type->userdata = ad;
-       } else {
-               SETTING_TRACE_ERROR("ad->font_type is NULL");
-       }
-       G_FREE(ad->font_name);
-       ad->font_name = g_strdup(font_type_name);
-       G_FREE(font_type_name);
 
-       if (ad->viewmode == FONT_SEL_VIEW_APPCONTROL)
-               return;
-       //--------------------------------------------------------------------
-
-       // [UI] Font Size
-       int value = -1;
-       int err = -1;
-       int ret = setting_get_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, &value, &err);
-       if (ret != 0) {
-               SETTING_TRACE_ERROR("get vconf failed");
+       if (ad->viewmode == FONT_SIZE_AND_FONT_SEL_UG || ad->viewmode == FONT_SEL_VIEW_APPCONTROL)              // font type only
+       {
+               // [UI] Font Type
+               item = elm_genlist_item_append(ad->genlist, &(ad->itc_seperator), NULL, NULL,
+                                       ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               char *font_type_name = NULL;
+               font_type_name = cur_font_get();
+
+               ad->font_type = setting_create_Gendial_exp_parent_field(ad->genlist,
+                                                               &(ad->itc_2text_3_parent),
+                                                               NULL, NULL,
+                                                               SWALLOW_Type_INVALID,
+                                                               SETTING_FONT_TYPE_STR,
+                                                               font_type_name);
+               if (ad->font_type) {
+                       ad->font_type->userdata = ad;
+               } else {
+                       SETTING_TRACE_ERROR("ad->font_type is NULL");
+               }
+               G_FREE(ad->font_name);
+               ad->font_name = g_strdup(font_type_name);
+               G_FREE(font_type_name);
        }
 
-       ad->font_size = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_2),
-                               __setting_font_main_genlist_sel_cb,
-                               ad, SWALLOW_Type_INVALID, NULL,
-                               NULL, value, SETTING_FONT_SIZE_STR,
-                               __setting_font_main_get_font_size(value), NULL);
-       if (ad->font_size) {
-               ad->font_size->userdata = ad;
-       } else {
-               SETTING_TRACE_ERROR("ad->font_size is NULL");
-       }
+       if (ad->viewmode == FONT_SIZE_AND_FONT_SEL_UG || ad->viewmode == FONT_SIZE_VIEW_APPCONTROL)             // font size only
+       {
+               int err = -1;
+               // [UI] Font Size
+               int ret = setting_get_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, &ad->ret_font_size, &err);
+               if (ret != 0) {
+                       SETTING_TRACE_ERROR("get vconf failed");
+               }
+
+               ad->font_size = setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_2),
+                                       __setting_font_main_genlist_sel_cb,
+                                       ad, SWALLOW_Type_INVALID, NULL,
+                                       NULL, ad->ret_font_size, SETTING_FONT_SIZE_STR,
+                                       __setting_font_main_get_font_size(ad->ret_font_size), NULL);
+               if (ad->font_size) {
+                       ad->font_size->userdata = ad;
+               } else {
+                       SETTING_TRACE_ERROR("ad->font_size is NULL");
+               }
 
 #if DISABlED_CODE
        setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon), NULL,
@@ -208,6 +209,7 @@ static void __setting_font_main_genlist_item_create(void *data)
                                         NULL, NULL, 0, SETTING_FONT_SIZE_DESC, NULL,
                                         NULL);
 #endif
+       }
 }
 
 
@@ -497,7 +499,25 @@ static void __setting_font_main_click_softkey_back_cb(void *data, Evas_Object *o
                ug_send_result(ad->ug, svc);
                service_destroy(svc);
        }
+       else if (ad->viewmode == FONT_SIZE_VIEW_APPCONTROL)
+       {
+               service_h svc;
+               if (service_create(&svc))
+                       return;
+
+               int err;
+               int ret = setting_set_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, &ad->ret_font_size, &err);
 
+               service_add_extra_data(svc, "category", "FontSize");
+               service_add_extra_data(svc, "FontSize", ad->ret_font_size);
+
+               SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","category", "FontSize");
+               SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","FontSize", ad->ret_font_size);
+
+
+               ug_send_result(ad->ug, svc);
+               service_destroy(svc);
+       }
        /* Send destroy request */
        ug_destroy_me(ad->ug);
 }