X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70d26c3f4ffb24d50457d405c9595fd23f9e5b7c..35b038b17edefee28f48440d26414d1df6b972e9:/demos/forty/forty.cpp diff --git a/demos/forty/forty.cpp b/demos/forty/forty.cpp index bfdb920f06..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); @@ -227,7 +230,7 @@ FortyFrame::About(wxCommandEvent&) "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", @@ -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(); +} + +