diff options
Diffstat (limited to 'src/lib/elementary/efl_ui_textbox.c')
-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); } |