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

Reply via email to