diff options
author | Cedric BAIL <cedric@osg.samsung.com> | 2015-02-24 22:37:24 +0100 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2015-02-24 22:37:24 +0100 |
commit | a08c59eacf8b61dd4897e1aabab0130eb17b48b0 (patch) | |
tree | d8a2751da06b78be15ae14ca9b8ae243913ddf11 | |
parent | 78ddad3dafea60c13c00c8565acc896f913e0a70 (diff) | |
download | efl-a08c59eacf8b61dd4897e1aabab0130eb17b48b0.tar.gz |
edje: refactor styles add logic.
-rw-r--r-- | src/lib/edje/edje_textblock_styles.c | 79 |
1 files changed, 37 insertions, 42 deletions
diff --git a/src/lib/edje/edje_textblock_styles.c b/src/lib/edje/edje_textblock_styles.c index 0819b5e550..9e65253abd 100644 --- a/src/lib/edje/edje_textblock_styles.c +++ b/src/lib/edje/edje_textblock_styles.c @@ -267,6 +267,39 @@ _edje_textblock_style_all_update(Edje *ed) eina_strbuf_free(txt); } +static inline Edje_Style * +_edje_textblock_style_search(Edje *ed, const char *style) +{ + Edje_Style *stl = NULL; + Eina_List *l; + + if (!style) return NULL; + + EINA_LIST_FOREACH(ed->file->styles, l, stl) + { + if ((stl->name) && + (!strcmp(stl->name, style))) break; + stl = NULL; + } + + return stl; +} + +static inline void +_edje_textblock_style_member_add(Edje *ed, Edje_Style *stl) +{ + Edje_Style_Tag *tag; + Eina_List *l; + + if (!stl) return ; + + EINA_LIST_FOREACH(stl->tags, l, tag) + { + if (tag->text_class) + _edje_text_class_member_add(ed, tag->text_class); + } +} + void _edje_textblock_styles_add(Edje *ed, Edje_Real_Part *ep) { @@ -282,54 +315,16 @@ _edje_textblock_styles_add(Edje *ed, Edje_Real_Part *ep) add the edje to the tc member list */ desc = (Edje_Part_Description_Text *)pt->default_desc; style = edje_string_get(&desc->text.style); - if (style) - { - Eina_List *l; - - EINA_LIST_FOREACH(ed->file->styles, l, stl) - { - if ((stl->name) && (!strcmp(stl->name, style))) break; - stl = NULL; - } - } - if (stl) - { - Edje_Style_Tag *tag; - Eina_List *l; - - EINA_LIST_FOREACH(stl->tags, l, tag) - { - if (tag->text_class) - _edje_text_class_member_add(ed, tag->text_class); - } - } + stl = _edje_textblock_style_search(ed, style); + _edje_textblock_style_member_add(ed, stl); /* If any other classes exist add them */ for (i = 0; i < pt->other.desc_count; ++i) { desc = (Edje_Part_Description_Text *)pt->other.desc[i]; style = edje_string_get(&desc->text.style); - if (style) - { - Eina_List *l; - - EINA_LIST_FOREACH(ed->file->styles, l, stl) - { - if ((stl->name) && (!strcmp(stl->name, style))) break; - stl = NULL; - } - } - if (stl) - { - Edje_Style_Tag *tag; - Eina_List *l; - - EINA_LIST_FOREACH(stl->tags, l, tag) - { - if (tag->text_class) - _edje_text_class_member_add(ed, tag->text_class); - } - } + stl = _edje_textblock_style_search(ed, style); + _edje_textblock_style_member_add(ed, stl); } } |