summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-11-11 19:56:41 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-11-11 19:57:13 +0000
commitdcf34cef7763684785e0927e8d0fe0fa7f0a94da (patch)
treecc3cf573e7bb8c4140a90ff2b5bc28f55afc3704
parent50dc94b478131c2e75f9a9bd3a96ee4c7fea6926 (diff)
downloadefl-dcf34cef7763684785e0927e8d0fe0fa7f0a94da.tar.gz
efl ui text - handle edje cc classes for text
-rw-r--r--src/lib/elementary/efl_ui_textbox.c34
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);
}