X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/281b0186b81a35b3eff658635b083b04a3cfa23c..ddf9d04fe9c4aa5d7319c5eb7eabcf781a157c3d:/demos/forty/forty.cpp

diff --git a/demos/forty/forty.cpp b/demos/forty/forty.cpp
index 7d65694a9f..43865d8840 100644
--- a/demos/forty/forty.cpp
+++ b/demos/forty/forty.cpp
@@ -29,40 +29,8 @@
 
 #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)
@@ -73,6 +41,7 @@ BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
 	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()
 
@@ -83,17 +52,42 @@ wxColour* FortyApp::m_backgroundColour = 0;
 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;
 }
 
@@ -128,7 +122,7 @@ const wxColour& FortyApp::TextColour()
 }
 
 // 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__
@@ -165,8 +159,14 @@ FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h):
 			"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");
@@ -179,6 +179,9 @@ FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h):
 
 	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);
@@ -269,3 +272,14 @@ FortyFrame::ToggleHelpingHand(wxCommandEvent& event)
 	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();
+}
+
+