summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungwan Woo <s-w.woo@samsung.com>2020-03-24 16:04:44 +0900
committerJongmin Lee <jm105.lee@samsung.com>2020-04-03 09:07:36 +0900
commit9d8a04fdf4c666169f062ec5a51c942edfea31bd (patch)
tree1a8db9e9baee47dfd45e9e53c9a3182e47f641cb
parentafbffee55b451432f0aa3482adf7b0de0ace2313 (diff)
downloadefl-config-9d8a04fdf4c666169f062ec5a51c942edfea31bd.tar.gz
efl-config-9d8a04fdf4c666169f062ec5a51c942edfea31bd.tar.bz2
efl-config-9d8a04fdf4c666169f062ec5a51c942edfea31bd.zip
when system font is changed, extension_font_overlay of wearable profile also should be changed. regarding font_size, only scalable fonts will be changed. Change-Id: I0678694ca7c92c1b43323de3444e00792ca80f98 Signed-off-by: Seungwan Woo <s-w.woo@samsung.com>
-rw-r--r--src/efl_config.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/efl_config.c b/src/efl_config.c
index 50fd3ca..6c4ec3b 100644
--- a/src/efl_config.c
+++ b/src/efl_config.c
@@ -164,6 +164,64 @@ _font_set(const char *font_name, int font_size)
text_classes = NULL;
elm_config_font_overlay_apply();
+
+ //TIZEN_ONLY(20200324): EXTENSION_THEME
+ tizen_profile_t prof = get_tizen_profile();
+ if (prof != TIZEN_PROFILE_WEARABLE)
+ {
+ return;
+ }
+
+ extern Eina_List* _elm_config_extension_font_overlay_get(const char* theme_name);
+ extern Eina_Bool _elm_config_extension_font_overlay_set(const Eina_List* list, const char* theme_name);
+
+ static const char* scalable_text_classes[] = {
+ "T0211", "T0211D", "T0211P", "T0211S", "T071", "T092", "T097", NULL
+ };
+
+ Eina_List* ext_font_overlays = _elm_config_extension_font_overlay_get("default");
+ if (ext_font_overlays)
+ {
+ static Eina_Hash *scalable_font_hash = NULL;
+ if (!scalable_font_hash)
+ {
+ scalable_font_hash = eina_hash_string_small_new(NULL);
+ for (int i = 0; scalable_text_classes[i]; ++i)
+ {
+ eina_hash_add(scalable_font_hash, scalable_text_classes[i], EINA_TRUE);
+ }
+ }
+
+ char buf[128] = {0,};
+ Eina_List *l = NULL;
+ Elm_Font_Overlay *efd = NULL;
+ EINA_LIST_FOREACH(ext_font_overlays, l, efd)
+ {
+ char *p = strchr(efd->font, ':');
+ snprintf(buf, sizeof(buf), "%s%s", font_name, p);
+ eina_stringshare_replace(&efd->font, buf);
+
+ if (eina_hash_find(scalable_font_hash, efd->text_class))
+ {
+ efd->size = font_size;
+ }
+ }
+ if (scalable_font_hash)
+ eina_hash_free(scalable_font_hash);
+ scalable_font_hash = NULL;
+
+ Eina_Bool res = _elm_config_extension_font_overlay_set(ext_font_overlays, "default");
+ EINA_LOG_DBG("efl-config :: result of set font overlay [%d]", res);
+
+ EINA_LIST_FREE(ext_font_overlays, efd)
+ {
+ eina_stringshare_del(efd->text_class);
+ eina_stringshare_del(efd->font);
+ free(efd);
+ }
+ ext_font_overlays = eina_list_free(ext_font_overlays);
+ }
+ //
}
static Eina_Bool