X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fc7995487f3032d8415f87619efac7c391c72730..02a1dfbae942c883d8651e34dcfbc5153aabc56e:/demos/forty/canvas.cpp diff --git a/demos/forty/canvas.cpp b/demos/forty/canvas.cpp index 705e949612..81e7985234 100644 --- a/demos/forty/canvas.cpp +++ b/demos/forty/canvas.cpp @@ -68,6 +68,8 @@ FortyCanvas::~FortyCanvas() UpdateScores(); delete m_game; delete m_scoreFile; + delete m_handCursor; + delete m_arrowCursor; } @@ -92,7 +94,7 @@ void FortyCanvas::OnDraw(wxDC& dc) { dc.SetFont(* m_font); m_game->Redraw(dc); - +#if 0 // if player name not set (and selection dialog is not displayed) // then ask the player for their name if (m_player.Length() == 0 && !m_playerDialog) @@ -117,8 +119,40 @@ void FortyCanvas::OnDraw(wxDC& dc) ((wxFrame*)GetParent())->Close(TRUE); } } +#endif } +void FortyCanvas::ShowPlayerDialog() +{ + // if player name not set (and selection dialog is not displayed) + // then ask the player for their name + if (m_player.Length() == 0 && !m_playerDialog) + { + m_playerDialog = new PlayerSelectionDialog(this, m_scoreFile); + m_playerDialog->ShowModal(); + m_player = m_playerDialog->GetPlayersName(); + if (m_player.Length() > 0) + { + // user entered a name - lookup their score + int wins, games, score; + m_scoreFile->ReadPlayersScore(m_player, wins, games, score); + m_game->NewPlayer(wins, games, score); + + wxClientDC dc(this); + dc.SetFont(* m_font); + m_game->DisplayScore(dc); + m_playerDialog->Destroy(); + m_playerDialog = 0; + Refresh(false); + } + else + { + // user cancelled the dialog - exit the app + ((wxFrame*)GetParent())->Close(TRUE); + } + } +} + /* Called when the main frame is closed */