+ # callback for menu item clear grid activated event
+ def on_cleargrid_activate (self, menuitem):
+ if self.puzzle:
+ dlg = gtk.MessageDialog (self.window, gtk.DIALOG_MODAL,
+ gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO,
+ "Are you sure you wish to clear your entries?")
+ if dlg.run () == gtk.RESPONSE_YES:
+ # clear the guesses
+ self.puzzle.clear_guesses ()
+ # redraw the grid
+ puzgrid = self.ui.get_object ("puzzlegrid")
+ puzgrid.queue_draw ()
+ dlg.destroy()
+
+ # callback for menu item verify board activated event
+ def on_verify_activate (self, menuitem):
+ if self.puzzle:
+ try:
+ ans = self.puzzle.is_solution_correct ()
+ # if the solution is correct
+ if ans:
+ dlg = gtk.MessageDialog (self.window, gtk.DIALOG_MODAL,
+ gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE,
+ "Success! Your entries are correct.")
+ dlg.run ()
+ else:
+ dlg = gtk.MessageDialog (self.window, gtk.DIALOG_MODAL,
+ gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE,
+ "Your solution has some errors. Fix them and try again")
+ dlg.run ()
+ except crosswordpuzzle.IncompleteSolutionException:
+ dlg = gtk.MessageDialog (self.window, gtk.DIALOG_MODAL,
+ gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE,
+ "You've not completed the board yet. Cannot verify")
+ dlg.run ()
+ dlg.destroy ()
+