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;hp=c11f1953e31a1baa1d6785757169c7fd35cdc51d 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; }