#include <Ecore_X.h>
#include <setting-font-font-size.h>
+#include <eventsystem.h>
+
#define SETTING_FONT_MAX_LEN 10
#define FONT_BUF_SIZE 256
static int setting_font_main_cleanup(void *cb);
static Eina_Bool __setting_font_main_click_softkey_back_cb(void *data, Elm_Object_Item *it);
+static void _slider_mouse_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static int setting_font_style_is_exist_string(const Eina_List *list, const char *key);
+static void __setting_get_font_size_str(void *data, int size);
+static void __setting_get_font_type_str(void *data, char *font_data);
setting_view setting_view_font_main = {
.create = setting_font_main_create,
.update = setting_font_main_update,
.cleanup = setting_font_main_cleanup,
};
-static int format_font_name_by_id(char *font_data, char *font_name_id, char *temp, int bufsize)
+
+
+static void setting_font_rot_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *) data;
+ if (ad == NULL || ad->win_get == NULL) {
+ return;
+ }
+ int change_ang = elm_win_rotation_get(ad->win_get);
+ enum ug_event event = UG_EVENT_ROTATE_PORTRAIT;
+ switch (change_ang) {
+ case APP_DEVICE_ORIENTATION_0:
+ //SETTING_TRACE("change_ang : 0");
+ ad->rotate_angle = 0;
+ break;
+ case APP_DEVICE_ORIENTATION_180:
+ //SETTING_TRACE("change_ang : 180");
+ ad->rotate_angle = 180;
+ break;
+ case APP_DEVICE_ORIENTATION_270:
+ //SETTING_TRACE("change_ang : 270");
+ ad->rotate_angle = 270;
+ break;
+ case APP_DEVICE_ORIENTATION_90:
+ //SETTING_TRACE("change_ang : 90");
+ ad->rotate_angle = 90;
+ break;
+ default:
+ return;
+ }
+}
+
+char *get_example_style_text(const char *font_size, const char *font_type)
+{
+ char default_example_str[MAX_COMMON_BUFFER_LEN + 1] = {0, };
+ snprintf(default_example_str, MAX_COMMON_BUFFER_LEN,
+ "<color=#000000><font_size=%s><font=%s>%s<br>%s<br>%s</font></font_size></color>",
+ font_size, font_type,
+ "<align=middle>ABCDE</align>",
+ "<align=middle>abcde</align>",
+ "<align=middle>12345!@#$</align>");
+
+ return (char *)g_strdup(default_example_str);
+
+}
+static int _format_font_name_by_id(char *font_data, char *font_name_id, char *temp, int bufsize)
{
retvm_if(font_data == NULL, 0, "Invalid argument: event info is NULL");
int i = 0;
int count = 0;
while (*pos != '\0') {
- /*SETTING_TRACE(">>> %c", *pos); */
if (*pos == ' ') {
SETTING_TRACE(">>> empty ' ' ");
new_name[count] = '\\';
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_COOL_JAZZ"));
} else if (safeStrCmp(font_name_id, "IDS_ST_BODY_FONTSTYLE_ROSEMARY") == 0) {
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_MARUBERI_JPN_DCM") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_MARUBERI_JPN_DCM"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_POP_JPN_DCM") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_POP_JPN_DCM"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_UDMINCHO_JPN") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDMINCHO_JPN"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_UDRGOTHICM_JPN") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDRGOTHICM_JPN"));
- } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_UDGOTHIC_M_FONT") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDGOTHIC_M_FONT"));
} else if (safeStrCmp(font_name_id, "IDS_ST_BODY_DEFAULT_FONT") == 0) {
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_DEFAULT_FONT"));
} else {
setting_retvm_if(data == NULL, NULL, "Data parameter is NULL");
Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) data;
char *ret_str = NULL;
- if (!strcmp(part, "elm.text.main.left")) {
+
+ if (!safeStrCmp(part, "elm.text")) {
if (item_data->keyStr2) {
char temp[FONT_BUF_SIZE] = {0,};
- int ret = format_font_name_by_id(item_data->sub_desc, item_data->keyStr2, temp, FONT_BUF_SIZE);
+ int ret = _format_font_name_by_id(item_data->sub_desc, item_data->keyStr2, temp, FONT_BUF_SIZE);
if (ret == 0) { /* error condition */
SETTING_TRACE_ERROR("Error condition font");
}
+static Evas_Object *_font_size_slider_get(void *data, Evas_Object *obj,
+ const char *part)
+{
+ SETTING_TRACE_BEGIN;
+ retv_if(!data, NULL);
+ Setting_GenGroupItem_Data *item_data = data;
+ SETTING_TRACE(" --------------------> part:%s", part);
+
+ if (!safeStrCmp(part, "elm.icon")) { /* CENTER WHOLE */
+ if (SWALLOW_Type_LAYOUT_5STEP_SLIDER == item_data->swallow_type) {
+ SETTING_TRACE("Add 5Step Slider");
+
+ Evas_Object *layout = elm_layout_add(obj);
+ Eina_Bool ret = elm_layout_file_set(layout, SETTING_THEME_EDJ_NAME, "font_slider");
+ if (ret == EINA_TRUE) { /* error condition */
+ SETTING_TRACE("elm_layout_file_set - OK");
+ } else {
+ SETTING_TRACE_ERROR("elm_layout_file_set - FAILED");
+ }
+
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ Evas_Object *label = elm_label_add(obj);
+ elm_object_text_set(label, _("<color=#000000><font_size=23>A</font_size></color>"));
+ evas_object_show(label);
+ elm_object_part_content_set(layout, "left_text", label);
+ Evas_Object *label2 = elm_label_add(obj);
+ elm_object_text_set(label2, _("<color=#000000><font_size=30>A</font_size></color>"));
+ evas_object_show(label2);
+ elm_object_part_content_set(layout, "right_text", label2);
+ Evas_Object *li_slider =
+ setting_create_5step_slider(obj, item_data->evas,
+ item_data->l_swallow_path,
+ item_data->r_swallow_path,
+ item_data->chk_status,
+ item_data->isIndicatorVisible,
+ item_data->slider_min,
+ item_data->slider_max,
+ item_data->chk_change_cb,
+ item_data->start_change_cb,
+ item_data->stop_change_cb,
+ item_data);
+ item_data->eo_check = li_slider;
+ item_data->mouse_up_cb = _slider_mouse_cb;
+ evas_object_event_callback_add(li_slider, EVAS_CALLBACK_MOUSE_UP, _slider_mouse_cb, item_data);
+
+ elm_object_part_content_set(layout, "slider", li_slider);
+ return layout;
+ } else {
+ SETTING_TRACE("item_data->keyStr:%s", item_data->keyStr);
+ SETTING_TRACE("item_data->sub_desc:%s", item_data->sub_desc);
+ int padding_h = 0;
+ Evas_Object *box = elm_box_add(obj);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_box_padding_set(box, 10, padding_h);
+
+ elm_box_pack_end(box, setting_create_blank_rect_customize(obj, 1, 20));
+
+ item_data->eo_check = setting_create_textbox(obj, item_data->sub_desc);
+ elm_box_pack_end(box, item_data->eo_check);
+ elm_box_pack_end(box, setting_create_blank_rect_customize(obj, 1, 20));
+
+ return box;
+ }
+ }
+ return NULL;
+}
+
+static int setting_font_style_is_exist_string(const Eina_List *list, const char *key)
+{
+ Eina_List *l = NULL;
+ if ((key == NULL) || (list == NULL)) {
+ return 0;
+ }
+
+ for (l = list; l; l = eina_list_next(l)) {
+ if (l->data && (!strcmp((char *)l->data, key))) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
/**
* [API] get a font list from current system
break;
}
}
- if (family_result && eina_list_data_find(list, family_result) == NULL) {
- list = eina_list_append(list, family_result);
+ if (family_result && !setting_font_style_is_exist_string(list, family_result)) {
+ list = eina_list_sorted_insert(list, safeStrCmp, strdup(family_result));
SETTING_TRACE_DEBUG("-------- ADDED FONT - family = %s", family_result);
/* list = eina_list_append(list, family_result); */
/* for TEST because there's 1 font on target. */
font_config = NULL;
return list;
}
-#if 0
-static void __setting_font_main_genlist_sel_cb(void *data, Evas_Object *obj, void *event_info)
-{
- /*error check */
- setting_retm_if(data == NULL, "Data parameter is NULL");
-
- retm_if(event_info == NULL, "Invalid argument: event info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *) event_info;
- elm_genlist_item_selected_set(item, 0);
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
-
- SettingFontUG *ad = (SettingFontUG *)data;
-
- if (ad->font_size == list_item) {
- setting_view_change(&setting_view_font_main, &setting_view_font_font_size, ad);
- }
-}
-#endif
int get_font_name_id(char *font_data, char *temp, int bufsize)
{
/*SETTING_TRACE("font data : %s", (char*)font_data); */
- /*char trans_font_type_name[FONT_BUF_SIZE] = {0,}; */
- /*SETTING_TRACE(">>> new_name length : %d : string : %s", count, (char*)new_name); */
if (safeStrCmp(font_data, "Choco cooky") == 0) {
snprintf(temp, bufsize, "%s", "IDS_ST_BODY_CHOCO_COOKY");
} else if (safeStrCmp(font_data, "Cool jazz") == 0) {
snprintf(temp, bufsize, "%s", "IDS_ST_BODY_COOL_JAZZ");
} else if (safeStrCmp(font_data, "Rosemary") == 0) {
snprintf(temp, bufsize, "%s", "IDS_ST_BODY_FONTSTYLE_ROSEMARY");
- } else if (safeStrCmp(font_data, "HelveticaNeue") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME");
- } else if (safeStrCmp(font_data, "Maruberi") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_MARUBERI_JPN_DCM");
- } else if (safeStrCmp(font_data, "POP") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_POP_JPN_DCM");
- } else if (safeStrCmp(font_data, "UDMincho") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_UDMINCHO_JPN");
- } else if (safeStrCmp(font_data, "UDRGothic") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_UDRGOTHICM_JPN");
- } else if (safeStrCmp(font_data, "UDGothic") == 0) {
- snprintf(temp, bufsize, "%s", "IDS_ST_BODY_UDGOTHIC_M_FONT");
} else {
snprintf(temp, bufsize, "%s", font_data);
}
} else if (safeStrCmp(font_type_name, "Rosemary") == 0) {
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
/*SETTING_TRACE("%s", trans_font_type_name); */
- } else if (safeStrCmp(font_type_name, "HelveticaNeue") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME"));
- /*SETTING_TRACE("%s", trans_font_type_name); */
- } else if (safeStrCmp(font_type_name, "Maruberi") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_MARUBERI_JPN_DCM"));
- /*SETTING_TRACE("%s", trans_font_type_name); */
- } else if (safeStrCmp(font_type_name, "POP") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_POP_JPN_DCM"));
- /*SETTING_TRACE("%s", trans_font_type_name); */
- } else if (safeStrCmp(font_type_name, "UDMincho") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDMINCHO_JPN"));
- /*SETTING_TRACE("%s", trans_font_type_name); */
- } else if (safeStrCmp(font_type_name, "UDRGothic") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDRGOTHICM_JPN"));
- /*SETTING_TRACE("%s", trans_font_type_name); */
} else {
snprintf(trans_font_type_name, bufsize, "%s", font_type_name);
/*SETTING_TRACE("%s", trans_font_type_name); */
}
return 1;
}
-void format_default_font(char *font_data, char *temp, int bufsize, char *real_value)
-{
- /*SETTING_TRACE("real_value : %s", (char*)real_value); */
- char *pos = real_value;
- char new_name[bufsize];
- int i = 0;
- int count = 0;
- while (*pos != '\0') {
- /*SETTING_TRACE(">>> %c", *pos); */
- if (*pos == ' ') {
- /*SETTING_TRACE(">>> empty ' ' "); */
- new_name[count] = '\\';
- count++;
- new_name[count] = ' ';
- } else {
- new_name[count] = real_value[i];
- }
-
- count++;
- pos++;
- i++;
- }
- new_name[count] = '\0';
- snprintf(temp, bufsize, "<font=%s>%s</font>", new_name, font_data);
-}
-
-int get_font_name_tag(char *font_data, char *temp, int bufsize)
-{
- /*SETTING_TRACE("font data : %s", (char*)font_data); */
-
- char *pos = font_data;
- char new_name[bufsize];
- int i = 0;
- int count = 0;
- while (*pos != '\0') {
- /*SETTING_TRACE(">>> %c", *pos); */
- if (*pos == ' ') {
- SETTING_TRACE(">>> empty ' ' ");
- new_name[count] = '\\';
- count++;
- new_name[count] = ' ';
- } else {
- new_name[count] = font_data[i];
- }
-
- count++;
- pos++;
- i++;
- }
- new_name[count] = '\0';
-
- char trans_font_type_name[FONT_BUF_SIZE] = {0,};
- /*SETTING_TRACE(">>> new_name length : %d : string : %s", count, (char*)new_name); */
- if (safeStrCmp(font_data, "Choco cooky") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_CHOCO_COOKY"));
- } else if (safeStrCmp(font_data, "Cool jazz") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_COOL_JAZZ"));
- } else if (safeStrCmp(font_data, "Rosemary") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_FONTSTYLE_ROSEMARY"));
- } else if (safeStrCmp(font_data, "HelveticaNeue") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME"));
- } else if (safeStrCmp(font_data, "Maruberi") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_MARUBERI_JPN_DCM"));
- } else if (safeStrCmp(font_data, "POP") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_POP_JPN_DCM"));
- } else if (safeStrCmp(font_data, "UDMincho") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDMINCHO_JPN"));
- } else if (safeStrCmp(font_data, "UDRGothic") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDRGOTHICM_JPN"));
- } else if (safeStrCmp(font_data, "UDGothic") == 0) {
- snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_UDGOTHIC_M_FONT"));
- } else {
- snprintf(trans_font_type_name, bufsize, "%s", font_data);
- }
-
- /* */
- snprintf(temp, bufsize, "<font=%s>%s</font>", new_name, trans_font_type_name);
- return 1;
-}
-
-static void __setting_font_main_genlist_item_create(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_retm_if(NULL == data, "data is NULL");
-
- SettingFontUG *ad = (SettingFontUG *)data;
- Elm_Object_Item *item = NULL;
- setting_create_Gendial_itc("1line", &(ad->itc_1text_1icon_2_font_size));
- ad->itc_1text_1icon_2_font_size.func.text_get = _item_text_font_size_keystr2_get;
- 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, &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;
- int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_type_name);
- if (ret != 0) {
- SETTING_TRACE_ERROR("system-setting call failed with error code %d", ret);
- }
- SETTING_TRACE("---------------- system-setting call : (%s) ", font_type_name);
-
-#if 0
- char trans_font_type_name[256] = {0,};
- if (safeStrCmp(font_type_name, "Choco cooky") == 0)
- snprintf(trans_font_type_name, 256, "%s", _("IDS_ST_BODY_CHOCO_COOKY"));
- else if (safeStrCmp(font_type_name, "Cool jazz") == 0)
- snprintf(trans_font_type_name, 256, "%s", _("IDS_ST_BODY_COOL_JAZZ"));
- else if (safeStrCmp(font_type_name, "HelveticaNeue") == 0)
- snprintf(trans_font_type_name, 256, "%s", _("IDS_ST_BODY_HELVETICA_NEUE_M_FONT_NAME"));
- else
- snprintf(trans_font_type_name, 256, "%s", font_type_name);
-#else
- char *default_font_name = NULL;
- default_font_name = _get_default_font();
- char trans_font_type_name[FONT_BUF_SIZE] = {0,};
- if (!safeStrCmp(default_font_name, font_type_name)) {
- snprintf(trans_font_type_name, FONT_BUF_SIZE, "%s", SETTING_DEFAULT_FONT_TYPE);
- } else {
- ret = get_font_name_id(font_type_name, trans_font_type_name, FONT_BUF_SIZE);
- }
-#endif
- SETTING_TRACE_DEBUG("current font : %s, trans font name: %s", font_type_name, trans_font_type_name);
-
- 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,
- trans_font_type_name,
- SETTING_GROUP_STYLE_TOP, SETTING_GROUP_STYLE_TOP);
- 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_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_exp_parent_field(ad->genlist, &(ad->itc_2text_3_parent),
- NULL,
- NULL, SWALLOW_Type_INVALID,
- SETTING_FONT_SIZE_STR,
- __get_font_size_str(ad->ret_font_size),
- SETTING_GROUP_STYLE_CENTER, SETTING_GROUP_STYLE_BOTTOM);
- if (ad->font_size) {
- ad->font_size->userdata = ad;
- ad->font_size->group_style = SETTING_GROUP_STYLE_BOTTOM;
- } else {
- SETTING_TRACE_ERROR("ad->font_size is NULL");
- }
-
-#if DISABlED_CODE
- ADD_GL_HELP(ad->genlist, SETTING_FONT_SIZE_DESC);
-#endif
- }
-
- if (ad->font_expand_state == FONT_EXPAND_STATE_FONT_TYPE) {
- if (ad->font_type && ad->font_type->item) {
- elm_genlist_item_expanded_set(ad->font_type->item, TRUE);
- }
- } else if (ad->font_expand_state == FONT_EXPAND_STATE_FONT_SIZE) {
- if (ad->font_size && ad->font_size->item) {
- elm_genlist_item_expanded_set(ad->font_size->item, TRUE);
- }
- }
-}
static void __setting_progress_popup_cb(void *data, Evas_Object *obj, void *event_info)
{
ad->main_popup = NULL;
}
ad->font_change_status = SELECTED_FONT_CHANGE_DONE;
- /*fix PLM issue P130606-3323, per tester's request, need to keep in current font veiw after change the font type*/
- /*ug_destroy_me(ad->ug); */
- if (ad->font_type && ad->font_type->item) {
- elm_genlist_item_expanded_set(ad->font_type->item, FALSE);
- }
+
+ ug_destroy_me(ad->ug);
}
-static Eina_Bool __font_type_change_call(void *data)
+static void _event_set_font_type_helper(char *font_name)
{
- SETTING_TRACE_BEGIN;
- SettingFontUG *ad = (SettingFontUG *) data;
-
- /* logic */
- system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, ad->font_name);
-
- /* finalize */
- ad->font_type_timer = NULL;
- return ECORE_CALLBACK_CANCEL;
+ int ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, font_name);
+ if (ret == SYSTEM_SETTINGS_ERROR_NONE) {
+ /* on success */
+ SETTING_TRACE("SYSTEM_SETTINGS_KEY_FONT_TYPE is OK : %s", font_name);
+ }
}
-#if 0
-static void __setting_font_main_popup_cb(void *data, Evas_Object *obj, void *event_info)
+static Eina_Bool __slide_timer(void *data)
{
SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "Data parameter is NULL");
- SettingFontUG *ad = (SettingFontUG *) data;
+ Setting_GenGroupItem_Data *list_item = data;
+ SettingFontUG *ad = list_item->userdata;
- switch (btn_type(obj)) {
- case POPUP_RESPONSE_OK: {
- /* extract font name from tag mixed string */
- SETTING_TRACE("??? --> popup - get FONT : %s ", ad->subitem->keyStr);
- SETTING_TRACE("sub_desc --> popup - get FONT : %s ", ad->subitem->sub_desc);
-
- /* set font name to font main and font config */
- /*for mincho font type, need to display "Mincho",but need to update the real font with "UDMincho"*/
- /*keyStr is used to store the string "Mincho", and sub_desc is used to store "UDMDu4"*/
- ad->font_type->sub_desc = (char *)g_strdup(ad->subitem->keyStr);
- elm_object_item_data_set(ad->font_type->item, ad->font_type);
- elm_genlist_item_update(ad->font_type->item);
- /* sub - descc */
- char *font_name = g_strdup(ad->subitem->sub_desc);
-
- ad->prev_font = ad->subitem->chk_status;
- G_FREE(ad->font_name);
- ad->font_name = (char *)g_strdup(_(font_name));
- SETTING_TRACE("ad->subitem->keyStr2 = %s", font_name);
- elm_radio_value_set(ad->subitem->rgd, ad->subitem->chk_status);
- /*when the expandlist item is NOT expanded, the subitem object is not existed,so need to clear the list*/
- if (ad->font_type_list != NULL) {
- Setting_GenGroupItem_Data *font_type_subitem = NULL;
- EINA_LIST_FREE(ad->font_type_list, font_type_subitem);
- ad->font_type_list = NULL;
- }
-#if 0
- /*vconf_set_str(VCONFKEY_SETAPPL_SETTING_FONT_NAME, font_name); */
- system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, font_name);
- G_FREE(font_name);
-#endif
-
- /* waiting */
- /*Due to long time taken by font Setting, add the block code when font is Setting. */
- if (ad->main_popup) {
- evas_object_del(ad->main_popup);
- ad->main_popup = NULL;
- }
-
- /* font type popup */
- ad->main_popup = setting_create_popup_with_progressbar(ad, ad->win_get,
- PROGRESSBAR_STYLE,
- NULL, KeyStr_Loading, __setting_progress_popup_cb, 3/*0*/, TRUE, TRUE); /* 3 seconds to wait in maximum */
+ double val = elm_slider_value_get(list_item->eo_check);
+ int value = (int)(val + 0.5);
+ SETTING_TRACE("val:%f", val);
+ elm_slider_value_set(list_item->eo_check, value);
+ list_item->chk_status = elm_slider_value_get(list_item->eo_check);
- /* ecore timer for change actual font */
- ad->font_type_timer = ecore_timer_add(1, (Ecore_Task_Cb)__font_type_change_call, ad);
- break;
- }
- case POPUP_RESPONSE_CANCEL: {
- elm_radio_value_set(ad->subitem->rgd, ad->prev_font);
- if (ad->main_popup) {
- evas_object_del(ad->main_popup);
- ad->main_popup = NULL;
- }
- ad->font_change_status = SELECTED_FONT_CHANGE_DONE;
- break;
- }
- default: {
- break;
- }
+ if (ad->init_font_size == list_item->chk_status) {
+ ad->size_change_flag = FALSE;
+ } else {
+ ad->size_change_flag = TRUE;
+ }
+ ad->ret_font_size = list_item->chk_status;
+
+ if (ad->font_example) {
+ __setting_get_font_size_str(ad, list_item->chk_status);
+ char *tmp = ad->font_example->sub_desc;
+ ad->font_example->sub_desc = get_example_style_text(ad->font_size_str, ad->font_type_str);
+ G_FREE(tmp);
+ elm_entry_entry_set(ad->font_example->eo_check, ad->font_example->sub_desc);
}
+
+ /* finalize */
+ ad->timer = NULL;
+ return ECORE_CALLBACK_CANCEL;
}
-static void __setting_font_main_popup(void *data)
+static void __font_size_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "Data parameter is NULL");
- SettingFontUG *ad = (SettingFontUG *) data;
-
- char temp[FONT_BUF_SIZE] = {0,};
- format_font_name_by_id(ad->subitem->sub_desc, ad->subitem->keyStr2, temp, FONT_BUF_SIZE);
- char popup_desc[SETTING_STR_SLP_LEN + 1] = {0,};
- snprintf(popup_desc, SETTING_STR_SLP_LEN, _(SETTING_FONT_POPUP_DESC), temp);
- if (!ad->main_popup) {
- ad->main_popup = setting_create_popup_with_btn(ad, ad->win_get, NULL,
- popup_desc,
- __setting_font_main_popup_cb, 0,
- 2, _("IDS_COM_SK_YES"), _("IDS_COM_SK_NO"));
+ retm_if(data == NULL, "Data parameter is NULL");
+ Setting_GenGroupItem_Data *list_item = data;
+ SettingFontUG *ad = list_item->userdata;
+ retm_if(ad == NULL, "ad parameter is NULL");
+ /*for sliding performance */
+ if (ad->timer) {
+ ecore_timer_del(ad->timer);
+ ad->timer = NULL;
}
+ ad->timer = ecore_timer_add(0.2, (Ecore_Task_Cb)__slide_timer, list_item);
}
-#endif
/**
* [UI][expandable list][event handler:selection][font change]
*/
-void __setting_font_main_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
+void setting_font_main_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
/* error check */
if (ad->font_change_status == SELECTED_FONT_CHANGE_IN_PROCESS) {
return;
}
- ad->font_change_status = SELECTED_FONT_CHANGE_IN_PROCESS;
ad->subitem = data_subItem;
/* Fix PLM P131016-04680
when user check the option, make sure the radio button is checked for prev_font font item
elm_radio_value_set(ad->subitem->rgd, data_subItem->chk_status);
/* extract font name from tag mixed string */
- SETTING_TRACE("??? --> popup - get FONT : %s ", ad->subitem->keyStr);
+ SETTING_TRACE("ad->subitem->keyStr --> popup - get FONT : %s ", ad->subitem->keyStr);
SETTING_TRACE("sub_desc --> popup - get FONT : %s ", ad->subitem->sub_desc);
/* set font name to font main and font config */
/*for mincho font type, need to display "Mincho",but need to update the real font with "UDMincho"*/
/*keyStr is used to store the string "Mincho", and sub_desc is used to store "UDMDu4"*/
- ad->font_type->sub_desc = (char *)g_strdup(ad->subitem->keyStr);
- elm_object_item_data_set(ad->font_type->item, ad->font_type);
- elm_genlist_item_update(ad->font_type->item);
+
+ if (ad->font_type) {
+ ad->font_type->sub_desc = (char *)g_strdup(ad->subitem->keyStr);
+ elm_object_item_data_set(ad->font_type->item, ad->font_type);
+ elm_genlist_item_update(ad->font_type->item);
+ }
+
+ if (ad->font_example) {
+ __setting_get_font_type_str(ad, ad->subitem->sub_desc);
+ char *tmp = ad->font_example->sub_desc;
+ SETTING_TRACE_DEBUG("ad->font_type_str:%s", ad->font_type_str);
+ ad->font_example->sub_desc = get_example_style_text(ad->font_size_str, ad->font_type_str);
+ G_FREE(tmp);
+ elm_entry_entry_set(ad->font_example->eo_check, ad->font_example->sub_desc);
+ }
+
+ if (ad->init_font_type == data_subItem->chk_status) {
+ ad->type_change_flag = FALSE;
+ } else {
+ ad->type_change_flag = TRUE;
+ }
+
/* sub - descc */
char *font_name = g_strdup(ad->subitem->sub_desc);
eina_list_free(ad->font_type_list);
ad->font_type_list = NULL;
}
-
- /* waiting */
- /*Due to long time taken by font Setting, add the block code when font is Setting. */
- if (ad->main_popup) {
- evas_object_del(ad->main_popup);
- ad->main_popup = NULL;
- } /* font type popup */
- ad->main_popup = setting_create_popup_with_progressbar(ad, ad->win_get,
- PROGRESSBAR_STYLE,
- NULL, KeyStr_Loading, __setting_progress_popup_cb, 3/*0*/, TRUE, TRUE); /* 3 seconds to wait in maximum */
-
- /* ecore timer for change actual font */
- ad->font_type_timer = ecore_timer_add(1, (Ecore_Task_Cb)__font_type_change_call, ad);
}
-/**
-* @brief expandable list handler for font-type
-*
-* @param data
-* @param obj
-* @param event_info
-*/
-static void __setting_font_main_exp_cb(void *data, Evas_Object *obj, void *event_info)
-{
- ret_if(NULL == data || NULL == event_info);
- SETTING_TRACE_BEGIN;
- SettingFontUG *ad = (SettingFontUG *) data;
- Elm_Object_Item *parentItem = event_info; /* parent item */
- Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem); /* parent data */
- Evas_Object *scroller = elm_object_item_widget_get(parentItem);
-
- Evas_Object *rgd = NULL;
- int i = 0;
- int matched_font = -1;
- G_FREE(ad->font_name);
- int ret = 0;
- ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &(ad->font_name));
- if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
- SETTING_TRACE_ERROR("Failed to call system_settings_get_value_string with error cdoe %d", ret);
- ad->font_name = _get_default_font();
- }
- if (data_parentItem == ad->font_type) {
- rgd = elm_radio_add(scroller);
- elm_radio_value_set(rgd, -1);
-
- char *default_font_name = NULL;
- default_font_name = _get_default_font();
- if (NULL != default_font_name) {
- /*char font_name_dispaly[FONT_BUF_SIZE] = {0,}; */
- SETTING_TRACE_DEBUG("default_font_name:%s", default_font_name);
- /*format_default_font(SETTING_DEFAULT_FONT_TYPE, font_name_dispaly,FONT_BUF_SIZE, default_font_name); */
- Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
- setting_retm_if(!item_data, "calloc failed");
- item_data->keyStr2 = (char *)g_strdup(SETTING_DEFAULT_FONT_TYPE);/*for display */
- item_data->keyStr = (char *)g_strdup(_(SETTING_DEFAULT_FONT_TYPE));/*for tts reading */
- item_data->swallow_type = SWALLOW_Type_1RADIO;
- item_data->chk_status = i;
- item_data->rgd = rgd;
- item_data->chk_change_cb = NULL;
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- item_data->sub_desc = strdup(default_font_name); /*the real font type value */
- item_data->item = elm_genlist_item_append(scroller, &(ad->itc_1text_1icon_2), item_data, parentItem, ELM_GENLIST_ITEM_NONE, __setting_font_main_sub_list_sel_cb, ad);
-
- if (item_data) {
- setting_genlist_item_groupstyle_set(item_data, SETTING_GROUP_STYLE_CENTER);
- item_data->userdata = ad;
- if (!safeStrCmp(ad->font_name, (const char *)item_data->sub_desc)) {
- matched_font = i;
- }
- }
- i++;
- ad->font_type_list = eina_list_append(ad->font_type_list, item_data);
- }
-
- Eina_List *font_list = NULL;
- Eina_List *l = NULL;
- FcChar8 *font_data = NULL;
- font_list = __setting_font_main_available_list_get();
- EINA_LIST_FOREACH(font_list, l, font_data) {
- if (safeStrCmp(default_font_name, (char *)font_data) != 0) {
- char keyStr[FONT_BUF_SIZE] = {0,};
- get_font_name_str((char *)font_data, keyStr, FONT_BUF_SIZE);
- char temp[FONT_BUF_SIZE] = {0,};
- /*int ret = get_font_name_tag(font_data, temp, FONT_BUF_SIZE); */
- get_font_name_id((char *)font_data, temp, FONT_BUF_SIZE);
- SETTING_TRACE_DEBUG("font data : %s", (char *)font_data);
- Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
- setting_retm_if(!item_data, "calloc failed");
- item_data->keyStr2 = (char *)g_strdup(temp);/*for display */
- item_data->keyStr = (char *)g_strdup(keyStr);/*for tts reading */
- item_data->swallow_type = SWALLOW_Type_1RADIO;
- item_data->chk_status = i;
- item_data->rgd = rgd;
- item_data->chk_change_cb = NULL;
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- item_data->sub_desc = strdup((char *)font_data);
- item_data->item = elm_genlist_item_append(scroller, &(ad->itc_1text_1icon_2), item_data, parentItem, ELM_GENLIST_ITEM_NONE, __setting_font_main_sub_list_sel_cb, ad);
-
- if (item_data) {
- item_data->userdata = ad;
- /*if (!safeStrCmp(ad->font_name, (const char*)font_data)) { */
- if (!safeStrCmp(ad->font_name, (const char *)item_data->sub_desc)) {
- matched_font = i;
- }
- }
- i++;
- ad->font_type_list = eina_list_append(ad->font_type_list, item_data);
- }
- }
-
- /* update check status */
- if (matched_font != -1) {
- elm_radio_value_set(rgd, matched_font);
- }
-
- ad->prev_font = matched_font;
- G_FREE(default_font_name);
- } else if (data_parentItem == ad->font_size) {
- /* [UI] create the font list */
- ad->size_rdg = elm_radio_add(scroller);
- elm_radio_state_value_set(ad->size_rdg, -1);
-
- int idx = 0;
-
- while (font_size_table[idx].key_font_name) {
- Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
- setting_retm_if(!item_data, "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 == sizeof(font_size_table) / sizeof(font_size_table[0]) - 2) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- } else {
- 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, parentItem,
- ELM_GENLIST_ITEM_NONE, setting_font_font_size_list_mouse_up_cb, ad->size_rdg);
-
- idx++;
- }
- setting_update_chk_status(ad->size_rdg, INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE);
- }
-}
-static void __setting_font_main_vconf_change_cb(keynode_t *key, void *data)
+static void __font_vconf_change_cb(keynode_t *key, void *data)
{
SETTING_TRACE_BEGIN;
setting_retm_if(NULL == key, "key is NULL");
}
}
}
- } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE)) {
- 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");
- }
- if (ad->font_size) {
- G_FREE(ad->font_size->sub_desc);
- ad->font_size->sub_desc = (char *)g_strdup(__get_font_size_str(ad->ret_font_size));
- elm_object_item_data_set(ad->font_size->item, ad->font_size);
- elm_genlist_item_update(ad->font_size->item);
-
- if (elm_genlist_item_expanded_get(ad->font_size->item)) {
- if (ad->size_rdg) {
- setting_update_chk_status(ad->size_rdg, INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE);
- }
- }
- }
-
} else {
SETTING_TRACE_ERROR("vconf_name is error");
}
SETTING_TRACE_END;
}
+#define SLIDER_MAX_VALUE 4
+
+#define SLIDER_START_POINT_X( ad ) _slider_startpoint_x(ad)
+#define SLIDER_END_POINT_X( ad ) (_slider_get_width(ad) - SLIDER_START_POINT_X(ad))
+#define SLIDER_LENGTH(ad) (SLIDER_END_POINT_X(ad) - SLIDER_START_POINT_X(ad))
+
+
+static int _slider_get_width(void* data)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *)data;
+
+ int x, y, w, h;
+ elm_win_screen_size_get (ad->win_get, &x, &y, &w, &h);
+ SETTING_TRACE("-------> x : %d ", x);
+ SETTING_TRACE("-------> y : %d ", y);
+ SETTING_TRACE("-------> w : %d ", w);
+ SETTING_TRACE("-------> h : %d ", h);
+
+ switch (ad->rotate_angle)
+ {
+ case 0:
+ case 360:
+ return w;
+ break;
+ case 90:
+ case 270:
+ return h;
+ break;
+ default:
+ return w;
+ }
+ return w;
+}
+
+
+// 720, 1280
+static int _slider_endpoint_x()
+{
+ int w, h;
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ return w;
+}
+
+
+/**
+ * ad->rotate_angle = 90; // do it
+ * ad->rotate_angle = 270; // do it
+ */
+static int _slider_startpoint_x(void* data)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *)data;
+ int width = 47;
+ #if 0
+ if (_slider_get_width(ad) == 720) /* M0 */
+ return 47;
+ else
+ #endif
+ return width;
+}
+
+static void _slider_mouse_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ if (data == NULL || obj == NULL || event_info == NULL)
+ return;
+
+ Setting_GenGroupItem_Data *list_item = data;
+ SettingFontUG *ad = list_item->userdata;
+
+ Evas_Object *slider = obj;
+ Evas_Event_Mouse_Down *ev = event_info;
+
+ int val = 0;
+ int max_vol = SLIDER_MAX_VALUE;
+ int start_x = SLIDER_START_POINT_X(ad);
+ double current = 0.0;
+
+ {
+ current = ev->canvas.x - start_x;
+ SETTING_TRACE("ev->canvas.x %d ", ev->canvas.x);
+
+ double dval = current * max_vol / SLIDER_LENGTH(ad);
+ val = current * max_vol / SLIDER_LENGTH(ad);
+
+ SETTING_TRACE("dval = %lf, val = %d, dval-val=%lf ", dval, val, (dval - val));
+ if ((dval - val) > 0.5)
+ val = val + 1;
+ }
+
+ if (val < 0) val = 0;
+ else if (val > max_vol) val = max_vol;
+
+ SETTING_TRACE("val = %d", val);
+
+ elm_slider_value_set(slider, val);
+
+ /*for sliding performance */
+ if (ad->timer) {
+ ecore_timer_del(ad->timer);
+ ad->timer = NULL;
+ }
+ ad->timer = ecore_timer_add(0.2, (Ecore_Task_Cb)__slide_timer, list_item);
+ return;
+}
+
+static Eina_Bool __font_change_call(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ /* logic3 */
+ if (ad->size_change_flag == TRUE) {
+ system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, ad->ret_font_size);
+ }
+
+ if (ad->type_change_flag == TRUE) {
+ /* system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, ad->font_name); */
+ _event_set_font_type_helper(ad->font_name);
+ }
+
+ /* finalize */
+ ad->font_type_timer = NULL;
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void setting_font_done_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ retm_if(data == NULL, "Data parameter is NULL");
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ SETTING_TRACE_DEBUG("ad->size_change_flag = %d", ad->size_change_flag);
+ SETTING_TRACE_DEBUG("ad->type_change_flag = %d", ad->type_change_flag);
+
+ if (ad->size_change_flag == TRUE || ad->type_change_flag == TRUE) {
+ if (ad->main_popup) {
+ evas_object_del(ad->main_popup);
+ ad->main_popup = NULL;
+ } /* font type popup */
+
+ ad->font_change_status = SELECTED_FONT_CHANGE_IN_PROCESS;
+ ad->main_popup = setting_create_popup_with_progressbar(ad, ad->win_get,
+ PROGRESSBAR_STYLE,
+ NULL, KeyStr_Loading, __setting_progress_popup_cb, 3/*0*/, TRUE, TRUE, 0); /* 3 seconds to wait in maximum */
+
+ /* ecore timer for change actual font */
+ ad->font_type_timer = ecore_timer_add(1, (Ecore_Task_Cb)__font_change_call, ad);
+ } else {
+ /* Send destroy request */
+ ug_destroy_me(ad->ug);
+ }
+}
+
+static void setting_font_cancel_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ retm_if(data == NULL, "Data parameter is NULL");
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ /* Send destroy request */
+ ug_destroy_me(ad->ug);
+}
+
+static void __setting_get_font_size_str(void *data, int size)
+{
+ SETTING_TRACE_BEGIN;
+
+ retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ switch (size) {
+ case 0:
+ ad->font_size_str = (char *)g_strdup("24");
+ break;
+ case 1:
+ ad->font_size_str = (char *)g_strdup("30");
+ break;
+ case 2:
+ ad->font_size_str = (char *)g_strdup("44");
+ break;
+ case 3:
+ ad->font_size_str = (char *)g_strdup("56");
+ break;
+ case 4:
+ ad->font_size_str = (char *)g_strdup("70");
+ break;
+ default:
+ ad->font_size_str = (char *)g_strdup("30");
+ }
+}
+
+static void __setting_get_font_type_str(void *data, char *font_data)
+{
+ SETTING_TRACE_BEGIN;
+ retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+ retv_if(font_data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+
+ SettingFontUG *ad = (SettingFontUG *) data;
+
+ char *pos = font_data;
+ char new_name[FONT_BUF_SIZE];
+ int i = 0;
+ int count = 0;
+ while (*pos != '\0') {
+ if (*pos == ' ') {
+ SETTING_TRACE(">>> empty ' ' ");
+ new_name[count] = '\\';
+ count++;
+ new_name[count] = ' ';
+ } else {
+ new_name[count] = font_data[i];
+ }
+
+ count++;
+ pos++;
+ i++;
+ }
+ new_name[count] = '\0';
+
+ ad->font_type_str = g_strdup(new_name);
+}
/* ***************************************************
*
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingFontUG *ad = (SettingFontUG *) cb;
- setting_create_Gendial_itc("1line", &(ad->itc_1text_1icon_2));
+
+
+ setting_create_Gendial_itc(SETTING_GENLIST_ICON_1LINE_STYLE, &(ad->itc_1text_1icon_2));
ad->itc_1text_1icon_2.func.text_get = _item_text_keystr2_get;
+ setting_create_Gendial_itc("1icon", &(ad->itc_bg_1icon));
+ SETTING_TRACE("ad->itc_bg_1icon: %s ", ad->itc_bg_1icon);
+ ad->itc_bg_1icon.func.content_get = _font_size_slider_get;
+
retvm_if(ad->win_main_layout == NULL, SETTING_DRAW_ERR_FAIL_LOAD_EDJ,
"win_main_layout is NULL");
ad->font_change_status = SELECTED_FONT_CHANGE_NONE;
ad->ly_main =
setting_create_layout_navi_bar_genlist(ad->win_main_layout,
ad->win_get,
- "IDS_COM_BODY_FONT",
- _("IDS_COM_BODY_BACK"),
+ "IDS_ST_BODY_FONT",
+ _("IDS_ST_BUTTON_BACK"),
NULL,
(setting_call_back_func)__setting_font_main_click_softkey_back_cb,
NULL,
ad, &ad->genlist, &ad->navibar);
ad->navi_it_font = elm_naviframe_top_item_get(ad->navibar);
+
+ /* Title Cancel Button */
+ ad->btn_cancel = setting_create_button(ad->navibar, "IDS_MSG_ACBUTTON_CANCEL_ABB",
+ "naviframe/title_cancel",
+ setting_font_cancel_click_cb, ad);
+ elm_object_item_part_content_set(ad->navi_it_font, "title_left_btn", ad->btn_cancel);
+ /* Title Done Button */
+ ad->btn_done = setting_create_button(ad->navibar, "IDS_MSG_ACBUTTON_DONE_ABB",
+ "naviframe/title_done",
+ setting_font_done_click_cb, ad);
+ elm_object_item_part_content_set(ad->navi_it_font, "title_right_btn", ad->btn_done);
+
elm_genlist_mode_set(ad->genlist, ELM_LIST_COMPRESS);
evas_object_smart_callback_add(ad->genlist, "realized", __gl_realized_cb, ad);
- setting_enable_expandable_genlist(ad->genlist, ad, __setting_font_main_exp_cb, NULL);
- int ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME,
- __setting_font_main_vconf_change_cb, ad);
+ char *font_name = NULL;
+ G_FREE(ad->font_type_str);
+ int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &font_name);
+ if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+ SETTING_TRACE_ERROR("Failed to call system_settings_get_value_string with error cdoe %d", ret);
+ font_name = _get_default_font();
+ }
+ __setting_get_font_type_str(ad, font_name);
+ int size = -1;
+ ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &size);
+ setting_retvm_if(ret != 0, SETTING_RETURN_SUCCESS, "fail to get vconf");
+ __setting_get_font_size_str(ad, size);
+
+ SETTING_TRACE_DEBUG("ad->font_size_str = %s", ad->font_size_str);
+ SETTING_TRACE_DEBUG("ad->font_type_str = %s", ad->font_type_str);
+
+ /*1.Font Example */
+ char *default_example_str = get_example_style_text(ad->font_size_str, ad->font_type_str);
+
+ ad->font_example =
+ setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon),
+ NULL,
+ ad, SWALLOW_Type_INVALID, NULL,
+ NULL, 0, NULL,
+ default_example_str, NULL);
+
+ if (ad->font_example) {
+ __BACK_POINTER_SET(ad->font_example);
+ } else {
+ SETTING_TRACE_ERROR("ad->font_example is NULL");
+ }
+ G_FREE(default_example_str);
+
+ /*2.Font Size..... */
+ setting_create_Gendial_field_titleItem(ad->genlist, &(itc_group_item), "IDS_ST_BODY_SIZE", NULL);
+
+ size = -1;
+ ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &size);
+ setting_retvm_if(ret != 0, SETTING_RETURN_SUCCESS, "fail to get vconf");
+ ad->init_font_size = size;
+ ad->font_size =
+ setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon), NULL,
+ NULL, SWALLOW_Type_LAYOUT_5STEP_SLIDER,
+ NULL,
+ NULL, size, "IDS_ST_BODY_SIZE",
+ NULL,
+ __font_size_slider_value_change_cb);
+
+ if (ad->font_size) {
+ ad->font_size->win_main = ad->win_main_layout;
+ ad->font_size->evas = ad->evas;
+ ad->font_size->slider_min = 0;
+ ad->font_size->slider_max = 4;
+ ad->font_size->isIndicatorVisible = 0;
+ ad->font_size->userdata = ad;
+ ad->font_size->start_change_cb = NULL;
+ ad->font_size->stop_change_cb = NULL;
+ ad->font_size->mouse_up_cb = _slider_mouse_cb;
+ __BACK_POINTER_SET(ad->font_size);
+ } else {
+ SETTING_TRACE_ERROR("ad->data_br_sli is NULL");
+ }
+
+ /*3.Font Type..... */
+ setting_create_Gendial_field_titleItem(ad->genlist, &(itc_group_item), "IDS_ST_BODY_TYPE", NULL);
+ Evas_Object *rgd = NULL;
+ int i = 0;
+ int matched_font = -1;
+ G_FREE(ad->font_name);
+ ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &(ad->font_name));
+ if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+ SETTING_TRACE_ERROR("Failed to call system_settings_get_value_string with error cdoe %d", ret);
+ ad->font_name = _get_default_font();
+ }
+
+ rgd = elm_radio_add(ad->genlist);
+ elm_radio_value_set(rgd, -1);
+
+ char *default_font_name = NULL;
+ default_font_name = _get_default_font();
+ if (NULL != default_font_name) {
+ /*char font_name_dispaly[FONT_BUF_SIZE] = {0,}; */
+ SETTING_TRACE_DEBUG("default_font_name:%s", default_font_name);
+ Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
+ setting_retvm_if(!item_data, SETTING_RETURN_SUCCESS, "calloc failed");
+ item_data->keyStr2 = (char *)g_strdup(SETTING_DEFAULT_FONT_TYPE);/*for display */
+ item_data->keyStr = (char *)g_strdup(_(SETTING_DEFAULT_FONT_TYPE));/*for tts reading */
+ item_data->swallow_type = SWALLOW_Type_1RADIO_RIGHT;
+ item_data->chk_status = i;
+ item_data->rgd = rgd;
+ item_data->chk_change_cb = NULL;
+ item_data->sub_desc = strdup(default_font_name); /*the real font type value */
+ item_data->item = elm_genlist_item_append(ad->genlist, &(ad->itc_1text_1icon_2), item_data, NULL, ELM_GENLIST_ITEM_NONE, setting_font_main_list_sel_cb, ad);
+
+ if (item_data) {
+ item_data->userdata = ad;
+ if (!safeStrCmp(ad->font_name, (const char *)item_data->sub_desc)) {
+ matched_font = i;
+ }
+ }
+ i++;
+ ad->font_type_list = eina_list_append(ad->font_type_list, item_data);
+ }
+
+ Eina_List *font_list = NULL;
+ Eina_List *l = NULL;
+ char *font_data = NULL;
+ font_list = __setting_font_main_available_list_get();
+ EINA_LIST_FOREACH(font_list, l, font_data) {
+ if (safeStrCmp(default_font_name, (char *)font_data) != 0) {
+ char keyStr[FONT_BUF_SIZE] = {0,};
+ get_font_name_str((char *)font_data, keyStr, FONT_BUF_SIZE);
+ char temp[FONT_BUF_SIZE] = {0,};
+ /*int ret = get_font_name_tag(font_data, temp, FONT_BUF_SIZE); */
+ get_font_name_id((char *)font_data, temp, FONT_BUF_SIZE);
+ SETTING_TRACE_DEBUG("font data : %s", (char *)font_data);
+ Setting_GenGroupItem_Data *item_data = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
+ setting_retvm_if(!item_data, SETTING_RETURN_SUCCESS, "calloc failed");
+ item_data->keyStr2 = (char *)g_strdup(temp);/*for display */
+ item_data->keyStr = (char *)g_strdup(keyStr);/*for tts reading */
+ item_data->swallow_type = SWALLOW_Type_1RADIO_RIGHT;
+ item_data->chk_status = i;
+ item_data->rgd = rgd;
+ item_data->chk_change_cb = NULL;
+ item_data->sub_desc = strdup((char *)font_data);
+ item_data->item = elm_genlist_item_append(ad->genlist, &(ad->itc_1text_1icon_2), item_data, NULL, ELM_GENLIST_ITEM_NONE, setting_font_main_list_sel_cb, ad);
+
+ if (item_data) {
+ item_data->userdata = ad;
+ /*if (!safeStrCmp(ad->font_name, (const char*)font_data)) { */
+ if (!safeStrCmp(ad->font_name, (const char *)item_data->sub_desc)) {
+ matched_font = i;
+ }
+ }
+ i++;
+ ad->font_type_list = eina_list_append(ad->font_type_list, item_data);
+
+ FREE(font_data);
+ }
+ }
+
+ /* update check status */
+ if (matched_font != -1) {
+ elm_radio_value_set(rgd, matched_font);
+ ad->init_font_type = matched_font;
+ }
+
+ ad->prev_font = matched_font;
+ G_FREE(default_font_name);
+
+
+ ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME,
+ __font_vconf_change_cb, ad);
if (ret != 0) {
SETTING_TRACE_ERROR("call vconf_notify_key_changed failed");
}
ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE,
- __setting_font_main_vconf_change_cb, ad);
+ __font_vconf_change_cb, ad);
if (ret != 0) {
SETTING_TRACE_ERROR("call vconf_notify_key_changed failed");
}
- __setting_font_main_genlist_item_create(ad);
+ /*__setting_font_main_genlist_item_create(ad); */
evas_font_reinit();
+ //------------------------------------------------------------------------------------
+ evas_object_smart_callback_add(ad->win_get, "wm,rotation,changed", setting_font_rot_changed_cb, ad);
+
+
setting_view_font_main.is_create = 1;
return SETTING_RETURN_SUCCESS;
}
SettingFontUG *ad = (SettingFontUG *) cb;
int ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME,
- __setting_font_main_vconf_change_cb);
+ __font_vconf_change_cb);
if (ret != 0) {
SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
}
ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE,
- __setting_font_main_vconf_change_cb);
+ __font_vconf_change_cb);
if (ret != 0) {
SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
}
G_FREE(ad->font_name);
ad->font_name = NULL;
}
+ if (ad->font_size_str) {
+ G_FREE(ad->font_size_str);
+ ad->font_size_str = NULL;
+ }
+ if (ad->font_type_str) {
+ G_FREE(ad->font_type_str);
+ ad->font_type_str = NULL;
+ }
+ if (ad->timer) {
+ ecore_timer_del(ad->timer);
+ ad->timer = NULL;
+ }
+ if (ad->font_size_idler) {
+ ecore_timer_del(ad->font_size_idler);
+ ad->font_size_idler = NULL;
+ }
+ if (ad->font_type_timer) {
+ ecore_timer_del(ad->font_type_timer);
+ ad->font_type_timer = NULL;
+ }
if (ad->main_popup) {
evas_object_del(ad->main_popup);