evas_object_textblock: add support for variation sequences
authorAli Alzyod <ali198724@gmail.com>
Thu, 12 Dec 2019 07:22:12 +0000 (16:22 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 12 Dec 2019 20:52:07 +0000 (05:52 +0900)
commit5f2f721acb046d6606fd0c83e99d19400962a65c
tree882a24e1ba737c5155298ba7a04bf0504e05057d
parent2582a57e32ad1094f0bc515683d06efc2b82ab85
evas_object_textblock: add support for variation sequences

Summary: update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences

Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Efl.h>
#include <Elementary.h>

EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win, *textblock;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Main", "");
   elm_win_autodel_set(win, EINA_TRUE);
   textblock = evas_object_textblock_add(win);
   efl_canvas_text_style_set(textblock,NULL,"DEFAULT='font=DejaVuSans font_fallbacks=SamsungColorEmoji color=#000 font_size=20'");
   evas_object_textblock_text_markup_set(textblock, "8&#xfe0f;&#x20E3;&#x262a;&#xfe0f;AAA&#x262a;&#xfe0E;1234567&#xfe0f;&#x20E3;");

   evas_object_size_hint_weight_set(textblock, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(textblock, EVAS_HINT_FILL, EVAS_HINT_FILL);
   evas_object_show(textblock);
   evas_object_move(textblock, 0, 0);
   evas_object_resize(textblock, 320, 320);
   evas_object_resize(win, 320, 320);
   evas_object_show(win);
   elm_run();
   return 0;

}

ELM_MAIN()

```

Reviewers: woohyun, bowonryu, segfaultxavi, cedric, bu5hm4n

Reviewed By: woohyun, cedric

Subscribers: raster, bu5hm4n, subodh6129, herdsman, segfaultxavi, zmike, cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9053
12 files changed:
src/bin/elementary/test.c
src/bin/elementary/test_label.c
src/lib/evas/common/evas_font.h
src/lib/evas/common/evas_font_load.c
src/lib/evas/common/evas_font_main.c
src/lib/evas/common/evas_font_query.c
src/lib/evas/common/evas_text_utils.c
src/tests/evas/evas_buffer_helper.c [new file with mode: 0644]
src/tests/evas/evas_buffer_helper.h [new file with mode: 0644]
src/tests/evas/evas_test_object_smart.c
src/tests/evas/evas_test_textblock.c
src/tests/evas/meson.build