From dcf34cef7763684785e0927e8d0fe0fa7f0a94da Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 11 Nov 2021 19:56:41 +0000 Subject: [PATCH] efl ui text - handle edje cc classes for text --- src/lib/elementary/efl_ui_textbox.c | 34 +++++++++++++++++++++++++++-- 1 file 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); }