X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7874bf5430d47317bebf5c68cd7d4a2d964dee95..a3b7db872925df2921f36637a84085ec04cf977a:/demos/bombs/bombs.h diff --git a/demos/bombs/bombs.h b/demos/bombs/bombs.h index d1b8b8017b..52ee72bd9d 100644 --- a/demos/bombs/bombs.h +++ b/demos/bombs/bombs.h @@ -2,108 +2,113 @@ // Name: bombs.h // Purpose: Bombs game // Author: P. Foggia 1996 -// Modified by: +// Modified by: Wlodzimierz Skiba (ABX) since 2003 // Created: 1996 // RCS-ID: $Id$ // Copyright: (c) 1996 P. Foggia // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifndef _INC_BOMBS_H -#define _INC_BOMBS_H +#ifndef _WX_DEMOS_BOMBS_BOMBS_H_ +#define _WX_DEMOS_BOMBS_BOMBS_H_ #include "game.h" -/* - * Forward declarations of all top-level window classes. - */ -class BombsFrameClass; -class AboutFrameClass; +class BombsFrame; /* * Class representing the entire Application */ -class AppClass: public wxApp +class BombsApp: public wxApp { - public: - BombsFrameClass *BombsFrame; - int level; - BombsGame Game; +public: + virtual bool OnInit(); + +private : + BombsFrame *m_frame; + + BombsGame m_game; - bool OnInit(); }; -DECLARE_APP(AppClass) +DECLARE_APP(BombsApp) -class BombsCanvasClass; +class BombsCanvas; -class BombsFrameClass: public wxFrame +class BombsFrame : 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() +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; + + 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 +// App specific menu identifiers +enum { - 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); - void Refresh(int xc1, int yc1, int xc2, int yc2); - void Uncover(int x, int y); - void OnEvent(wxMouseEvent& event); - void UpdateFieldSize(); - -DECLARE_EVENT_TABLE() + bombsID_LEVEL = wxID_HIGHEST, + bombsID_EASY, + bombsID_MEDIUM, + bombsID_HARD, + bombsID_EASYCORNER }; -/* Menu identifiers - */ +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; + + DECLARE_EVENT_TABLE() +}; /* The following sizes should probably be redefined */ /* dimensions of a scroll unit, in pixels */ @@ -111,10 +116,14 @@ DECLARE_EVENT_TABLE() #define Y_UNIT 4 /* the dimensions of a cell, in scroll units are in - * BombsCanvasClass::x_cell and y_cell + * BombsCanvas::x_cell and y_cell */ +#ifdef __WXWINCE__ +#define BOMBS_FONT wxFont(12, wxSWISS, wxNORMAL, wxNORMAL) +#else #define BOMBS_FONT wxFont(14, wxROMAN, wxNORMAL, wxNORMAL) +#endif -#endif /* mutual exclusion */ +#endif // #ifndef _WX_DEMOS_BOMBS_BOMBS_H_