From 843863bc5725d169a5cb6da0a392d9398651cd51 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 18 Dec 2006 09:26:05 -0800 Subject: [PATCH] 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). --- rack-fancy.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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; } -- 2.43.0