diff options
author | Tom Hacohen <tom@stosb.com> | 2014-12-16 14:08:42 +0000 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2015-01-14 08:45:42 +0000 |
commit | 53f07c60f59e9daf3f2d164af87b6113015435f1 (patch) | |
tree | 791fc7ab2d3ffdb54a68545b33e571b2f1363486 | |
parent | 58e14718d87333849ba742cc50a955e136a281ae (diff) | |
download | efl-53f07c60f59e9daf3f2d164af87b6113015435f1.tar.gz |
Fix text getting.
-rw-r--r-- | src/lib/evas/canvas/evas_textblock2.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/lib/evas/canvas/evas_textblock2.c b/src/lib/evas/canvas/evas_textblock2.c index f95ab02ede..cd2187efd8 100644 --- a/src/lib/evas/canvas/evas_textblock2.c +++ b/src/lib/evas/canvas/evas_textblock2.c @@ -84,6 +84,7 @@ static const char o_type[] = "textblock2"; /* The char to be inserted instead of visible formats */ #define _REPLACEMENT_CHAR 0xFFFC #define _PARAGRAPH_SEPARATOR 0x2029 +#define _PARAGRAPH_SEPARATOR_UTF8 "\xE2\x80\xA9" #define _NEWLINE '\n' #define _TAB '\t' @@ -3924,12 +3925,37 @@ _evas_textblock2_efl_text_text_set(Eo *obj, Evas_Textblock2_Data *pd EINA_UNUSED EOLIAN static const char * -_evas_textblock2_efl_text_text_get(Eo *obj, Evas_Textblock2_Data *pd) +_evas_textblock2_efl_text_text_get(Eo *obj EINA_UNUSED, Evas_Textblock2_Data *pd) { - (void) obj; - (void) pd; - /* FIXME: Do something. */ - return ""; + Evas_Object_Textblock2_Node_Text *n; + Eina_Strbuf *txt = NULL; + + const char *markup; + if (pd->utf8_text) + { + markup = pd->utf8_text; + return markup; + } + + txt = eina_strbuf_new(); + EINA_INLIST_FOREACH(pd->text_nodes, n) + { + char *buf; + int len = 0; + buf = eina_unicode_unicode_to_utf8(eina_ustrbuf_string_get(n->unicode), &len); + eina_strbuf_append_length(txt, buf, len); + if (EINA_INLIST_GET(n)->next) + { + eina_strbuf_append(txt, _PARAGRAPH_SEPARATOR_UTF8); + } + + free(buf); + } + + pd->utf8_text = eina_strbuf_string_steal(txt); + eina_strbuf_free(txt); + + return pd->utf8_text; } EAPI void |