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
16class Card;
17class Game;
18class ScoreFile;
19class PlayerSelectionDialog;
20
21class FortyCanvas: public wxScrolledWindow
22{
23public:
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
36    ScoreFile* GetScoreFile() const { return m_scoreFile; }
37    void UpdateScores();
38    void EnableHelpingHand(bool enable) { m_helpingHand = enable; }
39    void EnableRightButtonUndo(bool enable) { m_rightBtnUndo = enable; }
40    void LayoutGame();
41    void ShowPlayerDialog();
42
43    DECLARE_EVENT_TABLE()
44
45private:
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