+DECLARE_APP(FortyApp)
+
+class FortyCanvas;
+class FortyFrame: public wxFrame
+{
+public:
+ FortyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size, bool largecards);
+ virtual ~FortyFrame(){};
+
+ void OnCloseWindow(wxCloseEvent& event);
+
+ // Menu callbacks
+ void NewGame(wxCommandEvent& event);
+ void Exit(wxCommandEvent& event);
+ void About(wxCommandEvent& event);
+ void Help(wxCommandEvent& event);
+ void Undo(wxCommandEvent& event);
+ void Redo(wxCommandEvent& event);
+ void Scores(wxCommandEvent& event);
+ void ToggleRightButtonUndo(wxCommandEvent& event);
+ void ToggleHelpingHand(wxCommandEvent& event);
+ void ToggleCardSize(wxCommandEvent& event);
+
+ FortyCanvas* GetCanvas() { return m_canvas; }
+
+ DECLARE_EVENT_TABLE()
+
+private:
+ enum MenuCommands {
+ SCORES = 10,
+ RIGHT_BUTTON_UNDO,
+ HELPING_HAND,
+ LARGE_CARDS
+ };
+
+ wxMenuBar* m_menuBar;
+ FortyCanvas* m_canvas;
+};
+
+//----------------------------------------------------------------------------
+// stAboutDialog
+//----------------------------------------------------------------------------
+
+class FortyAboutDialog: public wxDialog
+{
+public:
+ // constructors and destructors
+ FortyAboutDialog( wxWindow *parent, wxWindowID id, const wxString &title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE );
+
+ bool AddControls(wxWindow* parent);
+
+private:
+ DECLARE_EVENT_TABLE()
+};
+
+#define ID_ABOUT_HTML_WINDOW 1000
+