From e83506617cad007fe0d3485bc77e24fa18efd76c Mon Sep 17 00:00:00 2001 From: tsauerbeck Date: Sat, 30 Oct 2004 17:56:50 +0000 Subject: [PATCH] more splitting SVN revision: 12094 --- legacy/edje/src/lib/edje_text.c | 80 +++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/legacy/edje/src/lib/edje_text.c b/legacy/edje/src/lib/edje_text.c index fb9ec70c09..84528675c0 100644 --- a/legacy/edje/src/lib/edje_text.c +++ b/legacy/edje/src/lib/edje_text.c @@ -6,6 +6,7 @@ #include "edje_private.h" #include +#include Edje_Text_Style _edje_text_styles[EDJE_TEXT_EFFECT_LAST]; @@ -432,6 +433,59 @@ _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep, return buf; } +static void +_edje_text_finalize(Edje *ed, Edje_Real_Part *ep, + Edje_Calc_Params *params, Evas_Object *o, int i) +{ + unsigned char r = 0, g = 0, b = 0, a = 0; + int got_color = 1; + + evas_object_move(o, + ed->x + params->x + ep->offset.x + _edje_text_styles[ep->part->effect].members[i].x, + ed->y + params->y + ep->offset.y + _edje_text_styles[ep->part->effect].members[i].y); + + switch (_edje_text_styles[ep->part->effect].members[i].color) + { + case 0: + r = params->color.r; + g = params->color.g; + b = params->color.b; + a = params->color.a; + break; + case 1: + r = params->color2.r; + g = params->color2.g; + b = params->color2.b; + a = params->color2.a; + break; + case 2: + r = params->color3.r; + g = params->color3.g; + b = params->color3.b; + a = params->color3.a; + break; + default: + got_color = 0; + break; + } + + /* if this fails, we probably need to extend + * the switch statement :) + */ + assert (got_color); + + if (got_color) + { + a = (a * (_edje_text_styles[ep->part->effect].members[i].alpha + 1)) / 256; + evas_object_color_set(o, r, g, b, a); + } + + if (params->visible) + evas_object_show(o); + else + evas_object_hide(o); +} + void _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *params, @@ -638,6 +692,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, (params->color.a * (_edje_text_styles[ep->part->effect].members[0].alpha + 1)) / 256); if (params->visible) evas_object_show(ep->object); else evas_object_hide(ep->object); + { Evas_List *l; int i; @@ -652,29 +707,8 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, evas_object_text_font_set(o, font, size); evas_object_text_text_set(o, text); - evas_object_move(o, - ed->x + params->x + ep->offset.x + _edje_text_styles[ep->part->effect].members[i].x, - ed->y + params->y + ep->offset.y + _edje_text_styles[ep->part->effect].members[i].y); - if (_edje_text_styles[ep->part->effect].members[i].color == 0) - evas_object_color_set(o, - params->color.r, - params->color.g, - params->color.b, - (params->color.a * (_edje_text_styles[ep->part->effect].members[i].alpha + 1)) / 256); - else if (_edje_text_styles[ep->part->effect].members[i].color == 1) - evas_object_color_set(o, - params->color2.r, - params->color2.g, - params->color2.b, - (params->color2.a * (_edje_text_styles[ep->part->effect].members[i].alpha + 1)) / 256); - else if (_edje_text_styles[ep->part->effect].members[i].color == 2) - evas_object_color_set(o, - params->color3.r, - params->color3.g, - params->color3.b, - (params->color3.a * (_edje_text_styles[ep->part->effect].members[i].alpha + 1)) / 256); - if (params->visible) evas_object_show(o); - else evas_object_hide(o); + + _edje_text_finalize(ed, ep, params, o, i); } }