raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dcf34cef7763684785e0927e8d0fe0fa7f0a94da

commit dcf34cef7763684785e0927e8d0fe0fa7f0a94da
Author: Carsten Haitzler <ras...@rasterman.com>
Date:   Thu Nov 11 19:56:41 2021 +0000

    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);
      }

-- 


Reply via email to