Enlightenment CVS committal
Author : tsauerbeck
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
edje_text.c
Log Message:
more splitting
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_text.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- edje_text.c 30 Oct 2004 16:54:58 -0000 1.26
+++ edje_text.c 30 Oct 2004 17:56:50 -0000 1.27
@@ -6,6 +6,7 @@
#include "edje_private.h"
#include <stdint.h>
+#include <assert.h>
Edje_Text_Style _edje_text_styles[EDJE_TEXT_EFFECT_LAST];
@@ -432,6 +433,59 @@
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 @@
(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 @@
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);
}
}
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs