return ret;
}
-/* TIZEN_ONLY(20160707): update a style when a style is added as class's member */
-/* Update the given evas_style
- *
- * @param ed The edje containing the given style which need to be updated
- * @param style The style which need to be updated
- * @param force Update the given style forcely or not
- */
-void
-_edje_textblock_style_update(Edje *ed, Edje_Style *stl, Eina_Bool force)
-{
- Eina_List *l;
- Eina_Strbuf *txt = NULL;
- Edje_Style_Tag *tag;
- Edje_Text_Class *tc;
- int found = 0;
- char *fontset = NULL, *fontsource = NULL;
-
- if (!ed->file) return;
-
- /* Make sure the style is already defined */
- if (!stl->style) return;
-
- /* Make sure the style contains a text_class */
- EINA_LIST_FOREACH(stl->tags, l, tag)
- {
- if (tag->text_class)
- {
- found = 1;
- break;
- }
- }
-
- /* No need to compute it again and again and again */
- if (!force && stl->cache) return;
-
- /* No text classes , goto next style */
- if (!found) return;
- if (!txt)
- txt = eina_strbuf_new();
-
- if (_edje_fontset_append)
- fontset = eina_str_escape(_edje_fontset_append);
- fontsource = eina_str_escape(ed->file->path);
-
- /* Build the style from each tag */
- EINA_LIST_FOREACH(stl->tags, l, tag)
- {
- if (!tag->key) continue;
-
- /* Add Tag Key */
- eina_strbuf_append(txt, tag->key);
- eina_strbuf_append(txt, "='");
-
- /* Configure fonts from text class if it exists */
- tc = _edje_text_class_find(ed, tag->text_class);
-
- /* Add and Handle tag parsed data */
- eina_strbuf_append(txt, tag->value);
-
- if (!strcmp(tag->key, "DEFAULT"))
- {
- if (fontset)
- {
- eina_strbuf_append(txt, " ");
- eina_strbuf_append(txt, "font_fallbacks=");
- eina_strbuf_append(txt, fontset);
- }
- eina_strbuf_append(txt, " ");
- eina_strbuf_append(txt, "font_source=");
- eina_strbuf_append(txt, fontsource);
- }
- if (tag->font_size != 0)
- {
- char font_size[32];
-
- if (tc && tc->size)
- snprintf(font_size, sizeof(font_size), "%f",
- (double)_edje_text_size_calc(tag->font_size, tc));
- else
- snprintf(font_size, sizeof(font_size), "%f",
- tag->font_size);
-
- eina_strbuf_append(txt, " ");
- eina_strbuf_append(txt, "font_size=");
- eina_strbuf_append(txt, font_size);
- }
- /* Add font name last to save evas from multiple loads */
- if (tag->font)
- {
- const char *f;
- char *sfont = NULL;
-
- eina_strbuf_append(txt, " ");
- eina_strbuf_append(txt, "font=");
-
- if (tc) f = _edje_text_font_get(tag->font, tc->font, &sfont);
- else f = tag->font;
-
- eina_strbuf_append_escaped(txt, f);
-
- if (sfont) free(sfont);
- }
-
- eina_strbuf_append(txt, "'");
- }
- if (fontset) free(fontset);
- if (fontsource) free(fontsource);
-
- /* Configure the style */
- stl->cache = EINA_TRUE;
- evas_textblock_style_set(stl->style, eina_strbuf_string_get(txt));
- if (txt)
- eina_strbuf_free(txt);
-}
-/* END */
-
/* Update all evas_styles which are in an edje
*
* @param ed The edje containing styles which need to be updated
void
_edje_textblock_style_all_update(Edje *ed)
{
- /* TIZEN_ONLY(20160707): update a style when a style is added as class's member
Eina_List *l, *ll;
Edje_Style *stl;
Eina_Strbuf *txt = NULL;
int found = 0;
char *fontset = NULL, *fontsource = NULL;
- // Make sure the style is already defined
+ /* Make sure the style is already defined */
if (!stl->style) break;
- // No need to compute it again and again and again
+ /* No need to compute it again and again and again */
if (stl->cache) continue;
- // Make sure the style contains a text_class
+ /* Make sure the style contains a text_class */
EINA_LIST_FOREACH(stl->tags, ll, tag)
{
if (tag->text_class)
}
}
- // No text classes , goto next style
+ /* No text classes , goto next style */
if (!found) continue;
if (!txt)
txt = eina_strbuf_new();
fontset = eina_str_escape(_edje_fontset_append);
fontsource = eina_str_escape(ed->file->path);
- // Build the style from each tag
+ /* Build the style from each tag */
EINA_LIST_FOREACH(stl->tags, ll, tag)
{
if (!tag->key) continue;
- // Add Tag Key
+ /* Add Tag Key */
eina_strbuf_append(txt, tag->key);
eina_strbuf_append(txt, "='");
- // Configure fonts from text class if it exists
+ /* Configure fonts from text class if it exists */
tc = _edje_text_class_find(ed, tag->text_class);
- // Add and Handle tag parsed data
+ /* Add and Handle tag parsed data */
eina_strbuf_append(txt, tag->value);
if (!strcmp(tag->key, "DEFAULT"))
eina_strbuf_append(txt, "font_size=");
eina_strbuf_append(txt, font_size);
}
- // Add font name last to save evas from multiple loads
+ /* Add font name last to save evas from multiple loads */
if (tag->font)
{
const char *f;
if (fontset) free(fontset);
if (fontsource) free(fontsource);
- // Configure the style
+ /* Configure the style */
stl->cache = EINA_TRUE;
evas_textblock_style_set(stl->style, eina_strbuf_string_get(txt));
eina_strbuf_reset(txt);
}
if (txt)
eina_strbuf_free(txt);
- */
- Eina_List *l;
- Edje_Style *stl;
-
- if (!ed->file) return;
-
- EINA_LIST_FOREACH(ed->file->styles, l, stl)
- _edje_textblock_style_update(ed, stl, EINA_FALSE);
- /* END */
}
static inline Edje_Style *
EINA_LIST_FOREACH(stl->tags, l, tag)
{
- /* TIZEN_ONLY(20160707): update a style when a style is added as class's member
if (tag->text_class)
_edje_text_class_member_add(ed, tag->text_class);
- */
- if (tag->text_class)
- {
- _edje_text_class_member_add(ed, tag->text_class);
-
- /* Newly added text_class member should be updated
- according to the latest text_class's status. */
- _edje_textblock_style_update(ed, stl, EINA_TRUE);
- }
- /* END */
}
}