]> git.saurik.com Git - wxWidgets.git/blame_incremental - demos/bombs/bombs.h
rebaked after adding src/tiff/tif_color.c
[wxWidgets.git] / demos / bombs / bombs.h
... / ...
CommitLineData
1///////////////////////////////////////////////////////////////////////////////
2// Name: bombs.h
3// Purpose: Bombs game
4// Author: P. Foggia 1996
5// Modified by: Wlodzimierz Skiba (ABX) 2003
6// Created: 1996
7// RCS-ID: $Id$
8// Copyright: (c) 1996 P. Foggia
9// Licence: wxWindows licence
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_DEMOS_BOMBS_BOMBS_H_
13#define _WX_DEMOS_BOMBS_BOMBS_H_
14
15#include "game.h"
16
17class BombsFrame;
18
19/*
20 * Class representing the entire Application
21 */
22class BombsApp: public wxApp
23{
24public:
25 virtual bool OnInit();
26
27private :
28 BombsFrame *m_frame;
29
30 BombsGame m_game;
31
32};
33
34DECLARE_APP(BombsApp)
35
36class BombsCanvas;
37
38class BombsFrame : public wxFrame
39{
40public:
41
42 BombsFrame(BombsGame *bombsGame);
43
44 void NewGame(int level, bool query);
45
46private:
47
48 void OnNewEasyGame(wxCommandEvent& event);
49 void OnNewMediumGame(wxCommandEvent& event);
50 void OnNewHardGame(wxCommandEvent& event);
51
52 void OnExit(wxCommandEvent& event);
53
54 void OnAbout(wxCommandEvent& event);
55
56 BombsGame *m_game;
57
58 // Subwindows for reference within the program.
59 BombsCanvas *m_canvas;
60
61 DECLARE_EVENT_TABLE()
62};
63
64// App specific menu identifiers
65enum
66{
67 bombsID_NEWGAME = wxID_HIGHEST,
68 bombsID_EASY,
69 bombsID_MEDIUM,
70 bombsID_HARD
71};
72
73class BombsCanvas : public wxPanel
74{
75public:
76
77 // Constructor and destructor
78
79 BombsCanvas(wxFrame *parent, BombsGame *game);
80
81 void UpdateGridSize();
82
83 wxSize GetGridSizeInPixels() const;
84
85 ~BombsCanvas();
86
87private:
88
89 void OnPaint(wxPaintEvent& event);
90 void DrawField(wxDC *, int xc1, int yc1, int xc2, int yc2);
91 void RefreshField(int xc1, int yc1, int xc2, int yc2);
92 void Uncover(int x, int y);
93 void OnMouseEvent(wxMouseEvent& event);
94 void OnChar(wxKeyEvent& event);
95
96 BombsGame *m_game;
97
98 wxBitmap *m_bmp;
99
100 // Cell size in pixels
101 int m_cellWidth;
102 int m_cellHeight;
103
104 DECLARE_EVENT_TABLE()
105};
106
107/* The following sizes should probably be redefined */
108/* dimensions of a scroll unit, in pixels */
109#define X_UNIT 4
110#define Y_UNIT 4
111
112/* the dimensions of a cell, in scroll units are in
113 * BombsCanvas::x_cell and y_cell
114 */
115
116#ifdef __WXWINCE__
117#define BOMBS_FONT wxFont(12, wxSWISS, wxNORMAL, wxNORMAL)
118#else
119#define BOMBS_FONT wxFont(14, wxROMAN, wxNORMAL, wxNORMAL)
120#endif
121
122#endif // #ifndef _WX_DEMOS_BOMBS_BOMBS_H_
123