diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2021-11-11 19:56:41 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2021-11-11 19:57:13 +0000 |
commit | dcf34cef7763684785e0927e8d0fe0fa7f0a94da (patch) | |
tree | cc3cf573e7bb8c4140a90ff2b5bc28f55afc3704 /src | |
parent | 50dc94b478131c2e75f9a9bd3a96ee4c7fea6926 (diff) | |
download | efl-dcf34cef7763684785e0927e8d0fe0fa7f0a94da.tar.gz |
efl ui text - handle edje cc classes for text
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/elementary/efl_ui_textbox.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index 165ef1f0e4..b58b3a2c08 100644 --- a/src/lib/elementary/efl_ui_textbox.c +++ b/src/lib/elementary/efl_ui_textbox.c @@ -1616,7 +1616,22 @@ _update_text_theme(Eo *obj, Efl_Ui_Textbox_Data *sd) colorcode = efl_layout_group_data_get(wd->resize_obj, "style.color_disabled"); if (!colorcode) colorcode = efl_layout_group_data_get(wd->resize_obj, "style.color"); - if (colorcode && _format_color_parse(colorcode, strlen(colorcode), &r, &g, &b, &a)) + if (colorcode && !strncmp(colorcode, "cc:", 3)) + { + int r, g, b, a; + + if (edje_object_color_class_get(wd->resize_obj, colorcode + 3, + &r, &g, &b, &a, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL)) + { + r = (r * a) / 255; + g = (g * a) / 255; + b = (b * a) / 255; + efl_text_color_set(sd->text_obj, r, g, b, a); + } + } + else if (colorcode && _format_color_parse(colorcode, strlen(colorcode), &r, &g, &b, &a)) { efl_text_color_set(sd->text_obj, r, g, b, a); } @@ -1641,7 +1656,22 @@ _update_text_theme(Eo *obj, Efl_Ui_Textbox_Data *sd) colorcode = efl_layout_group_data_get(wd->resize_obj, "guide.style.color_disabled"); if (!colorcode) colorcode = efl_layout_group_data_get(wd->resize_obj, "guide.style.color"); - if (colorcode && _format_color_parse(colorcode, strlen(colorcode), &r, &g, &b, &a)) + if (colorcode && !strncmp(colorcode, "cc:", 3)) + { + int r, g, b, a; + + if (edje_object_color_class_get(wd->resize_obj, colorcode + 3, + &r, &g, &b, &a, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL)) + { + r = (r * a) / 255; + g = (g * a) / 255; + b = (b * a) / 255; + efl_text_color_set(sd->text_guide_obj, r, g, b, a); + } + } + else if(colorcode && _format_color_parse(colorcode, strlen(colorcode), &r, &g, &b, &a)) { efl_text_color_set(sd->text_guide_obj, r, g, b, a); } |