From: Carl Worth Date: Mon, 18 Dec 2006 17:26:05 +0000 (-0800) Subject: Only show solution words after found (with refresh bug) X-Git-Url: https://git.cworth.org/git?p=wordgame;a=commitdiff_plain;h=843863bc5725d169a5cb6da0a392d9398651cd51 Only show solution words after found (with refresh bug) 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). --- diff --git a/rack-fancy.c b/rack-fancy.c index 87b39f5..f2caa13 100644 --- a/rack-fancy.c +++ b/rack-fancy.c @@ -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; }