/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.0 (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-main.h>
-#include <sysman.h>
+#include <dd-deviced.h>
#include <fontconfig/fontconfig.h>
#include <unicode/uloc.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <Ecore_X.h>
-#include <system_settings.h>
+#include <setting-font-font-size.h>
+
#define SETTING_FONT_MAX_LEN 10
#define FONT_BUF_SIZE 256
static int setting_font_main_update(void *cb);
static int setting_font_main_cleanup(void *cb);
-static void __setting_font_main_click_softkey_back_cb(void *data, Evas_Object *obj,
- void *event_info);
+static Eina_Bool __setting_font_main_click_softkey_back_cb(void *data, Elm_Object_Item *it);
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)
+{
+ retvm_if(font_data == NULL, 0, "Invalid argument: event info is NULL");
+ 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];
+ }
-/**
- * [API] font-size
- */
-static char* __setting_font_main_get_font_size(int value)
+ count++;
+ pos++;
+ i++;
+ }
+ new_name[count] = '\0';
+ char trans_font_type_name[FONT_BUF_SIZE] = {0,};
+ if (safeStrCmp(font_name_id, "IDS_ST_BODY_CHOCO_COOKY") == 0) {
+ snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_CHOCO_COOKY"));
+ } else if (safeStrCmp(font_name_id, "IDS_ST_BODY_COOL_JAZZ") == 0) {
+ 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 {
+ snprintf(trans_font_type_name, bufsize, "%s", font_name_id);
+ }
+ snprintf(temp, bufsize, "<font=%s>%s</font>", new_name, trans_font_type_name);
+ return 1;
+}
+
+char *_item_text_keystr2_get(void *data, Evas_Object *obj, const char *part)
{
- const char* font_size_arr[] = {
- _("IDS_ST_BODY_SMALL_M_TEXTSIZE"), // 0
- _("IDS_ST_BODY_NORMAL_T_PROFILE"), // 1
- _("IDS_ST_BODY_TEXTSTYLE_LARGE"), // 2
- _("IDS_EMAIL_OPT_HUGE_M_TEXTSIZE"), // 3
- _("IDS_EMAIL_POP_GIANT_M_TEXTSIZE"), // 4
- };
- switch (value)
- {
- case SYSTEM_SETTINGS_FONT_SIZE_SMALL:
- return (char *)font_size_arr[0];
- case SYSTEM_SETTINGS_FONT_SIZE_NORMAL:
- return (char *)font_size_arr[1];
- case SYSTEM_SETTINGS_FONT_SIZE_LARGE:
- return (char *)font_size_arr[2];
- case SYSTEM_SETTINGS_FONT_SIZE_HUGE:
- return (char *)font_size_arr[3];
- case SYSTEM_SETTINGS_FONT_SIZE_GIANT:
- return (char *)font_size_arr[4];
- default:
- return (char *)font_size_arr[1];
+ 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 (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);
+
+ if (ret == 0) { /* error condition */
+ SETTING_TRACE_ERROR("Error condition font");
+ }
+
+ SETTING_TRACE_DEBUG("temp : %s", (char *)temp);
+ ret_str = (char *)g_strdup(temp);
+ }
}
+ /*SETTING_TRACE_END; */
+ return ret_str;
}
+
+
/**
* [API] get a font list from current system
* REFACTORING: move this feature to system-settings
*/
static Eina_List *__setting_font_main_available_list_get()
{
- SETTING_TRACE_BEGIN
+ SETTING_TRACE_BEGIN;
FcObjectSet *os = NULL;
FcFontSet *fs = NULL;
FcPattern *pat = NULL;
setting_retvm_if(font_config == NULL, NULL, "Failed: FcInitLoadConfigAndFonts");
+
+ char *locale = setlocale(0, NULL);
+
pat = FcPatternCreate();
- os = FcObjectSetBuild(FC_FAMILY, FC_FILE, (char *) 0);
+ os = FcObjectSetBuild(FC_FAMILY, FC_FILE, FC_FAMILYLANG, (char *) 0);
if (os) {
fs = FcFontList(font_config, pat, os);
SETTING_TRACE_DEBUG("fs->nfont = %d", fs->nfont);
for (j = 0; j < fs->nfont; j++) {
+
FcChar8 *family = NULL;
FcChar8 *file = NULL;
-
if (FcPatternGetString(fs->fonts[j], FC_FILE, 0, &file) == FcResultMatch) {
- //SETTING_TRACE_DEBUG("FC_FILE : %s\n", file);
+ /*SETTING_TRACE_DEBUG("FC_FILE : %s\n", file); */
int preload_path_len = safeStrLen(SETTING_FONT_PRELOAD_FONT_PATH);
int download_path_len = safeStrLen(SETTING_FONT_DOWNLOADED_FONT_PATH);
- if (!safeStrNCmp((const char*)file, SETTING_FONT_PRELOAD_FONT_PATH, preload_path_len) ||
- !safeStrNCmp((const char*)file, SETTING_FONT_DOWNLOADED_FONT_PATH, download_path_len)) {
- if (FcPatternGetString(fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch) {
- SETTING_TRACE_DEBUG("Family name is invalid");
- continue;
+ if (!safeStrNCmp((const char *)file, SETTING_FONT_PRELOAD_FONT_PATH, preload_path_len) ||
+ !safeStrNCmp((const char *)file, SETTING_FONT_DOWNLOADED_FONT_PATH, download_path_len)) {
+ char *family_result = NULL;
+ FcChar8 *lang = NULL;
+ int id = 0;
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
+ break;
}
-
- //SETTING_TRACE_DEBUG("family = %s", (char *)family);
- if (eina_list_data_find(list, family) == NULL) {
- list = eina_list_append(list, family);
- /* list = eina_list_append(list, family); */
- // for TEST because there's 1 font on target.
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
+ break;
+ }
+ family_result = (char *)family;
+
+ /* Find proper family name for current locale. */
+ while (locale && family && lang) {
+ if (!strncmp(locale, (char *)lang, strlen((char *)lang))) {
+ family_result = (char *)family;
+ break;
+ }
+
+ /* I will set english as default family language. */
+ /* If there is no proper family language for current locale, */
+ /* we have to show the english family name. */
+ if (!strcmp(lang, "en")) {
+ family_result = (char *)family;
+ }
+ id++;
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILY, id, &family) != FcResultMatch) {
+ break;
+ }
+ if (FcPatternGetString(fs->fonts[j], FC_FAMILYLANG, id, &lang) != FcResultMatch) {
+ break;
+ }
+ }
+ if (family_result && eina_list_data_find(list, family_result) == NULL) {
+ list = eina_list_append(list, 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;
}
-
-static void __setting_font_main_genlist_sel_cb(void *data, Evas_Object * obj, void *event_info)
+#if 0
+static void __setting_font_main_genlist_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
- //error check
+ /*error check */
setting_retm_if(data == NULL, "Data parameter is NULL");
retm_if(event_info == NULL, "Invalid argument: event info is NULL");
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);
+ }
+ return 1;
+}
-int get_font_name_str(char* font_type_name, char* trans_font_type_name, int bufsize)
+int get_font_name_str(char *font_type_name, char *trans_font_type_name, int bufsize)
{
- if(safeStrCmp(font_type_name, "Choco cooky") == 0)
+ /*SETTING_TRACE_BEGIN; */
+ if (safeStrCmp(font_type_name, "Choco cooky") == 0) {
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_CHOCO_COOKY"));
- else if(safeStrCmp(font_type_name, "Cool jazz") == 0)
+ /*SETTING_TRACE("%s", trans_font_type_name); */
+ } else if (safeStrCmp(font_type_name, "Cool jazz") == 0) {
snprintf(trans_font_type_name, bufsize, "%s", _("IDS_ST_BODY_COOL_JAZZ"));
- else if (safeStrCmp(font_type_name, "HelveticaNeue") == 0)
+ /*SETTING_TRACE("%s", trans_font_type_name); */
+ } 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"));
- else
+ /*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)
+int get_font_name_tag(char *font_data, char *temp, int bufsize)
{
- SETTING_TRACE("font data : %s", (char*)font_data);
+ /*SETTING_TRACE("font data : %s", (char*)font_data); */
- char* pos = font_data;
+ char *pos = font_data;
char new_name[bufsize];
- int i=0;
+ int i = 0;
int count = 0;
- while(*pos != '\0')
- {
- SETTING_TRACE(">>> %c", *pos);
- if (*pos == ' ')
- {
+ while (*pos != '\0') {
+ /*SETTING_TRACE(">>> %c", *pos); */
+ if (*pos == ' ') {
SETTING_TRACE(">>> empty ' ' ");
new_name[count] = '\\';
count++;
}
new_name[count] = '\0';
- SETTING_TRACE(">>> new_name length : %d : string : %s", count, (char*)new_name);
- snprintf(temp, bufsize, "<font=%s>%s</font>", new_name, 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(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;
}
SettingFontUG *ad = (SettingFontUG *)data;
Elm_Object_Item *item = NULL;
-
- 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);
+ 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);
+ 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
+#if 0
char trans_font_type_name[256] = {0,};
- if(safeStrCmp(font_type_name, "Choco cooky") == 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)
+ 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
+#else
+ char *default_font_name = NULL;
+ default_font_name = _get_default_font();
char trans_font_type_name[FONT_BUF_SIZE] = {0,};
- ret = get_font_name_str(font_type_name, trans_font_type_name, FONT_BUF_SIZE);
- //SETTING_TRACE_DEBUG("font data : %s", (char*)font_data);
- #endif
+ 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);
+ &(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 {
G_FREE(font_type_name);
}
- if (ad->viewmode == FONT_SIZE_AND_FONT_SEL_UG || ad->viewmode == FONT_SIZE_VIEW_APPCONTROL) // font size only
- {
+ if (ad->viewmode == FONT_SIZE_AND_FONT_SEL_UG || ad->viewmode == FONT_SIZE_VIEW_APPCONTROL) { /* font size only */
int err = -1;
- // [UI] Font Size
+ /* [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);
+ 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
- setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon), NULL,
- ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
- NULL, NULL, 0, SETTING_FONT_SIZE_DESC, NULL,
- NULL);
+ 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)
+{
+ SettingFontUG *ad = (SettingFontUG *) data;
+ SETTING_TRACE("send ug_destroy_me by callback");
+ if (ad->main_popup) {
+ evas_object_del(ad->main_popup);
+ 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);
+ }
+}
-/**
- * [API] set current font
- * font change
- */
-static void __setting_font_main_font_set(char *font_name)
+static Eina_Bool __font_type_change_call(void *data)
{
- retm_if(font_name == NULL, "Invalid argument: font_name is NULL");
- int ret;
- ret = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, 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;
}
+#if 0
static void __setting_font_main_popup_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
SettingFontUG *ad = (SettingFontUG *) data;
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);
-
- char *temp = NULL;
- temp = strchr(ad->subitem->keyStr, '>');
- temp += 1;
- char *last = NULL;
- last = strrchr(temp, '<');
-
- #if 0
- char font_name[64] = {0,};
- safeCopyStr(font_name, temp, (int)(last-temp));
- #else
- // sub - descc
- char *font_name = g_strdup(ad->subitem->sub_desc);
- #endif
- /* set font name to font main and font config */
- ad->font_type->sub_desc = (char *)g_strdup(_(font_name));
- elm_object_item_data_set(ad->font_type->item, ad->font_type);
- elm_genlist_item_update(ad->font_type->item);
-
- ad->prev_font = ad->subitem->chk_status;
- G_FREE(ad->font_name);
- ad->font_name = (char *)g_strdup(_(font_name));
- SETTING_TRACE("ad->subitem->keyStr = %s", font_name);
+ 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
- __setting_font_main_font_set(font_name);
- ug_destroy_me(ad->ug);
- break;
- }
- case POPUP_RESPONSE_CANCEL:
- {
- elm_radio_value_set(ad->subitem->rgd, ad->prev_font);
+ /* 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;
+ }
- break;
- }
- default:
- {
- break;
- }
- }
+ /* 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 */
- if (ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
+ /* 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;
+ }
}
}
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, "%s %s?", _(SETTING_FONT_POPUP_DESC), ad->subitem->keyStr);
-
- ad->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"));
+ 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"));
+ }
}
-
+#endif
/**
* [UI][expandable list][event handler:selection][font change]
SettingFontUG *ad = (SettingFontUG *) data;
+
/* if not change, return */
if (ad->prev_font == data_subItem->chk_status) {
SETTING_TRACE("NOT CHANGED ");
return;
}
-
+ if (ad->font_change_status == SELECTED_FONT_CHANGE_IN_PROCESS) {
+ return;
+ }
+ ad->font_change_status = SELECTED_FONT_CHANGE_IN_PROCESS;
ad->subitem = data_subItem;
- elm_radio_value_set(ad->subitem->rgd, ad->subitem->chk_status);
+ /* Fix PLM P131016-04680
+ when user check the option, make sure the radio button is checked for prev_font font item
+ the radio of new font item will be checked when user seleck "ok" on popup*/
+ 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("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);
+
+ /*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) {
+ eina_list_free(ad->font_type_list);
+ ad->font_type_list = NULL;
+ }
- __setting_font_main_popup(ad);
+ /* 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);
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();
-
- int i = 0;
- int matched_font = -1;
- Setting_GenGroupItem_Data *item = NULL;
- EINA_LIST_FOREACH(font_list, l, font_data)
- {
- char temp[FONT_BUF_SIZE] = {0,};
- int ret = get_font_name_tag(font_data, temp, FONT_BUF_SIZE);
- SETTING_TRACE_DEBUG("font data : %s", (char*)font_data);
-
- item = setting_create_Gendial_exp_sub_field(scroller, &(ad->itc_1text_1icon_2),
- __setting_font_main_sub_list_sel_cb, ad,
- parentItem, SWALLOW_Type_1RADIO, rgd,
- i, temp,
- NULL);
-
- if (item) {
- item->userdata = ad;
- //item->sub_desc = font_data;
- item->sub_desc = strdup(font_data);
- //if (!safeStrCmp(ad->font_name, (const char*)font_data)) {
- if (!safeStrCmp(ad->font_name, (const char*)item->sub_desc)) {
- matched_font = i;
+ 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);
}
-
- i++;
}
/* update check status */
}
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)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == data, "data is NULL");
+ SettingFontUG *ad = (SettingFontUG *)data;
+
+ char *vconf_name = vconf_keynode_get_name(key);
+
+ if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME)) {
+
+
+ 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("system-setting call failed with error code %d", ret);
+ }
+ SETTING_TRACE("---------------- system-setting call : (%s) ", font_type_name);
+ 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);
+ }
+
+ if (ad->font_type) {
+ G_FREE(ad->font_type->sub_desc);
+ ad->font_type->sub_desc = (char *)g_strdup(trans_font_type_name);
+ elm_object_item_data_set(ad->font_type->item, ad->font_type);
+ elm_genlist_item_update(ad->font_type->item);
+ SETTING_TRACE("ad->font_type->sub_desc:%s", trans_font_type_name);
+
+ if (elm_genlist_item_expanded_get(ad->font_type->item)) {
+ Eina_List *l = NULL;
+ Setting_GenGroupItem_Data *font_type_subitem;
+ EINA_LIST_FOREACH(ad->font_type_list, l, font_type_subitem) {
+ if (font_type_subitem && !safeStrCmp(font_type_subitem->sub_desc, font_type_name)) {
+
+ if (font_type_subitem && font_type_subitem->rgd) {
+ elm_radio_value_set(font_type_subitem->rgd, font_type_subitem->chk_status);
+ if (ad->font_change_status != SELECTED_FONT_CHANGE_IN_PROCESS) {
+ ad->subitem = font_type_subitem;
+ }
+ }
+ break;
+
+ }
+ }
+ }
+ }
+ } 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;
}
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingFontUG *ad = (SettingFontUG *) cb;
+ setting_create_Gendial_itc("1line", &(ad->itc_1text_1icon_2));
+ ad->itc_1text_1icon_2.func.text_get = _item_text_keystr2_get;
retvm_if(ad->win_main_layout == NULL, SETTING_DRAW_ERR_FAIL_LOAD_EDJ,
- "win_main_layout is NULL");
-
+ "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,
- _(KeyStr_Font),
- _("IDS_COM_BODY_BACK"),
- NULL,
- __setting_font_main_click_softkey_back_cb,
- NULL,
- ad, &ad->genlist, &ad->navibar);
+ ad->win_get,
+ "IDS_COM_BODY_FONT",
+ _("IDS_COM_BODY_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);
+ 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);
+ 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);
+ if (ret != 0) {
+ SETTING_TRACE_ERROR("call vconf_notify_key_changed failed");
+ }
__setting_font_main_genlist_item_create(ad);
+ evas_font_reinit();
+
setting_view_font_main.is_create = 1;
return SETTING_RETURN_SUCCESS;
}
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingFontUG *ad = (SettingFontUG *) cb;
-
- if(ad->font_name)
- {
+ int ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME,
+ __setting_font_main_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);
+ if (ret != 0) {
+ SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
+ }
+ if (ad->font_name) {
G_FREE(ad->font_name);
ad->font_name = NULL;
}
- if (ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
+ if (ad->main_popup) {
+ evas_object_del(ad->main_popup);
+ ad->main_popup = NULL;
}
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
ad->ly_main = NULL;
}
+ if (ad->navi_it_font != NULL) {
+ ad->navi_it_font = NULL;
+ }
+ if (ad->font_type_list != NULL) {
+ eina_list_free(ad->font_type_list);
+ ad->font_type_list = NULL;
+ }
setting_view_font_main.is_create = 0;
SETTING_TRACE_END;
if (ad->font_size) {
G_FREE(ad->font_size->sub_desc);
- ad->font_size->sub_desc = (char *)g_strdup(__setting_font_main_get_font_size(value));
+ ad->font_size->sub_desc = (char *)g_strdup(__get_font_size_str(value));
elm_object_item_data_set(ad->font_size->item, ad->font_size);
elm_genlist_item_update(ad->font_size->item);
}
-
- setting_font_update_vconf_key(ad, SETTING_VCONF_INT_TYPE,
- INT_SLP_SETTING_LCD_TIMEOUT_NORMAL);
+ /* setting_font_update_vconf_key(ad, SETTING_VCONF_INT_TYPE, INT_SLP_SETTING_LCD_TIMEOUT_NORMAL); */
+ }
+ if (ad->font_type) {
+ elm_genlist_item_update(ad->font_type->item);
}
-
return SETTING_RETURN_SUCCESS;
}
*
***************************************************/
-static void __setting_font_main_click_softkey_back_cb(void *data, Evas_Object *obj,
- void *event_info)
+static Eina_Bool __setting_font_main_click_softkey_back_cb(void *data, Elm_Object_Item *it)
{
SETTING_TRACE_BEGIN;
/* error check */
- ret_if(data == NULL);
+ retv_if(data == NULL, EINA_FALSE);
SettingFontUG *ad = (SettingFontUG *) data;
- if (ad->viewmode == FONT_SEL_VIEW_APPCONTROL)
- {
- service_h svc;
- if (service_create(&svc))
- return;
+ if (ad->viewmode == FONT_SEL_VIEW_APPCONTROL) {
+ app_control_h svc;
+ if (app_control_create(&svc)) {
+ return EINA_FALSE;
+ }
- service_add_extra_data(svc, "category", "FontType");
- service_add_extra_data(svc, "FontType", ad->font_name);
+ app_control_add_extra_data(svc, "category", "FontType");
+ app_control_add_extra_data(svc, "FontType", ad->font_name);
- SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","category", "FontType");
- SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","FontType", ad->font_name);
+ SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s", "category", "FontType");
+ SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s", "FontType", ad->font_name);
ug_send_result(ad->ug, svc);
- service_destroy(svc);
- }
- else if (ad->viewmode == FONT_SIZE_VIEW_APPCONTROL)
- {
- service_h svc;
+ app_control_destroy(svc);
+ } else if (ad->viewmode == FONT_SIZE_VIEW_APPCONTROL) {
+ app_control_h svc;
int err;
int ret = setting_set_int_slp_key(INT_SLP_SETTING_ACCESSIBILITY_FONT_SIZE, ad->ret_font_size, &err);
- setting_retm_if(ret == -1, "Failed to set vconf");
+ setting_retvm_if(ret == -1, EINA_FALSE, "Failed to set vconf");
- if (service_create(&svc))
- return;
+ if (app_control_create(&svc)) {
+ return EINA_FALSE;
+ }
char font_size[SETTING_FONT_MAX_LEN] = {0,};
snprintf(font_size, SETTING_FONT_MAX_LEN, "%d", ad->ret_font_size);
- service_add_extra_data(svc, "category", "FontSize");
- service_add_extra_data(svc, "FontSize", font_size);
+ app_control_add_extra_data(svc, "category", "FontSize");
+ app_control_add_extra_data(svc, "FontSize", font_size);
- SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","category", "FontSize");
- SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s","FontSize", font_size);
+ SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s", "category", "FontSize");
+ SETTING_TRACE(" SERVICE_ADD_EXTRA : %s %s", "FontSize", font_size);
ug_send_result(ad->ug, svc);
- service_destroy(svc);
+ app_control_destroy(svc);
}
/* Send destroy request */
ug_destroy_me(ad->ug);
+ return EINA_FALSE;
}