+ DisplayScore(dc);
+
+ if (HaveYouWon())
+ {
+ wxWindow *frame = wxTheApp->GetTopWindow();
+ wxWindow *canvas = (wxWindow *) NULL;
+
+ if (frame)
+ {
+ wxNode *node = (wxNode *)frame->GetChildren().GetFirst();
+ if (node) canvas = (wxWindow*)node->GetData();
+ }
+
+ // This game is over
+ m_inPlay = FALSE;
+
+ // Redraw the score box to update games won
+ DisplayScore(dc);
+
+ if (wxMessageBox(_T("Do you wish to play again?"),
+ _T("Well Done, You have won!"), wxYES_NO | wxICON_QUESTION) == wxYES)
+ {
+ Deal();
+ canvas->Refresh();
+ }
+ else
+ {
+ // user cancelled the dialog - exit the app
+ ((wxFrame*)canvas->GetParent())->Close(TRUE);
+ }
+ }