1998-12-31 05:54:41 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: bombs.h
|
|
|
|
// Purpose: Bombs game
|
|
|
|
// Author: P. Foggia 1996
|
|
|
|
// Modified by:
|
|
|
|
// Created: 1996
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) 1996 P. Foggia
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef _INC_BOMBS_H
|
|
|
|
#define _INC_BOMBS_H
|
|
|
|
|
|
|
|
#include "game.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Forward declarations of all top-level window classes.
|
|
|
|
*/
|
|
|
|
class BombsFrameClass;
|
|
|
|
class AboutFrameClass;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Class representing the entire Application
|
|
|
|
*/
|
|
|
|
class AppClass: public wxApp
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
BombsFrameClass *BombsFrame;
|
|
|
|
int level;
|
|
|
|
BombsGame Game;
|
|
|
|
|
|
|
|
bool OnInit();
|
|
|
|
};
|
|
|
|
|
|
|
|
DECLARE_APP(AppClass)
|
|
|
|
|
|
|
|
class BombsCanvasClass;
|
|
|
|
|
|
|
|
class BombsFrameClass: public wxFrame
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
protected:
|
|
|
|
public:
|
|
|
|
// Subwindows for reference within the program.
|
|
|
|
BombsCanvasClass *BombsCanvas;
|
|
|
|
wxMenuBar *menuBar;
|
|
|
|
|
|
|
|
// Constructor and destructor
|
|
|
|
BombsFrameClass(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, long style);
|
|
|
|
~BombsFrameClass(void);
|
|
|
|
|
|
|
|
void OnCloseWindow(wxCloseEvent& event);
|
|
|
|
void OnExit(wxCommandEvent& event);
|
|
|
|
void OnRestart(wxCommandEvent& event);
|
|
|
|
void OnAbout(wxCommandEvent& event);
|
|
|
|
void OnEasy(wxCommandEvent& event);
|
|
|
|
void OnMedium(wxCommandEvent& event);
|
|
|
|
void OnDifficult(wxCommandEvent& event);
|
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Menu identifiers
|
|
|
|
*/
|
|
|
|
// File
|
|
|
|
#define BOMBSFRAMECLASS_FILE 1
|
|
|
|
// E&xit
|
|
|
|
#define IDM_EXIT 2
|
|
|
|
// About...
|
|
|
|
#define IDM_ABOUT 3
|
|
|
|
// Game
|
|
|
|
#define BOMBSFRAMECLASS_GAME 4
|
|
|
|
// &Restart
|
|
|
|
#define IDM_RESTART 5
|
|
|
|
// &Easy
|
|
|
|
#define IDM_EASY 6
|
|
|
|
// &Medium
|
|
|
|
#define IDM_MEDIUM 7
|
|
|
|
// &Difficult
|
|
|
|
#define IDM_DIFFICULT 8
|
|
|
|
|
|
|
|
class BombsCanvasClass: public wxWindow
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
protected:
|
|
|
|
public:
|
|
|
|
int field_width, field_height;
|
|
|
|
int x_cell, y_cell;
|
|
|
|
wxBitmap *bmp;
|
|
|
|
// Constructor and destructor
|
|
|
|
BombsCanvasClass(wxFrame *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0);
|
|
|
|
~BombsCanvasClass(void);
|
|
|
|
|
|
|
|
void OnPaint(wxPaintEvent& event);
|
|
|
|
void DrawField(wxDC *, int xc1, int yc1, int xc2, int yc2);
|
2003-09-18 09:33:34 -04:00
|
|
|
void RefreshField(int xc1, int yc1, int xc2, int yc2);
|
2000-10-30 12:06:43 -05:00
|
|
|
void Uncover(int x, int y);
|
1998-12-31 05:54:41 -05:00
|
|
|
void OnEvent(wxMouseEvent& event);
|
|
|
|
void UpdateFieldSize();
|
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Menu identifiers
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* 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
|
|
|
|
* BombsCanvasClass::x_cell and y_cell
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define BOMBS_FONT wxFont(14, wxROMAN, wxNORMAL, wxNORMAL)
|
|
|
|
|
|
|
|
#endif /* mutual exclusion */
|
|
|
|
|