#include "canvas.h"
#include "forty.h"
+#include "card.h"
#include "scoredg.h"
-#ifdef wx_x
-#include "cards.xbm"
-#endif
-
-class FortyFrame: public wxFrame
-{
-public:
- FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h);
- virtual ~FortyFrame();
-
- void OnCloseWindow(wxCloseEvent& event);
-
- // Menu callbacks
- void NewGame(wxCommandEvent& event);
- void Exit(wxCommandEvent& event);
- void About(wxCommandEvent& event);
- void Undo(wxCommandEvent& event);
- void Redo(wxCommandEvent& event);
- void Scores(wxCommandEvent& event);
- void ToggleRightButtonUndo(wxCommandEvent& event);
- void ToggleHelpingHand(wxCommandEvent& event);
-
- DECLARE_EVENT_TABLE()
-
-private:
- enum MenuCommands { NEW_GAME = 10, SCORES, EXIT,
- UNDO, REDO,
- RIGHT_BUTTON_UNDO, HELPING_HAND,
- ABOUT };
-
- wxMenuBar* m_menuBar;
- FortyCanvas* m_canvas;
-};
BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
EVT_MENU(NEW_GAME, FortyFrame::NewGame)
EVT_MENU(SCORES, FortyFrame::Scores)
EVT_MENU(RIGHT_BUTTON_UNDO, FortyFrame::ToggleRightButtonUndo)
EVT_MENU(HELPING_HAND, FortyFrame::ToggleHelpingHand)
+ EVT_MENU(LARGE_CARDS, FortyFrame::ToggleCardSize)
EVT_CLOSE(FortyFrame::OnCloseWindow)
END_EVENT_TABLE()
wxColour* FortyApp::m_textColour = 0;
wxBrush* FortyApp::m_backgroundBrush = 0;
+FortyApp::FortyApp()
+{
+}
+
+FortyApp::~FortyApp()
+{
+ delete m_backgroundColour;
+ delete m_textColour;
+ delete m_backgroundBrush;
+ delete Card::m_symbolBmap;
+ delete Card::m_pictureBmap;
+
+}
+
bool FortyApp::OnInit()
{
+ bool largecards = FALSE;
+ wxSize size(668,510);
+
+ if ((argc > 1) && (!wxStrcmp(argv[1],"-L")))
+ {
+ largecards = TRUE;
+ size = wxSize(1000,750);
+ }
+
FortyFrame* frame = new FortyFrame(
0,
"Forty Thieves",
- -1, -1, 668, 510
+ -1, -1, size.x, size.y,largecards
);
// Show the frame
frame->Show(TRUE);
+ frame->GetCanvas()->ShowPlayerDialog();
+
return TRUE;
}
}
// My frame constructor
-FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h):
+FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h,bool largecards):
wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
{
#ifdef __WXMAC__
"Enables/disables hand cursor when a card can be moved",
TRUE
);
+ optionsMenu->Append(LARGE_CARDS,
+ "&Large cards",
+ "Enables/disables large cards for high resolution displays",
+ TRUE
+ );
optionsMenu->Check(HELPING_HAND, TRUE);
optionsMenu->Check(RIGHT_BUTTON_UNDO, TRUE);
+ optionsMenu->Check(LARGE_CARDS, largecards ? TRUE : FALSE);
wxMenu* helpMenu = new wxMenu;
helpMenu->Append(ABOUT, "&About", "Displays program version information");
SetMenuBar(m_menuBar);
+ if (largecards)
+ Card::SetScale(1.3);
+
m_canvas = new FortyCanvas(this, 0, 0, 400, 400);
wxLayoutConstraints* constr = new wxLayoutConstraints;
constr->left.SameAs(this, wxLeft);
"Forty Thieves\n\n"
"A freeware program using the wxWindows\n"
"portable C++ GUI toolkit.\n"
- "http://web.ukonline.co.uk/julian.smart/wxwin\n"
+ "http://www.wxwindows.org\n"
"http://www.freiburg.linux.de/~wxxt\n\n"
"Author: Chris Breeze (c) 1992-1998\n"
"email: chris.breeze@iname.com",
bool checked = m_menuBar->IsChecked(event.GetId());
m_canvas->EnableHelpingHand(checked);
}
+
+void
+FortyFrame::ToggleCardSize(wxCommandEvent& event)
+{
+ bool checked = m_menuBar->IsChecked(event.GetId());
+ Card::SetScale(checked ? 1.3 : 1);
+ m_canvas->LayoutGame();
+ m_canvas->Refresh();
+}
+
+