diff options
author | Seungwan Woo <s-w.woo@samsung.com> | 2020-03-24 16:04:44 +0900 |
---|---|---|
committer | Seungwan Woo <s-w.woo@samsung.com> | 2020-03-24 16:12:38 +0900 |
commit | 9d96075b9e1d153b0280cc0f581de1f308fb13f3 (patch) | |
tree | 1a8db9e9baee47dfd45e9e53c9a3182e47f641cb | |
parent | cdf76ac2180dc3c4157f017313b9f1d4780866bb (diff) | |
download | efl-config-accepted/tizen_5.5_unified.tar.gz efl-config-accepted/tizen_5.5_unified.tar.bz2 efl-config-accepted/tizen_5.5_unified.zip |
efl-config: update extension_font_overlay list for wearable profilesubmit/tizen_5.5_wearable_hotfix/20201026.184305submit/tizen_5.5/20200331.013416submit/tizen_5.5/20200329.232205accepted/tizen/5.5/unified/wearable/hotfix/20201027.111423accepted/tizen/5.5/unified/20200401.132725tizen_5.5_wearable_hotfixtizen_5.5accepted/tizen_5.5_unified_wearable_hotfixaccepted/tizen_5.5_unified
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.c | 58 |
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 |