Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: dialog.c Log Message: Fix setting hilited/clicked font in certain dialog widgets. =================================================================== RCS file: /cvs/e/e16/e/src/dialog.c,v retrieving revision 1.176 retrieving revision 1.177 diff -u -3 -r1.176 -r1.177 --- dialog.c 18 Oct 2006 16:03:36 -0000 1.176 +++ dialog.c 3 Dec 2006 18:36:56 -0000 1.177 @@ -155,6 +155,7 @@ char realized; char update; + char state; char hilited; char clicked; }; @@ -1737,6 +1738,23 @@ di->item.area.init_func(di, 0, NULL); break; + case DITEM_SEPARATOR: + if (!d->redraw) + break; + if (di->item.separator.horizontal) + ImageclassApply(di->iclass, di->win, di->w, di->h, 0, 0, + STATE_NORMAL, ST_WIDGET); + else + ImageclassApply(di->iclass, di->win, di->w, di->h, 0, 0, + STATE_CLICKED, ST_WIDGET); + break; + + case DITEM_TEXT: + state = STATE_NORMAL; + x = di->x; + w = di->w; + goto draw_text; + case DITEM_CHECKBUTTON: state = STATE_NORMAL; if ((di->hilited) && (di->clicked)) @@ -1749,32 +1767,15 @@ di->item.check_button.check_orig_w, di->item.check_button.check_orig_h, DialogItemCheckButtonGetState(di), 0, state, ST_WIDGET); - if (!d->redraw) + if (!d->redraw && + (TextclassGetTextState(di->tclass, di->state, 0, 0) == + TextclassGetTextState(di->tclass, state, 0, 0))) break; pad = ImageclassGetPadding(di->iclass); x = di->x + di->item.check_button.check_orig_w + pad->left; w = di->w - di->item.check_button.check_orig_w - pad->left; goto draw_text; - case DITEM_TEXT: - if (!d->redraw) - EXCopyArea(d->pmm_bg.pmap, d->pmap, di->x, di->y, di->w, di->h, - di->x, di->y); - x = di->x; - w = di->w; - goto draw_text; - - case DITEM_SEPARATOR: - if (!d->redraw) - break; - if (di->item.separator.horizontal) - ImageclassApply(di->iclass, di->win, di->w, di->h, 0, 0, - STATE_NORMAL, ST_WIDGET); - else - ImageclassApply(di->iclass, di->win, di->w, di->h, 0, 0, - STATE_CLICKED, ST_WIDGET); - break; - case DITEM_RADIOBUTTON: state = STATE_NORMAL; if ((di->hilited) && (di->clicked)) @@ -1787,7 +1788,9 @@ di->item.radio_button.radio_orig_w, di->item.radio_button.radio_orig_h, di->item.radio_button.onoff, 0, state, ST_WIDGET); - if (!d->redraw) + if (!d->redraw && + (TextclassGetTextState(di->tclass, di->state, 0, 0) == + TextclassGetTextState(di->tclass, state, 0, 0))) break; pad = ImageclassGetPadding(di->iclass); x = di->x + di->item.radio_button.radio_orig_w + pad->left; @@ -1798,7 +1801,13 @@ break; draw_text: - TextDraw(di->tclass, d->win, d->pmap, 0, 0, STATE_NORMAL, di->text, + di->state = state; + if (!di->text) + break; + if (!d->redraw) + EXCopyArea(d->pmm_bg.pmap, d->pmap, di->x, di->y, di->w, di->h, + di->x, di->y); + TextDraw(di->tclass, d->win, d->pmap, 0, 0, state, di->text, x, di->y, w, 99999, 17, TextclassGetJustification(di->tclass)); break; } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs