]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/life/life.cpp
1. changed all "wxMBConv& conv" parameters to "const wxMBConv&"
[wxWidgets.git] / demos / life / life.cpp
index 62a42a72e71cf51d8ccc0205e4e1c1f79dd0cee4..dc1ca609fa925072dbac777ea2ae9c45323d4139 100644 (file)
 // headers, declarations, constants
 // ==========================================================================
 
-#ifdef __GNUG__
-    #pragma implementation "life.h"
-#endif
-
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
@@ -103,7 +99,9 @@ enum
 // Event tables
 BEGIN_EVENT_TABLE(LifeFrame, wxFrame)
     EVT_MENU            (wxID_NEW,     LifeFrame::OnMenu)
+#if wxUSE_FILEDLG
     EVT_MENU            (wxID_OPEN,    LifeFrame::OnOpen)
+#endif
     EVT_MENU            (ID_SAMPLES,   LifeFrame::OnSamples)
     EVT_MENU            (wxID_ABOUT,   LifeFrame::OnMenu)
     EVT_MENU            (wxID_EXIT,    LifeFrame::OnMenu)
@@ -183,7 +181,7 @@ bool LifeApp::OnInit()
 // --------------------------------------------------------------------------
 
 // frame constructor
-LifeFrame::LifeFrame() : 
+LifeFrame::LifeFrame() :
   wxFrame( (wxFrame *) NULL, wxID_ANY, _("Life!"), wxDefaultPosition ),
   m_navigator(NULL)
 {
@@ -197,7 +195,9 @@ LifeFrame::LifeFrame() :
     wxMenu *menuHelp = new wxMenu(wxMENU_TEAROFF);
 
     menuFile->Append(wxID_NEW, wxGetStockLabel(wxID_NEW), _("Start a new game"));
+#if wxUSE_FILEDLG
     menuFile->Append(wxID_OPEN, wxGetStockLabel(wxID_OPEN), _("Open an existing Life pattern"));
+#endif
     menuFile->Append(ID_SAMPLES, _("&Sample game..."), _("Select a sample configuration"));
 #if ! (defined(__SMARTPHONE__) || defined(__POCKETPC__))
     menuFile->AppendSeparator();
@@ -252,14 +252,16 @@ LifeFrame::LifeFrame() :
 
     ADD_TOOL(wxID_NEW, tbBitmaps[0], wxGetStockLabel(wxID_NEW, false), _("Start a new game"));
 #ifndef __POCKETPC__
+#if wxUSE_FILEDLG
     ADD_TOOL(wxID_OPEN, tbBitmaps[1], wxGetStockLabel(wxID_OPEN, false), _("Open an existing Life pattern"));
+#endif // wxUSE_FILEDLG
 
     toolBar->AddSeparator();
     ADD_TOOL(wxID_ZOOM_IN, tbBitmaps[2], wxGetStockLabel(wxID_ZOOM_IN, false), _("Zoom in"));
     ADD_TOOL(wxID_ZOOM_OUT, tbBitmaps[3], wxGetStockLabel(wxID_ZOOM_OUT, false), _("Zoom out"));
     ADD_TOOL(ID_INFO, tbBitmaps[4], _("Description"), _("Show description"));
     toolBar->AddSeparator();
-#endif
+#endif // __POCKETPC__
     ADD_TOOL(ID_START, tbBitmaps[5], _("Start"), _("Start"));
     ADD_TOOL(wxID_STOP, tbBitmaps[6], wxGetStockLabel(wxID_STOP, false), _("Stop"));
 
@@ -446,6 +448,7 @@ void LifeFrame::OnMenu(wxCommandEvent& event)
     }
 }
 
+#if wxUSE_FILEDLG
 void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
 {
     wxFileDialog filedlg(this,
@@ -475,6 +478,7 @@ void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
         }
     }
 }
+#endif
 
 void LifeFrame::OnSamples(wxCommandEvent& WXUNUSED(event))
 {
@@ -767,9 +771,7 @@ void LifeCanvas::DrawCell(wxInt32 i, wxInt32 j, bool alive)
     dc.SetPen(alive? *wxBLACK_PEN : *wxWHITE_PEN);
     dc.SetBrush(alive? *wxBLACK_BRUSH : *wxWHITE_BRUSH);
 
-    dc.BeginDrawing();
     DrawCell(i, j, dc);
-    dc.EndDrawing();
 }
 
 void LifeCanvas::DrawCell(wxInt32 i, wxInt32 j, wxDC &dc)
@@ -806,8 +808,6 @@ void LifeCanvas::DrawChanged()
                       m_viewportY + m_viewportH,
                       true);
 
-    dc.BeginDrawing();
-
     if (m_cellsize == 1)
     {
         dc.SetPen(*wxBLACK_PEN);
@@ -826,7 +826,6 @@ void LifeCanvas::DrawChanged()
         for (size_t m = 0; m < ncells; m++)
             DrawCell(cells[m].i, cells[m].j, dc);
     }
-    dc.EndDrawing();
 }
 
 // event handlers
@@ -855,7 +854,6 @@ void LifeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
     bool done = m_life->FindMore(&cells, &ncells);
 
     // erase all damaged cells and draw the grid
-    dc.BeginDrawing();
     dc.SetBrush(*wxWHITE_BRUSH);
 
     if (m_cellsize <= 2)
@@ -893,8 +891,6 @@ void LifeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
     // last set
     for (size_t m = 0; m < ncells; m++)
         DrawCell(cells[m].i, cells[m].j, dc);
-
-    dc.EndDrawing();
 }
 
 void LifeCanvas::OnMouse(wxMouseEvent& event)
@@ -947,7 +943,6 @@ void LifeCanvas::OnMouse(wxMouseEvent& event)
         wxClientDC dc(this);
         dc.SetPen(alive? *wxBLACK_PEN : *wxWHITE_PEN);
         dc.SetBrush(alive? *wxBLACK_BRUSH : *wxWHITE_BRUSH);
-        dc.BeginDrawing();
 
         // draw a line of cells using Bresenham's algorithm
         wxInt32 d, ii, jj, di, ai, si, dj, aj, sj;
@@ -1003,8 +998,6 @@ void LifeCanvas::OnMouse(wxMouseEvent& event)
         DrawCell(ii, jj, dc);
         m_mi = ii;
         m_mj = jj;
-
-        dc.EndDrawing();
     }
 
     ((LifeFrame *) wxGetApp().GetTopWindow())->UpdateInfoText();
@@ -1132,5 +1125,3 @@ void LifeCanvas::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
 {
     // do nothing. I just don't want the background to be erased, you know.
 }
-
-