X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/67a9999283b942053259fa418fe994eab8dd0b3b..191e43fd02e958cd302049c469fb0f5ca9b67ceb:/demos/forty/forty.cpp?ds=sidebyside diff --git a/demos/forty/forty.cpp b/demos/forty/forty.cpp index 82f6e11ae4..24902505bb 100644 --- a/demos/forty/forty.cpp +++ b/demos/forty/forty.cpp @@ -11,11 +11,6 @@ // Last modified: 22nd July 1998 - ported to wxWidgets 2.0 ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -31,19 +26,22 @@ #include "forty.h" #include "card.h" #include "scoredg.h" +#include "forty.xpm" #if wxUSE_HTML -#include "wx/file.h" +#include "wx/textfile.h" #include "wx/html/htmlwin.h" #endif +#include "wx/stockitem.h" + BEGIN_EVENT_TABLE(FortyFrame, wxFrame) - EVT_MENU(NEW_GAME, FortyFrame::NewGame) + EVT_MENU(wxID_NEW, FortyFrame::NewGame) EVT_MENU(wxID_EXIT, FortyFrame::Exit) EVT_MENU(wxID_ABOUT, FortyFrame::About) EVT_MENU(wxID_HELP_CONTENTS, FortyFrame::Help) - EVT_MENU(UNDO, FortyFrame::Undo) - EVT_MENU(REDO, FortyFrame::Redo) + EVT_MENU(wxID_UNDO, FortyFrame::Undo) + EVT_MENU(wxID_REDO, FortyFrame::Redo) EVT_MENU(SCORES, FortyFrame::Scores) EVT_MENU(RIGHT_BUTTON_UNDO, FortyFrame::ToggleRightButtonUndo) EVT_MENU(HELPING_HAND, FortyFrame::ToggleHelpingHand) @@ -58,10 +56,6 @@ wxColour* FortyApp::m_backgroundColour = 0; wxColour* FortyApp::m_textColour = 0; wxBrush* FortyApp::m_backgroundBrush = 0; -FortyApp::FortyApp() -{ -} - FortyApp::~FortyApp() { delete m_backgroundColour; @@ -75,6 +69,13 @@ FortyApp::~FortyApp() bool FortyApp::OnInit() { bool largecards = false; +#ifndef __WXWINCE__ + m_helpFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("about.htm"); + if (!wxFileExists(m_helpFile)) +#endif + { + m_helpFile = wxPathOnly(argv[0]) + wxFILE_SEP_PATH + wxT("about.htm"); + } wxSize size(668,510); @@ -124,7 +125,7 @@ const wxColour& FortyApp::TextColour() { if (!m_textColour) { - m_textColour = new wxColour(_T("BLACK")); + m_textColour = new wxColour(*wxBLACK); } return *m_textColour; @@ -141,20 +142,18 @@ FortyFrame::FortyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos #ifdef __WXMSW__ SetIcon(wxIcon(_T("CardsIcon"))); #else -#ifdef GTK_TBD - SetIcon(wxIcon(Cards_bits, Cards_width, Cards_height)); -#endif + SetIcon(wxIcon(forty_xpm)); #endif // Make a menu bar wxMenu* gameMenu = new wxMenu; - gameMenu->Append(NEW_GAME, _T("&New"), _T("Start a new game")); + gameMenu->Append(wxID_NEW, wxGetStockLabel(wxID_NEW), _T("Start a new game")); gameMenu->Append(SCORES, _T("&Scores..."), _T("Displays scores")); - gameMenu->Append(wxID_EXIT, _T("E&xit"), _T("Exits Forty Thieves")); + gameMenu->Append(wxID_EXIT, wxGetStockLabel(wxID_EXIT), _T("Exits Forty Thieves")); wxMenu* editMenu = new wxMenu; - editMenu->Append(UNDO, _T("&Undo"), _T("Undo the last move")); - editMenu->Append(REDO, _T("&Redo"), _T("Redo a move that has been undone")); + editMenu->Append(wxID_UNDO, wxGetStockLabel(wxID_UNDO), _T("Undo the last move")); + editMenu->Append(wxID_REDO, wxGetStockLabel(wxID_REDO), _T("Redo a move that has been undone")); wxMenu* optionsMenu = new wxMenu; optionsMenu->Append(RIGHT_BUTTON_UNDO, @@ -196,15 +195,12 @@ FortyFrame::FortyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); topsizer->Add( m_canvas, 1, wxEXPAND | wxALL, 0); SetSizer( topsizer ); - topsizer->SetSizeHints( this ); #if wxUSE_STATUSBAR CreateStatusBar(); #endif // wxUSE_STATUSBAR -} -FortyFrame::~FortyFrame() -{ + topsizer->SetSizeHints( this ); } void FortyFrame::OnCloseWindow(wxCloseEvent& event) @@ -233,7 +229,7 @@ void FortyFrame::Help(wxCommandEvent& event) { #if wxUSE_HTML - if (wxFileExists(wxT("about.htm"))) + if (wxFileExists(wxGetApp().GetHelpFile())) { FortyAboutDialog dialog(this, wxID_ANY, wxT("Forty Thieves Instructions")); if (dialog.ShowModal() == wxID_OK) @@ -308,9 +304,6 @@ FortyFrame::ToggleCardSize(wxCommandEvent& event) // stAboutDialog //---------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(FortyAboutDialog,wxDialog) -END_EVENT_TABLE() - FortyAboutDialog::FortyAboutDialog( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style ) : wxDialog( parent, id, title, position, size, style ) @@ -324,36 +317,25 @@ bool FortyAboutDialog::AddControls(wxWindow* parent) { #if wxUSE_HTML wxString htmlText; - wxString htmlFile(wxT("about.htm")); + wxString htmlFile = wxGetApp().GetHelpFile(); - //if (!wxGetApp().GetMemoryTextResource(wxT("about.htm"), htmlText)) { -// wxSetWorkingDirectory(wxGetApp().GetAppDir()); -// wxString htmlFile(wxGetApp().GetFullAppPath(wxT("about.htm"))); - - if (wxFileExists(htmlFile)) + wxTextFile file(htmlFile); + if (file.Exists()) { - wxFile file; - file.Open(htmlFile, wxFile::read); - long len = file.Length(); - wxChar* buf = htmlText.GetWriteBuf(len + 1); - file.Read(buf, len); - buf[len] = 0; - htmlText.UngetWriteBuf(); + file.Open(); + for ( htmlText = file.GetFirstLine(); + !file.Eof(); + htmlText << file.GetNextLine() << _T("\n") ) ; } } - if (htmlText.IsEmpty()) + if (htmlText.empty()) { htmlText.Printf(wxT("
Sorry, could not find resource for About dialog
")); } // Customize the HTML -#if 0 - wxString verString; - verString.Printf("%.2f", stVERSION_NUMBER); - htmlText.Replace(wxT("$VERSION$"), verString); -#endif htmlText.Replace(wxT("$DATE$"), _T(__DATE__)); wxSize htmlSize(400, 290); @@ -369,7 +351,7 @@ bool FortyAboutDialog::AddControls(wxWindow* parent) wxHtmlWindow* html = new wxHtmlWindow(this, ID_ABOUT_HTML_WINDOW, wxDefaultPosition, htmlSize, borderStyle); html -> SetBorders(10); html -> SetPage(htmlText); - + //// Start of sizer-based control creation wxSizer *item0 = new wxBoxSizer( wxVERTICAL ); @@ -378,9 +360,10 @@ bool FortyAboutDialog::AddControls(wxWindow* parent) wxASSERT( item1 ); item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 ); - wxButton *item2 = new wxButton( parent, wxID_CANCEL, _T("&Close"), wxDefaultPosition, wxDefaultSize, 0 ); + wxButton *item2 = new wxButton( parent, wxID_CLOSE ); item2->SetDefault(); item2->SetFocus(); + SetAffirmativeId(wxID_CLOSE); item0->Add( item2, 0, wxALIGN_RIGHT|wxALL, 5 ); @@ -392,4 +375,3 @@ bool FortyAboutDialog::AddControls(wxWindow* parent) return true; } -