125 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        bombs.h
 | |
| // Purpose:     Bombs game
 | |
| // Author:      P. Foggia 1996
 | |
| // Modified by: Wlodzimierz Skiba (ABX) since 2003
 | |
| // Created:     1996
 | |
| // Copyright:   (c) 1996 P. Foggia
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_DEMOS_BOMBS_BOMBS_H_
 | |
| #define _WX_DEMOS_BOMBS_BOMBS_H_
 | |
| 
 | |
| #include "game.h"
 | |
| 
 | |
| class BombsFrame;
 | |
| 
 | |
| /*
 | |
|  * Class representing the entire Application
 | |
|  */
 | |
| class BombsApp: public wxApp
 | |
| {
 | |
| public:
 | |
|     virtual bool OnInit() wxOVERRIDE;
 | |
| 
 | |
| private :
 | |
|     BombsFrame *m_frame;
 | |
| 
 | |
|     BombsGame m_game;
 | |
| 
 | |
| };
 | |
| 
 | |
| wxDECLARE_APP(BombsApp);
 | |
| 
 | |
| class BombsCanvas;
 | |
| 
 | |
| class BombsFrame : public wxFrame
 | |
| {
 | |
| public:
 | |
| 
 | |
|     BombsFrame(BombsGame *bombsGame);
 | |
| 
 | |
|     void NewGame(int level, bool query);
 | |
| 
 | |
| private:
 | |
| 
 | |
|     void OnNewGame(wxCommandEvent& event);
 | |
|     void OnEasyGame(wxCommandEvent& event);
 | |
|     void OnMediumGame(wxCommandEvent& event);
 | |
|     void OnHardGame(wxCommandEvent& event);
 | |
| 
 | |
|     void OnEasyCorner(wxCommandEvent& event);
 | |
| 
 | |
|     void OnExit(wxCommandEvent& event);
 | |
| 
 | |
|     void OnAbout(wxCommandEvent& event);
 | |
| 
 | |
|     BombsGame *m_game;
 | |
|     bool m_easyCorner;
 | |
|     int m_lastLevel;
 | |
| 
 | |
|     // Subwindows for reference within the program.
 | |
|     BombsCanvas *m_canvas;
 | |
| 
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| // App specific menu identifiers
 | |
| enum
 | |
| {
 | |
|     bombsID_LEVEL = wxID_HIGHEST,
 | |
|     bombsID_EASY,
 | |
|     bombsID_MEDIUM,
 | |
|     bombsID_HARD,
 | |
|     bombsID_EASYCORNER
 | |
| };
 | |
| 
 | |
| class BombsCanvas : public wxPanel
 | |
| {
 | |
| public:
 | |
| 
 | |
|     // Constructor and destructor
 | |
| 
 | |
|     BombsCanvas(wxFrame *parent, BombsGame *game);
 | |
| 
 | |
|     void UpdateGridSize();
 | |
| 
 | |
|     wxSize GetGridSizeInPixels() const;
 | |
| 
 | |
|     virtual ~BombsCanvas();
 | |
| 
 | |
| private:
 | |
| 
 | |
|     void OnPaint(wxPaintEvent& event);
 | |
|     void DrawField(wxDC *, int xc1, int yc1, int xc2, int yc2);
 | |
|     void RefreshField(int xc1, int yc1, int xc2, int yc2);
 | |
|     void Uncover(int x, int y);
 | |
|     void OnMouseEvent(wxMouseEvent& event);
 | |
|     void OnChar(wxKeyEvent& event);
 | |
| 
 | |
|     BombsGame *m_game;
 | |
| 
 | |
|     wxBitmap *m_bmp;
 | |
| 
 | |
|     // Cell size in pixels
 | |
|     int m_cellWidth;
 | |
|     int m_cellHeight;
 | |
| 
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| /* The following sizes should probably be redefined */
 | |
| /* dimensions of a scroll unit, in pixels */
 | |
| #define X_UNIT 4
 | |
| #define Y_UNIT 4
 | |
| 
 | |
| /* the dimensions of a cell, in scroll units are in
 | |
|  * BombsCanvas::x_cell and y_cell
 | |
|  */
 | |
| 
 | |
| #define BOMBS_FONT wxFont(wxFontInfo(14).Family(wxFONTFAMILY_ROMAN))
 | |
| 
 | |
| #endif // #ifndef _WX_DEMOS_BOMBS_BOMBS_H_
 | |
| 
 |