BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
EVT_MENU(NEW_GAME, FortyFrame::NewGame)
- EVT_MENU(EXIT, FortyFrame::Exit)
- EVT_MENU(ABOUT, FortyFrame::About)
+ 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(SCORES, FortyFrame::Scores)
bool FortyApp::OnInit()
{
- bool largecards = FALSE;
+ bool largecards = false;
+
wxSize size(668,510);
- if ((argc > 1) && (!wxStrcmp(argv[1],"-L")))
+ if ((argc > 1) && (!wxStrcmp(argv[1],_T("-L"))))
{
- largecards = TRUE;
+ largecards = true;
size = wxSize(1000,750);
}
FortyFrame* frame = new FortyFrame(
0,
- "Forty Thieves",
- -1, -1, size.x, size.y,largecards
+ _T("Forty Thieves"),
+ wxDefaultPosition,
+ size,
+ largecards
);
// Show the frame
- frame->Show(TRUE);
+ frame->Show(true);
frame->GetCanvas()->ShowPlayerDialog();
- return TRUE;
+ return true;
}
const wxColour& FortyApp::BackgroundColour()
{
if (!m_textColour)
{
- m_textColour = new wxColour("BLACK");
+ m_textColour = new wxColour(_T("BLACK"));
}
return *m_textColour;
}
// My frame constructor
-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))
+FortyFrame::FortyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size, bool largecards):
+ wxFrame(frame, wxID_ANY, title, pos, size)
{
#ifdef __WXMAC__
- // we need this in order to allow the about menu relocation, since ABOUT is not the default id of the about menu
- wxApp::s_macAboutMenuItemId = ABOUT ;
+ wxApp::s_macAboutMenuItemId = wxID_ABOUT ;
#endif
// set the icon
#ifdef __WXMSW__
- SetIcon(wxIcon("CardsIcon"));
+ SetIcon(wxIcon(_T("CardsIcon")));
#else
#ifdef GTK_TBD
SetIcon(wxIcon(Cards_bits, Cards_width, Cards_height));
// Make a menu bar
wxMenu* gameMenu = new wxMenu;
- gameMenu->Append(NEW_GAME, "&New", "Start a new game");
- gameMenu->Append(SCORES, "&Scores...", "Displays scores");
- gameMenu->Append(EXIT, "E&xit", "Exits Forty Thieves");
+ gameMenu->Append(NEW_GAME, _T("&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"));
wxMenu* editMenu = new wxMenu;
- editMenu->Append(UNDO, "&Undo", "Undo the last move");
- editMenu->Append(REDO, "&Redo", "Redo a move that has been undone");
+ editMenu->Append(UNDO, _T("&Undo"), _T("Undo the last move"));
+ editMenu->Append(REDO, _T("&Redo"), _T("Redo a move that has been undone"));
wxMenu* optionsMenu = new wxMenu;
optionsMenu->Append(RIGHT_BUTTON_UNDO,
- "&Right button undo",
- "Enables/disables right mouse button undo and redo",
- TRUE
+ _T("&Right button undo"),
+ _T("Enables/disables right mouse button undo and redo"),
+ true
);
optionsMenu->Append(HELPING_HAND,
- "&Helping hand",
- "Enables/disables hand cursor when a card can be moved",
- TRUE
+ _T("&Helping hand"),
+ _T("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
+ _T("&Large cards"),
+ _T("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);
+ 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 information about the game");
+ helpMenu->Append(wxID_HELP_CONTENTS, _T("&Help Contents"), _T("Displays information about playing the game"));
+ helpMenu->Append(wxID_ABOUT, _T("&About..."), _T("About Forty Thieves"));
m_menuBar = new wxMenuBar;
- m_menuBar->Append(gameMenu, "&Game");
- m_menuBar->Append(editMenu, "&Edit");
- m_menuBar->Append(optionsMenu, "&Options");
- m_menuBar->Append(helpMenu, "&Help");
+ m_menuBar->Append(gameMenu, _T("&Game"));
+ m_menuBar->Append(editMenu, _T("&Edit"));
+ m_menuBar->Append(optionsMenu, _T("&Options"));
+ m_menuBar->Append(helpMenu, _T("&Help"));
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);
- constr->top.SameAs(this, wxTop);
- constr->right.SameAs(this, wxRight);
- constr->height.SameAs(this, wxHeight);
- m_canvas->SetConstraints(constr);
+ m_canvas = new FortyCanvas(this, wxDefaultPosition, size);
+
+ wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
+ topsizer->Add( m_canvas, 1, wxEXPAND | wxALL, 0);
+ SetSizer( topsizer );
+ topsizer->SetSizeHints( this );
CreateStatusBar();
}
void
FortyFrame::Exit(wxCommandEvent&)
{
-#ifdef __WXGTK__
- // wxGTK doesn't call OnClose() so we do it here
-// if (OnClose())
-#endif
- Close(TRUE);
+ Close(true);
}
void
-FortyFrame::About(wxCommandEvent&)
+FortyFrame::Help(wxCommandEvent& event)
{
#if wxUSE_HTML
if (wxFileExists(wxT("about.htm")))
{
- FortyAboutDialog dialog(this, -1, wxT("About Forty Thieves"));
+ FortyAboutDialog dialog(this, wxID_ANY, wxT("Forty Thieves Instructions"));
if (dialog.ShowModal() == wxID_OK)
{
}
else
#endif
{
+ About(event);
+ }
+}
+
+void
+FortyFrame::About(wxCommandEvent&)
+{
wxMessageBox(
- "Forty Thieves\n\n"
- "A freeware program using the wxWindows\n"
- "portable C++ GUI toolkit.\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",
- "About Forty Thieves",
- wxOK, this
+ _T("Forty Thieves\n\n")
+ _T("A free card game written with the wxWidgets toolkit\n")
+ _T("Author: Chris Breeze (c) 1992-2004\n")
+ _T("email: chris@breezesys.com"),
+ _T("About Forty Thieves"),
+ wxOK|wxICON_INFORMATION, this
);
- }
}
+
void
FortyFrame::Undo(wxCommandEvent&)
{
wxFile file;
file.Open(htmlFile, wxFile::read);
long len = file.Length();
- char* buf = htmlText.GetWriteBuf(len + 1);
+ wxChar* buf = htmlText.GetWriteBuf(len + 1);
file.Read(buf, len);
buf[len] = 0;
htmlText.UngetWriteBuf();
verString.Printf("%.2f", stVERSION_NUMBER);
htmlText.Replace(wxT("$VERSION$"), verString);
#endif
- htmlText.Replace(wxT("$DATE$"), __DATE__);
+ htmlText.Replace(wxT("$DATE$"), _T(__DATE__));
wxSize htmlSize(400, 290);
wxASSERT( item1 );
item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 );
- wxButton *item2 = new wxButton( parent, wxID_CANCEL, "&Close", wxDefaultPosition, wxDefaultSize, 0 );
+ wxButton *item2 = new wxButton( parent, wxID_CANCEL, _T("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
item2->SetDefault();
item2->SetFocus();
item0->Add( item2, 0, wxALIGN_RIGHT|wxALL, 5 );
- parent->SetAutoLayout( TRUE );
parent->SetSizer( item0 );
parent->Layout();
item0->Fit( parent );
item0->SetSizeHints( parent );
#endif
- return TRUE;
+ return true;
}