]> git.saurik.com Git - wxWidgets.git/commitdiff
patch 102361 applied
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 25 Nov 2000 23:41:27 +0000 (23:41 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 25 Nov 2000 23:41:27 +0000 (23:41 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

demos/forty/canvas.cpp
demos/forty/game.cpp

index 384d2bebbed510408edc32908a312b31b432c08e..d2be8edcf1c9a83617392f2b67d37db364f16d26 100644 (file)
@@ -198,25 +198,6 @@ void FortyCanvas::OnMouseEvent(wxMouseEvent& event)
 
 void FortyCanvas::SetCursorStyle(int x, int y)
 {
-       if (m_game->HaveYouWon())
-       {
-               if (wxMessageBox("Do you wish to play again?",
-                       "Well Done, You have won!", wxYES_NO | wxICON_QUESTION) == wxYES)
-               {
-                       m_game->Deal();
-
-                       wxClientDC dc(this); 
-                       PrepareDC(dc);
-                       dc.SetFont(* m_font);
-                       m_game->Redraw(dc);
-               }
-               else
-               {
-                       // user cancelled the dialog - exit the app
-                       ((wxFrame*)GetParent())->Close(TRUE);
-               }
-       }
-
        // Only set cursor to a hand if 'helping hand' is enabled and
        // the card under the cursor can go somewhere 
        if (m_game->CanYouGo(x, y) && m_helpingHand)
index e7c47b9b9f05c416e93e5ea1d832e5555eb22bad..9e4911741fd8173b7c88e549a87615c65acc472c 100644 (file)
@@ -155,12 +155,42 @@ void Game::DoMove(wxDC& dc, Pile* src, Pile* dest)
                           wxOK | wxICON_EXCLAMATION);
     }
 
-    if (!m_inPlay)
+       if (!m_inPlay)
        {
                m_inPlay = TRUE;
                m_numGames++;
        }
-    DisplayScore(dc);
+       DisplayScore(dc);
+
+       if (HaveYouWon())
+       {
+               wxWindow *frame = wxTheApp->GetTopWindow();
+               wxWindow *canvas = (wxWindow *) NULL;
+
+               if (frame)
+               {
+                       wxNode *node = frame->GetChildren().First();
+                       if (node) canvas = (wxWindow*)node->Data();
+               }
+
+               // This game is over
+               m_inPlay = FALSE;
+
+               // Redraw the score box to update games won
+               DisplayScore(dc);
+
+               if (wxMessageBox("Do you wish to play again?",
+                       "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);
+               }
+       }
 }