}
}
-#ifdef ELM_FEATURE_PRODUCT_THEME
-static const char* _prod_theme_path = NULL;
-
-Eina_Bool
-_elm_product_theme_overlay_add(void)
-{
- if (!_elm_config || !_elm_config->theme)
- {
- ERR("invalid state. _elm_config(%p)", _elm_config);
- return EINA_FALSE;
- }
-
- if (!_prod_theme_path)
- {
- char buf[PATH_MAX] = {0,};
- const char* dir = elm_theme_system_dir_get();
- if (!dir) return EINA_FALSE;
-
- snprintf(buf, PATH_MAX, "%s/%s-prod.edj", dir, _elm_config->theme);
- _prod_theme_path = eina_stringshare_add(buf);
- }
-
- Eina_File* f = eina_file_open(_prod_theme_path, EINA_FALSE);
- if (f)
- {
- elm_theme_overlay_mmap_add(NULL, f);
- eina_file_close(f);
- }
- else
- {
- if (_prod_theme_path)
- ELM_SAFE_FREE(_prod_theme_path, eina_stringshare_del);
- ERR("failed to open product theme file");
- return EINA_FALSE;
- }
-
- ERR("done to load overlay theme");
- return EINA_TRUE;
-}
-
-typedef struct _Product_Color_Overlay
+//TIZEN_ONLY(20200324): EXTENSION_THEME
+typedef struct _Extension_Color_Overlay Extension_Color_Overlay;
+struct _Extension_Color_Overlay
{
const char *theme;
Eina_List *color_overlays;
-}Product_Color_Overlay;
+};
static Eina_Bool
-_product_color_overlay_desc_init(Eet_Data_Descriptor **color_overlay_edd,
- Eet_Data_Descriptor **prod_color_overlays_edd)
+_extension_color_overlay_desc_init(Eet_Data_Descriptor **color_overlay_edd,
+ Eet_Data_Descriptor **ext_color_overlays_edd)
{
Eet_Data_Descriptor_Class eddc;
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Elm_Color_Overlay);
}
memset(&eddc, 0, sizeof(eddc));
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Product_Color_Overlay);
+ EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Extension_Color_Overlay);
eddc.func.str_direct_alloc = NULL;
eddc.func.str_direct_free = NULL;
- *prod_color_overlays_edd = eet_data_descriptor_file_new(&eddc);
- if (!(*prod_color_overlays_edd))
+ *ext_color_overlays_edd = eet_data_descriptor_file_new(&eddc);
+ if (!(*ext_color_overlays_edd))
{
- ERR("failed to create eet data desc for product color overlay list");
+ ERR("failed to create eet data desc for extension color overlay list");
eet_data_descriptor_free(*color_overlay_edd);
*color_overlay_edd = NULL;
return EINA_FALSE;
EET_DATA_DESCRIPTOR_ADD_BASIC(*color_overlay_edd, Elm_Color_Overlay, "color.g", color.g, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(*color_overlay_edd, Elm_Color_Overlay, "color.b", color.b, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(*color_overlay_edd, Elm_Color_Overlay, "color.a", color.a, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(*prod_color_overlays_edd, Product_Color_Overlay, "theme", theme, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_LIST(*prod_color_overlays_edd, Product_Color_Overlay, "color_overlays", color_overlays, *color_overlay_edd);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(*ext_color_overlays_edd, Extension_Color_Overlay, "theme", theme, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_LIST(*ext_color_overlays_edd, Extension_Color_Overlay, "color_overlays", color_overlays, *color_overlay_edd);
return EINA_TRUE;
}
-Eina_Bool
-_elm_config_product_color_overlay_set(const Eina_List* list, const char* theme_name)
+_EAPI Eina_Bool
+_elm_config_extension_color_overlay_set(const Eina_List* list, const char* theme_name)
{
if (!theme_name || !list)
{
- ERR("failed to set product color overlays cause of invalid args."
+ ERR("failed to set extension color overlays cause of invalid args."
"theme_name(%s), theme_name(%p)", theme_name, list);
return EINA_FALSE;
}
}
Eet_Data_Descriptor *color_overlay_edd = NULL;
- Eet_Data_Descriptor *prod_color_overlays_edd = NULL;
- if (!_product_color_overlay_desc_init(&color_overlay_edd, &prod_color_overlays_edd))
+ Eet_Data_Descriptor *ext_color_overlays_edd = NULL;
+ if (!_extension_color_overlay_desc_init(&color_overlay_edd, &ext_color_overlays_edd))
{
ERR("failed to create eet data desc for color overlay");
ELM_SAFE_FREE(ef, eet_close);
}
Eina_Bool result = EINA_TRUE;
- Product_Color_Overlay color_overlay;
+ Extension_Color_Overlay color_overlay;
color_overlay.theme = eina_stringshare_add(theme_name);
- color_overlay.color_overlays = (Eina_List *)list;
- int ret = eet_data_write(ef, prod_color_overlays_edd, "config", &color_overlay, 1);
+ color_overlay.color_overlays = list;
+ int ret = eet_data_write(ef, ext_color_overlays_edd, "config", &color_overlay, 1);
if (!ret)
{
- ERR("failed to write eet data desc for prod color overlay");
+ ERR("failed to write eet data desc for ext color overlay");
result = EINA_FALSE;
}
ELM_SAFE_FREE(ef, eet_close);
ELM_SAFE_FREE(color_overlay_edd, eet_data_descriptor_free);
- ELM_SAFE_FREE(prod_color_overlays_edd, eet_data_descriptor_free);
+ ELM_SAFE_FREE(ext_color_overlays_edd, eet_data_descriptor_free);
ELM_SAFE_FREE(color_overlay.theme, eina_stringshare_del);
color_overlay.color_overlays = NULL;
return result;
}
-static Eina_List*
-_product_color_overlay_get(const char* theme_name)
+_EAPI Eina_List*
+_elm_config_extension_color_overlay_get(const char* theme_name)
{
if (!theme_name)
{
- ERR("failed to set product color overlay cause of invalid args.");
+ ERR("failed to set extention color overlay cause of invalid args.");
return NULL;
}
- ERR("try to load prodcut color overlays of (%s) theme", theme_name);
+ ERR("try to load extension color overlays of (%s) theme", theme_name);
char config_path[PATH_MAX];
_elm_config_user_dir_snprintf(config_path, sizeof(config_path),
Eet_File *ef = eet_open(config_path, EET_FILE_MODE_READ);
if (!ef)
{
- ERR("failed to open product color overlay of RW. try to load RO data.");
- snprintf(config_path, sizeof(config_path), "%s/config/%s/%s_color_overlays.cfg",
+ ERR("failed to open extension color overlay of RW. try to load RO data.");
+ snprintf(config_path, sizeof(config_path), "%s/config/%s/%s_color_overlays.cfg\0",
_elm_data_dir, _elm_profile, theme_name);
ef = eet_open(config_path, EET_FILE_MODE_READ);
if (!ef)
{
- ERR("failed to open product color overlay of RO(%s)", config_path);
+ ERR("failed to open extension color overlay of RO(%s)", config_path);
return NULL;
}
}
Eet_Data_Descriptor *color_overlay_edd = NULL;
Eet_Data_Descriptor *color_overlays_edd = NULL;
- if (!_product_color_overlay_desc_init(&color_overlay_edd, &color_overlays_edd))
+ if (!_extension_color_overlay_desc_init(&color_overlay_edd, &color_overlays_edd))
{
ERR("failed to create eet data desc for color overlay list");
ELM_SAFE_FREE(ef, eet_close);
}
Eina_List* result = NULL;
- Product_Color_Overlay *prod_color_overlay = eet_data_read(ef, color_overlays_edd, "config");
- if (!prod_color_overlay)
- ERR("failed to read eet data for product color overlay");
+ Extension_Color_Overlay *ext_color_overlay = eet_data_read(ef, color_overlays_edd, "config");
+ if (!ext_color_overlay)
+ ERR("failed to read eet data for extension color overlay");
else
{
- result = prod_color_overlay->color_overlays;
- prod_color_overlay->color_overlays = NULL;
+ result = ext_color_overlay->color_overlays;
+ ext_color_overlay->color_overlays = NULL;
- ELM_SAFE_FREE(prod_color_overlay->theme, eina_stringshare_del);
- ELM_SAFE_FREE(prod_color_overlay, free);
+ ELM_SAFE_FREE(ext_color_overlay->theme, eina_stringshare_del);
+ ELM_SAFE_FREE(ext_color_overlay, free);
}
ELM_SAFE_FREE(ef, eet_close);
return result;
}
-typedef struct _Product_Font_Overlay Product_Font_Overlay;
-struct _Product_Font_Overlay
+typedef struct _Extension_Font_Overlay Extension_Font_Overlay;
+struct _Extension_Font_Overlay
{
const char *theme;
Eina_List *font_overlays;
};
static Eina_Bool
-_product_font_overlay_desc_init(Eet_Data_Descriptor **font_overlay_edd,
- Eet_Data_Descriptor **prod_font_overlays_edd)
+_extension_font_overlay_desc_init(Eet_Data_Descriptor **font_overlay_edd,
+ Eet_Data_Descriptor **ext_font_overlays_edd)
{
Eet_Data_Descriptor_Class eddc;
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Elm_Font_Overlay);
}
memset(&eddc, 0, sizeof(eddc));
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Product_Font_Overlay);
+ EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Extension_Font_Overlay);
eddc.func.str_direct_alloc = NULL;
eddc.func.str_direct_free = NULL;
- *prod_font_overlays_edd = eet_data_descriptor_file_new(&eddc);
- if (!(*prod_font_overlays_edd))
+ *ext_font_overlays_edd = eet_data_descriptor_file_new(&eddc);
+ if (!(*ext_font_overlays_edd))
{
- ERR("failed to create eet data desc for product font overlay list");
+ ERR("failed to create eet data desc for extension font overlay list");
eet_data_descriptor_free(*font_overlay_edd);
*font_overlay_edd = NULL;
return EINA_FALSE;
EET_DATA_DESCRIPTOR_ADD_BASIC(*font_overlay_edd, Elm_Font_Overlay, "font", font, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(*font_overlay_edd, Elm_Font_Overlay, "size", size, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(*prod_font_overlays_edd, Product_Font_Overlay, "theme", theme, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_LIST(*prod_font_overlays_edd, Product_Font_Overlay, "font_overlays", font_overlays, *font_overlay_edd);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(*ext_font_overlays_edd, Extension_Font_Overlay, "theme", theme, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_LIST(*ext_font_overlays_edd, Extension_Font_Overlay, "font_overlays", font_overlays, *font_overlay_edd);
return EINA_TRUE;
}
-Eina_Bool
-_elm_config_product_font_overlay_set(const Eina_List* list, const char* theme_name)
+_EAPI Eina_Bool
+_elm_config_extension_font_overlay_set(const Eina_List* list, const char* theme_name)
{
if (!theme_name || !list)
{
- ERR("failed to set product font overlays cause of invalid args."
+ ERR("failed to set extension font overlays cause of invalid args."
"theme_name(%s), theme_name(%p)", theme_name, list);
return EINA_FALSE;
}
}
Eet_Data_Descriptor *font_overlay_edd = NULL;
- Eet_Data_Descriptor *prod_font_overlays_edd = NULL;
- if (!_product_font_overlay_desc_init(&font_overlay_edd, &prod_font_overlays_edd))
+ Eet_Data_Descriptor *ext_font_overlays_edd = NULL;
+ if (!_extension_font_overlay_desc_init(&font_overlay_edd, &ext_font_overlays_edd))
{
ERR("failed to create eet data desc for font overlay");
ELM_SAFE_FREE(ef, eet_close);
}
Eina_Bool result = EINA_TRUE;
- Product_Font_Overlay prod_font_overlay;
- prod_font_overlay.theme = eina_stringshare_add(theme_name);
- prod_font_overlay.font_overlays = (Eina_List *)list;
- int ret = eet_data_write(ef, prod_font_overlays_edd, "config", &prod_font_overlay, 1);
+ Extension_Font_Overlay ext_font_overlay;
+ ext_font_overlay.theme = eina_stringshare_add(theme_name);
+ ext_font_overlay.font_overlays = list;
+ int ret = eet_data_write(ef, ext_font_overlays_edd, "config", &ext_font_overlay, 1);
if (!ret)
{
- ERR("failed to write eet data desc for prod font overlay");
+ ERR("failed to write eet data desc for ext font overlay");
result = EINA_FALSE;
}
ELM_SAFE_FREE(ef, eet_close);
ELM_SAFE_FREE(font_overlay_edd, eet_data_descriptor_free);
- ELM_SAFE_FREE(prod_font_overlays_edd, eet_data_descriptor_free);
- ELM_SAFE_FREE(prod_font_overlay.theme, eina_stringshare_del);
- prod_font_overlay.font_overlays = NULL;
+ ELM_SAFE_FREE(ext_font_overlays_edd, eet_data_descriptor_free);
+ ELM_SAFE_FREE(ext_font_overlay.theme, eina_stringshare_del);
+ ext_font_overlay.font_overlays = NULL;
return result;
}
-Eina_List*
-_elm_config_product_font_overlay_get(const char* theme_name)
+_EAPI Eina_List*
+_elm_config_extension_font_overlay_get(const char* theme_name)
{
if (!theme_name)
{
- ERR("failed to set product font overlay cause of invalid args.");
+ ERR("failed to set extension font overlay cause of invalid args.");
return NULL;
}
- ERR("try to load prodcut font overlays of (%s) theme", theme_name);
+ ERR("try to load extension font overlays of (%s) theme", theme_name);
char config_path[PATH_MAX];
_elm_config_user_dir_snprintf(config_path, sizeof(config_path),
Eet_File *ef = eet_open(config_path, EET_FILE_MODE_READ);
if (!ef)
{
- ERR("failed to open product font overlay of RW. try to load RO data.");
- snprintf(config_path, sizeof(config_path), "%s/config/%s/%s_font_overlays.cfg",
+ ERR("failed to open extension font overlay of RW. try to load RO data.");
+ snprintf(config_path, sizeof(config_path), "%s/config/%s/%s_font_overlays.cfg\0",
_elm_data_dir, _elm_profile, theme_name);
ef = eet_open(config_path, EET_FILE_MODE_READ);
if (!ef)
{
- ERR("failed to open product font overlay of RO(%s).", config_path);
+ ERR("failed to open extension font overlay of RO(%s).", config_path);
return NULL;
}
}
Eet_Data_Descriptor *font_overlay_edd = NULL;
- Eet_Data_Descriptor *prod_font_overlays_edd = NULL;
- if (!_product_font_overlay_desc_init(&font_overlay_edd, &prod_font_overlays_edd))
+ Eet_Data_Descriptor *ext_font_overlays_edd = NULL;
+ if (!_extension_font_overlay_desc_init(&font_overlay_edd, &ext_font_overlays_edd))
{
ERR("failed to create eet data desc for font overlay list");
ELM_SAFE_FREE(ef, eet_close);
}
Eina_List* result = NULL;
- Product_Font_Overlay *prod_font_overlay = eet_data_read(ef, prod_font_overlays_edd, "config");
- if (!prod_font_overlay)
- ERR("failed to read eet data for product font overlay");
+ Extension_Font_Overlay *ext_font_overlay = eet_data_read(ef, ext_font_overlays_edd, "config");
+ if (!ext_font_overlay)
+ ERR("failed to read eet data for extension font overlay");
else
{
- result = prod_font_overlay->font_overlays;
- prod_font_overlay->font_overlays = NULL;
+ result = ext_font_overlay->font_overlays;
+ ext_font_overlay->font_overlays = NULL;
- ELM_SAFE_FREE(prod_font_overlay->theme, eina_stringshare_del);
- ELM_SAFE_FREE(prod_font_overlay, free);
+ ELM_SAFE_FREE(ext_font_overlay->theme, eina_stringshare_del);
+ ELM_SAFE_FREE(ext_font_overlay, free);
}
ELM_SAFE_FREE(ef, eet_close);
ELM_SAFE_FREE(font_overlay_edd, eet_data_descriptor_free);
- ELM_SAFE_FREE(prod_font_overlays_edd, eet_data_descriptor_free);
+ ELM_SAFE_FREE(ext_font_overlays_edd, eet_data_descriptor_free);
return result;
}
-#endif//ELM_FEATURE_PRODUCT_THEME
+//
void
_elm_config_font_overlay_apply(void)
}
_font_overlays_del = eina_list_free(_font_overlays_del);
-#ifdef ELM_FEATURE_PRODUCT_THEME
- Eina_List* prod_font_overlays = _elm_config_product_font_overlay_get("overlay_theme");
- if (prod_font_overlays)
+ EINA_LIST_FOREACH(_elm_config->font_overlays, l, efd)
+ edje_text_class_set(efd->text_class, efd->font, efd->size);
+
+ //TIZEN_ONLY(20200324): EXTENSION_THEME
+ Eina_List* ext_font_overlays = _elm_config_extension_font_overlay_get("default");
+ if (ext_font_overlays)
{
- EINA_LIST_FREE(prod_font_overlays, efd)
+ EINA_LIST_FREE(ext_font_overlays, efd)
{
edje_text_class_set(efd->text_class, efd->font, efd->size);
eina_stringshare_del(efd->text_class);
eina_stringshare_del(efd->font);
free(efd);
}
- prod_font_overlays = eina_list_free(prod_font_overlays);
+ ext_font_overlays = eina_list_free(ext_font_overlays);
}
-#endif//ELM_FEATURE_PRODUCT_THEME
- EINA_LIST_FOREACH(_elm_config->font_overlays, l, efd)
- edje_text_class_set(efd->text_class, efd->font, efd->size);
+ //
}
Eina_List *
eina_stringshare_del(color_class);
}
-#ifdef ELM_FEATURE_PRODUCT_THEME
- Eina_List* prod_color_overlays = _product_color_overlay_get("overlay_theme");
- if (prod_color_overlays)
+ //TIZEN_ONLY(20200324): EXTENSION_THEME
+ Eina_List* ext_color_overlays = _elm_config_extension_color_overlay_get("default");
+ if (ext_color_overlays)
{
- //TODO : How to modify edje_file_color_classes of default theme
- Elm_Theme *th = elm_theme_default_get();
- Elm_Theme_File *base_etf = NULL;
- EINA_INLIST_FOREACH(th->themes, base_etf)
- {
- if (strcmp(base_etf->item, _elm_config->theme)) continue;
- //TODO
- //Eina_File* f = base_etf->handle;
- //Getting Edje_File from Eina_File
- //Modifying color_hash of Edje_File
- }
-
- EINA_LIST_FREE(prod_color_overlays, ecd)
+ EINA_LIST_FREE(ext_color_overlays, ecd)
{
edje_color_class_set(ecd->color_class,
ecd->color.r, ecd->color.g, ecd->color.b, ecd->color.a,
eina_stringshare_del(ecd->color_class);
free(ecd);
}
- prod_color_overlays = eina_list_free(prod_color_overlays);
+ ext_color_overlays = eina_list_free(ext_color_overlays);
}
-#endif //ELM_FEATURE_PRODUCT_THEME
+ //
EINA_LIST_FOREACH(_elm_config->color_overlays, l, ecd)
edje_color_class_set(ecd->color_class,
_elm_recache();
_config_apply();
-#ifdef ELM_FEATURE_PRODUCT_THEME
- if (!_elm_product_theme_overlay_add())
- WRN("skip to load product overlay theme");
-#endif//ELM_FEATURE_PRODUCT_THEME
-
_elm_config_font_overlay_apply();
_elm_config_color_overlay_apply();
_elm_old_clouseau_reload();
_elm_config_shutdown(void)
{
-#ifdef ELM_FEATURE_PRODUCT_THEME
- if (_prod_theme_path)
- {
- ELM_SAFE_FREE(_prod_theme_path, eina_stringshare_del);
- }
-#endif //ELM_FEATURE_PRODUCT_THEME
-
efl_del_intercept_set(_efl_config_obj, NULL);
efl_provider_unregister(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj);
efl_provider_unregister(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj);