wxWidgets/demos/bombs/bombs.h
Maarten Bent 4d8fad3d80 Fix warnings and modernize demo code
Fix wxFont, wxPen and wxBrush style deprecation warnings.
Add wxFALLTHROUGH to resolve implicit fallthrough warnings in switch statements.
Fix build error when using long for GetTextExtent (with wxUSE_GRID 0).
Remove unused icon from fractal demo.
2017-11-25 17:52:07 +01:00

125 lines
2.4 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();
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_