]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/life/life.cpp
Began to move wxAUI docs to latex.
[wxWidgets.git] / demos / life / life.cpp
index 2ff4a9e43a56b27fa79a1930defce1de901591a5..7f641ee1958175826460aa13791a0cc74d40cca2 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,9 +195,11 @@ 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"));
-#ifndef __WXWINCE__
+#if ! (defined(__SMARTPHONE__) || defined(__POCKETPC__))
     menuFile->AppendSeparator();
     menuFile->Append(wxID_EXIT, wxGetStockLabel(wxID_EXIT, true, _T("Alt-X")), _("Quit this program"));
 
@@ -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,
@@ -453,7 +456,7 @@ void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
                          wxEmptyString,
                          wxEmptyString,
                          _("Life patterns (*.lif)|*.lif|All files (*.*)|*.*"),
-                         wxOPEN | wxFILE_MUST_EXIST);
+                         wxFD_OPEN | wxFD_FILE_MUST_EXIST);
 
     if (filedlg.ShowModal() == wxID_OK)
     {
@@ -475,6 +478,7 @@ void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
         }
     }
 }
+#endif
 
 void LifeFrame::OnSamples(wxCommandEvent& WXUNUSED(event))
 {
@@ -689,7 +693,13 @@ void LifeNavigator::OnClose(wxCloseEvent& event)
 // canvas constructor
 LifeCanvas::LifeCanvas(wxWindow *parent, Life *life, bool interactive)
           : wxWindow(parent, wxID_ANY, wxDefaultPosition, wxSize(100, 100),
-            wxSUNKEN_BORDER|wxFULL_REPAINT_ON_RESIZE)
+            wxFULL_REPAINT_ON_RESIZE
+#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
+            |wxSUNKEN_BORDER
+#else
+            |wxSIMPLE_BORDER
+#endif
+            )
 {
     m_life        = life;
     m_interactive = interactive;
@@ -761,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)
@@ -800,8 +808,6 @@ void LifeCanvas::DrawChanged()
                       m_viewportY + m_viewportH,
                       true);
 
-    dc.BeginDrawing();
-
     if (m_cellsize == 1)
     {
         dc.SetPen(*wxBLACK_PEN);
@@ -820,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
@@ -849,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)
@@ -887,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)
@@ -941,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;
@@ -997,8 +998,6 @@ void LifeCanvas::OnMouse(wxMouseEvent& event)
         DrawCell(ii, jj, dc);
         m_mi = ii;
         m_mj = jj;
-
-        dc.EndDrawing();
     }
 
     ((LifeFrame *) wxGetApp().GetTopWindow())->UpdateInfoText();
@@ -1126,5 +1125,3 @@ void LifeCanvas::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
 {
     // do nothing. I just don't want the background to be erased, you know.
 }
-
-