/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+ *
*/
#include <setting-font-font-size.h>
-typedef struct {
- const char* key_font_name;
- int font_size;
-} settings_font_size_table;
-
-static char* result_str_arr[] = {"Small","Normal","Large","Huge","Giant"};
-static const settings_font_size_table font_size_table[] = {
- {"IDS_EMAIL_POP_GIANT_M_TEXTSIZE", SYSTEM_SETTINGS_FONT_SIZE_GIANT},
- {"IDS_EMAIL_OPT_HUGE_M_TEXTSIZE", SYSTEM_SETTINGS_FONT_SIZE_HUGE},
- {"IDS_ST_BODY_TEXTSTYLE_LARGE", SYSTEM_SETTINGS_FONT_SIZE_LARGE},
- {"IDS_ST_BODY_NORMAL_T_PROFILE", SYSTEM_SETTINGS_FONT_SIZE_NORMAL},
- {"IDS_ST_BODY_SMALL_M_TEXTSIZE", SYSTEM_SETTINGS_FONT_SIZE_SMALL},
- {NULL, 0}
- };
#define STR_FONT_SIZE_CHANGING "IDS_ST_BODY_CHANGING_THE_FONT_SIZE_IN_ACCESSIBILITY_SETTINGS_WILL_OVERRIDE_THE_FONT_SIZE_IN_EACH_APPLICATION"
-static void __setting_font_font_size_click_softkey_back_cb(void *data, Evas_Object * obj, void *event_info);
+static Eina_Bool __setting_font_font_size_click_softkey_back_cb(void *data, Elm_Object_Item *it);
static int setting_font_font_size_create(void *cb);
static int setting_font_font_size_destroy(void *cb);
.cleanup = setting_font_font_size_cleanup,
};
+static char* result_str_arr[] = {"Small","Normal","Large","Huge","Giant"};
+
+static int convert_font_size(int size)
+{
+ int font_size;
+ if (SYSTEM_SETTINGS_FONT_SIZE_SMALL == size) {
+ font_size = LABEL_FONT_SIZE_SMALL;
+ } else if (SYSTEM_SETTINGS_FONT_SIZE_LARGE == size) {
+ font_size = LABEL_FONT_SIZE_LARGE;
+ } else if (SYSTEM_SETTINGS_FONT_SIZE_HUGE == size) {
+ font_size = LABEL_FONT_SIZE_HUGE;
+ } else if (SYSTEM_SETTINGS_FONT_SIZE_GIANT == size) {
+ font_size = LABEL_FONT_SIZE_GIANT;
+ } else {
+ font_size = LABEL_FONT_SIZE_NORMAL;
+ }
+ return font_size;
+}
+
+char *get_font_size_name_by_id(char* font_size_id)
+{
+ SETTING_TRACE_BEGIN;
+ int i = 0;
+ while(font_size_table[i].key_font_name){
+ if(!safeStrCmp(font_size_table[i].key_font_name, font_size_id)){
+ return setting_customize_text(_(font_size_table[i].key_font_name), convert_font_size(font_size_table[i].font_size),NULL,NULL);
+ }
+ i++;
+ }
+ return NULL;
+
+}
+char *_item_text_font_size_keystr2_get(void *data, Evas_Object *obj, const char *part)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retvm_if(data == NULL, NULL, "Data parameter is NULL");
+ Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) data;
+
+ if (!strcmp(part, "elm.text.main.left")) {
+ if (item_data->keyStr2) {
+ //SETTING_TRACE("gl update item_data->keyStr2[%s]",item_data->keyStr2);
+ return get_font_size_name_by_id(item_data->keyStr2);
+ }
+ }
+ SETTING_TRACE_END;
+ return NULL;
+}
+
/* ***************************************************
**
** basic func
**
** **************************************************/
-static void __process_after_item_realized(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- SettingFontUG *ad = data;
- if (ad->popup)
- {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
-}
static int setting_font_font_size_create(void *cb)
{
SettingFontUG *ad = (SettingFontUG *) cb;
Evas_Object *scroller;
-
+ setting_create_Gendial_itc("dialogue/1text.1icon.3.tb", &(ad->itc_1text_1icon_2_font_size));
+ ad->itc_1text_1icon_2_font_size.func.text_get = _item_text_font_size_keystr2_get;
retvm_if(ad->win_main_layout == NULL, SETTING_DRAW_ERR_FAIL_LOAD_EDJ,
"win_main_layout is NULL");
if (ad->view_to_load == &setting_view_font_font_size) {
ad->ly_main = setting_create_layout_navi_bar_genlist(ad->win_main_layout,
ad->win_get,
- _("IDS_ST_MBODY_FONT_SIZE"),
+ "IDS_ST_MBODY_FONT_SIZE",
_("IDS_COM_BODY_BACK"), NULL,
- __setting_font_font_size_click_softkey_back_cb, NULL,
+ (setting_call_back_func)__setting_font_font_size_click_softkey_back_cb, NULL,
ad, &scroller, &ad->navibar);
+ ad->navi_it_font_size = elm_naviframe_top_item_get(ad->navibar);
} else {
- setting_push_layout_navi_bar_genlist(ad->win_main_layout,
+ ad->navi_it_font_size = setting_push_layout_navi_bar_genlist(ad->win_main_layout,
ad->win_get,
- _("IDS_ST_MBODY_FONT_SIZE"),
+ "IDS_ST_MBODY_FONT_SIZE",
_("IDS_COM_BODY_BACK"),
NULL,
- __setting_font_font_size_click_softkey_back_cb,
+ (setting_call_back_func)__setting_font_font_size_click_softkey_back_cb,
NULL,
ad, &scroller, ad->navibar);
}
// [UI] separator
Elm_Object_Item *item =
- elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
+ elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
elm_radio_state_value_set(ad->size_rdg, -1);
int idx = 0;
- Setting_GenGroupItem_Data *item_data;
+
while(font_size_table[idx].key_font_name) {
- item_data = setting_create_Gendial_field_1radio(scroller, &(ad->itc_1text_1icon_2),
+ /*item_data = setting_create_Gendial_field_1radio(scroller, &(ad->itc_1text_1icon_2),
setting_font_font_size_list_mouse_up_cb,
ad->size_rdg,
SWALLOW_Type_1RADIO_1LABLE,
ad->size_rdg, font_size_table[idx].font_size,
- font_size_table[idx].key_font_name,
- NULL);
- if(item_data) {
- item_data->userdata = ad;
+ setting_customize_text(_(font_size_table[idx].key_font_name), convert_font_size(font_size_table[idx].font_size),NULL,NULL),
+ NULL);*/
+ Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1,sizeof(Setting_GenGroupItem_Data));
+ setting_retvm_if(!item_data, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, "calloc failed");
+ item_data->keyStr2 = (char *)g_strdup(font_size_table[idx].key_font_name);//setting_customize_text(_(font_size_table[idx].key_font_name), convert_font_size(font_size_table[idx].font_size),NULL,NULL);//for display
+ item_data->keyStr = (char *)g_strdup(_(font_size_table[idx].key_font_name));//for tts feature;
+ item_data->swallow_type = SWALLOW_Type_1RADIO_1LABLE;
+ item_data->chk_status = font_size_table[idx].font_size;
+ item_data->chk_change_cb = NULL;
+ item_data->rgd = ad->size_rdg;
+ item_data->userdata = ad;
+ if ( idx == 0) {
+ item_data->group_style = SETTING_GROUP_STYLE_TOP;
+ } else if(idx == sizeof(font_size_table)/sizeof(font_size_table[0])-1){
+ item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
} else {
- SETTING_TRACE_ERROR("item_data is null");
- return SETTING_RETURN_FAIL;
+ item_data->group_style = SETTING_GROUP_STYLE_CENTER;
}
+
+ item_data->item = elm_genlist_item_append(scroller, &(ad->itc_1text_1icon_2_font_size), item_data, NULL,
+ ELM_GENLIST_ITEM_NONE, setting_font_font_size_list_mouse_up_cb,ad->size_rdg);
+
idx++;
}
+
// [UI] help text
- setting_create_Gendial_field_def(scroller, &(ad->itc_bg_1icon), NULL,
- ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
- NULL, NULL, 0, STR_FONT_SIZE_CHANGING, NULL,
- NULL);
+ ADD_GL_HELP(scroller,STR_FONT_SIZE_CHANGING);
// update check status - init values
setting_update_chk_status(ad->size_rdg, INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE);
setting_view_font_font_size.is_create = 1;
- evas_object_smart_callback_add(scroller, "realized", __process_after_item_realized, ad);
+ evas_object_smart_callback_add(scroller, "realized", __gl_realized_cb, ad);
return SETTING_RETURN_SUCCESS;
}
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingFontUG *ad = (SettingFontUG *) cb;
- if (ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
if (ad->view_to_load == &setting_view_font_font_size) {
if (ad->ly_main) {
} else {
elm_naviframe_item_pop(ad->navibar);
}
+ if(ad->navi_it_font_size){
+ ad->navi_it_font_size = NULL;
+ }
+ if(ad->size_rdg != NULL){
+ ad->size_rdg = NULL;
+ }
setting_view_font_font_size.is_create = 0;
return SETTING_RETURN_SUCCESS;
**
** **************************************************/
-static void __setting_font_font_size_click_softkey_back_cb(void *data, Evas_Object * obj, void *event_info)
+static Eina_Bool __setting_font_font_size_click_softkey_back_cb(void *data, Elm_Object_Item *it)
{
//error check
- ret_if(data == NULL);
+ retv_if(data == NULL, EINA_FALSE);
SettingFontUG *ad = (SettingFontUG *) data;
if (ad->view_to_load == &setting_view_font_font_size) {
- int err = 0;
int value = 0;
- int ret = setting_get_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, &value, &err);
- setting_retm_if(ret != 0, "fail to get vconf");
+ int ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &value);
+ setting_retvm_if(ret != 0, EINA_FALSE, "fail to get vconf");
- service_h svc;
- if (service_create(&svc)) return;
+ app_control_h svc;
+ if (app_control_create(&svc)) {
+ return EINA_FALSE;
+ }
- service_add_extra_data(svc, "category", "FontSize");
- service_add_extra_data(svc, "FontSize", result_str_arr[value]);
+ app_control_add_extra_data(svc, "category", "FontSize");
+ app_control_add_extra_data(svc, "FontSize", result_str_arr[value]);
SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","category", "FontSize");
SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","FontSize", result_str_arr[value]);
ug_send_result(ad->ug, svc);
- service_destroy(svc);
+ app_control_destroy(svc);
ug_destroy_me(ad->ug);
} else {
setting_view_change(&setting_view_font_font_size, &setting_view_font_main, ad);
}
+ return EINA_TRUE;
+}
+static void __setting_font_size_progress_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *) data;
+ if (ad->size_popup) {
+ evas_object_del(ad->size_popup);
+ ad->size_popup = NULL;
+ }
+
+ if(ad->font_size && ad->font_size->item) {
+ elm_genlist_item_expanded_set(ad->font_size->item, FALSE);
+ }
+ //set focus for TTS.
+ //retm_if(ad->cur_focus_item == NULL, "ad->cur_focus_item is NULL");
+ //Evas_Object *eo = elm_object_item_access_object_get(ad->cur_focus_item);
+ //retm_if(eo == NULL, "eo is NULL");
+ //elm_access_highlight_set(eo);
}
-static void setting_font_font_size_list_mouse_up_cb(void *data, Evas_Object *obj, void *event_info)
+static Eina_Bool __font_change_call(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ // logic
+ int ret;
+ ret = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, ad->ret_font_size);
+ if(ret != 0){
+ SETTING_TRACE_ERROR("system call failed with error code %d",ret);
+ }
+
+ // finalize
+ ad->font_size_idler = NULL;
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void setting_font_font_size_list_mouse_up_cb(void *data, Evas_Object *obj, void *event_info)
{
/* error check */
SETTING_TRACE_BEGIN;
setting_retm_if(data == NULL, "Data parameter is NULL");
SettingFontUG *ad = list_item->userdata;
+ ad->cur_focus_item = item;
Evas_Object *radio = data;
elm_radio_value_set(radio, list_item->chk_status);
- int err = 0;
+
int ret = 0;
int old_value = -1;
- ret = setting_get_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, &old_value, &err);
+ ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &old_value);
+ if(ret != 0){
+ SETTING_TRACE_ERROR("system call failed with error code %d",ret);
+ }
+ if (old_value == list_item->chk_status) {
+ return;
+ }
- if (old_value == list_item->chk_status) return;
+ ad->ret_font_size = list_item->chk_status;
//Due to long time taken by font Setting, add the block code when font is Setting.
- if (ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
- }
- ad->popup = setting_create_popup_with_progressbar(ad, ad->win_get,
- "pending_list",
- NULL, NULL, NULL, 0, TRUE, TRUE);
-
- ret = setting_set_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, list_item->chk_status, &err);
- setting_retm_if(ret == -1, "Failed to set vconf");
- font_size_set();
- }
+ //if (ad->size_popup) {
+ // evas_object_del(ad->size_popup);
+ // ad->size_popup = NULL;
+ //}
+ #if 1
+ // original popup
+ ad->size_rdg = NULL;
+ ad->size_popup = setting_create_popup_with_progressbar(ad, ad->win_get,
+ PROGRESSBAR_STYLE,
+ NULL, KeyStr_Loading, __setting_font_size_progress_popup_cb, 3/*0*/, TRUE, TRUE); // 3 seconds to wait in maximum
+ #else
+ setting_create_popup_with_progressbar_withobject(ad, ad->size_popup, ad->win_get,
+ PROGRESSBAR_STYLE,
+ NULL, NULL, __setting_font_size_progress_popup_cb, 3/*0*/, TRUE, TRUE); // 3 seconds to wait in maximum
+
+ //elm_config_all_flush();
+ #endif
+ ad->font_size_idler = ecore_timer_add(1, (Ecore_Task_Cb)__font_change_call, ad);
+}