1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        canvas.h
3 // Purpose:     Forty Thieves patience game
4 // Author:      Chris Breeze
5 // Modified by:
6 // Created:     21/07/97
7 // RCS-ID:      $Id: canvas.h 27580 2004-06-02 09:14:59Z ABX $
8 // Copyright:   (c) 1993-1998 Chris Breeze
9 // Licence:     wxWindows licence
10 //---------------------------------------------------------------------------
11 // Last modified: 22nd July 1998 - ported to wxWidgets 2.0
12 /////////////////////////////////////////////////////////////////////////////
13 #ifndef _CANVAS_H_
14 #define _CANVAS_H_
15 
16 class Card;
17 class Game;
18 class ScoreFile;
19 class PlayerSelectionDialog;
20 
21 class FortyCanvas: public wxScrolledWindow
22 {
23 public:
24     FortyCanvas(wxWindow* parent, const wxPoint& pos, const wxSize& size);
25     virtual ~FortyCanvas();
26 
27     virtual void OnDraw(wxDC& dc);
28     bool OnCloseCanvas();
29     void OnMouseEvent(wxMouseEvent& event);
30     void SetCursorStyle(int x, int y);
31 
32     void NewGame();
33     void Undo();
34     void Redo();
35 
GetScoreFile()36     ScoreFile* GetScoreFile() const { return m_scoreFile; }
37     void UpdateScores();
EnableHelpingHand(bool enable)38     void EnableHelpingHand(bool enable) { m_helpingHand = enable; }
EnableRightButtonUndo(bool enable)39     void EnableRightButtonUndo(bool enable) { m_rightBtnUndo = enable; }
40     void LayoutGame();
41     void ShowPlayerDialog();
42 
43     DECLARE_EVENT_TABLE()
44 
45 private:
46     wxFont* m_font;
47     Game* m_game;
48     ScoreFile* m_scoreFile;
49     wxCursor* m_arrowCursor;
50     wxCursor* m_handCursor;
51     bool m_helpingHand;
52     bool m_rightBtnUndo;
53     wxString m_player;
54     PlayerSelectionDialog* m_playerDialog;
55     bool m_leftBtnDown;
56 };
57 
58 #endif
59