]> git.cworth.org Git - wordgame/commitdiff
Only show solution words after found (with refresh bug)
authorCarl Worth <cworth@cworth.org>
Mon, 18 Dec 2006 17:26:05 +0000 (09:26 -0800)
committerCarl Worth <cworth@cworth.org>
Mon, 18 Dec 2006 17:26:05 +0000 (09:26 -0800)
Initially, all words shown are just blanks. Then after words are
found they will be drawn on the next update, (which is not yet
being triggered).

rack-fancy.c

index 87b39f56c74283d05bd34f4382d00d362b434365..f2caa13adae6daa53bd43cf896903fda61598dde 100644 (file)
@@ -27,6 +27,7 @@
 #include "word-game.h"
 #include "demo-item.h"
 
+#define RACK_DICT_ENTRY_FOUND (1<<1)
 #define MAX_TILES 7
 
 typedef struct _tile
@@ -84,7 +85,13 @@ dict_paint_action (void *closure, char *word, dict_entry_t *entry)
     double new_x, new_y;
 
     cairo_move_to (cr, cursor->x, cursor->y);
-    cairo_show_text (cr, word);
+    if (*entry & RACK_DICT_ENTRY_FOUND) {
+       cairo_show_text (cr, word);
+    } else {
+       int i, length = strlen (word);
+       for (i = 0; i < length; i++)
+           cairo_show_text (cr, "_");
+    }
     cairo_get_current_point (cr, &new_x, &new_y);
     if (new_x > cursor->max_column_width)
        cursor->max_column_width = new_x;
@@ -313,10 +320,12 @@ on_key_press_event (GtkWidget     *widget,
     if (event->keyval == GDK_Return) {
        dict_entry_t *entry;
        entry = dict_lookup (rack->solution, rack->guess);
-       if (DICT_ENTRY_IS_WORD (entry))
+       if (DICT_ENTRY_IS_WORD (entry)) {
+           *entry = *entry | RACK_DICT_ENTRY_FOUND;
            printf ("%s is good\n", rack->guess);
-       else
+       } else {
            printf ("%s is not a word\n", rack->guess);
+       }
        rack_return_all (rack);
        return TRUE;
     }