efl-config: update extension_font_overlay list for wearable profile accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix accepted/tizen_6.5_unified accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix accepted/tizen_8.0_unified accepted/tizen_unified tizen_6.0 tizen_6.0_hotfix tizen_6.5 tizen_7.0 tizen_7.0_hotfix tizen_8.0 accepted/tizen/6.0/unified/20201030.114142 accepted/tizen/6.0/unified/hotfix/20201103.002354 accepted/tizen/6.5/unified/20211028.115441 accepted/tizen/7.0/unified/20221110.063719 accepted/tizen/7.0/unified/hotfix/20221116.110033 accepted/tizen/8.0/unified/20231005.094110 accepted/tizen/unified/20200409.083720 submit/tizen/20200405.220557 submit/tizen/20200406.235844 submit/tizen/20200407.212858 submit/tizen/20200408.212617 submit/tizen_6.0/20201029.205105 submit/tizen_6.0_hotfix/20201102.192505 submit/tizen_6.0_hotfix/20201103.114805 submit/tizen_6.5/20211028.163101 tizen_6.0.m2_release tizen_6.5.m2_release tizen_7.0_m2_release tizen_8.0_m2_release
authorSeungwan Woo <s-w.woo@samsung.com>
Tue, 24 Mar 2020 07:04:44 +0000 (16:04 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Fri, 3 Apr 2020 00:07:36 +0000 (09:07 +0900)
 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>
src/efl_config.c

index 50fd3ca..6c4ec3b 100644 (file)
@@ -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