]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/forty/forty.cpp
Bakefile/Makefile fix for uuid.cpp
[wxWidgets.git] / demos / forty / forty.cpp
index cb37828bef94330c925a72265e1e278b8fc97eaf..d809a743a5221b878a52f53bf536a1833409ae61 100644 (file)
@@ -39,8 +39,9 @@
 
 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)
@@ -73,27 +74,30 @@ FortyApp::~FortyApp()
 
 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()
@@ -120,23 +124,22 @@ const wxColour& FortyApp::TextColour()
 {
        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));
@@ -145,55 +148,55 @@ FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h,b
 
        // 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();
 }
@@ -221,20 +224,16 @@ FortyFrame::NewGame(wxCommandEvent&)
 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)
         {
         }
@@ -242,20 +241,24 @@ FortyFrame::About(wxCommandEvent&)
     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&)
 {
@@ -331,7 +334,7 @@ bool FortyAboutDialog::AddControls(wxWindow* parent)
             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();
@@ -349,7 +352,7 @@ bool FortyAboutDialog::AddControls(wxWindow* parent)
     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);
 
@@ -373,19 +376,18 @@ bool FortyAboutDialog::AddControls(wxWindow* parent)
     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;
 }