]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/life/life.cpp
(blind) CE compilation fix: declare wxToolBarNameStr
[wxWidgets.git] / demos / life / life.cpp
index 023237c41b509d72f9b805c2353a1d8b6e2f92cb..9a0051d4bf0da8e78e874b7171a254b68eef144d 100644 (file)
@@ -103,7 +103,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,8 +185,9 @@ bool LifeApp::OnInit()
 // --------------------------------------------------------------------------
 
 // frame constructor
-LifeFrame::LifeFrame() : wxFrame( (wxFrame *) NULL, wxID_ANY,
-    _("Life!"), wxDefaultPosition )
+LifeFrame::LifeFrame() :
+  wxFrame( (wxFrame *) NULL, wxID_ANY, _("Life!"), wxDefaultPosition ),
+  m_navigator(NULL)
 {
     // frame icon
     SetIcon(wxICON(mondrian));
@@ -196,14 +199,19 @@ LifeFrame::LifeFrame() : wxFrame( (wxFrame *) NULL, wxID_ANY,
     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();
     menuFile->Append(wxID_EXIT, wxGetStockLabel(wxID_EXIT, true, _T("Alt-X")), _("Quit this program"));
 
     menuView->Append(ID_SHOWNAV, _("Navigation &toolbox"), _("Show or hide toolbox"), wxITEM_CHECK);
     menuView->Check(ID_SHOWNAV, true);
     menuView->AppendSeparator();
+#endif
+
     menuView->Append(ID_ORIGIN, _("&Absolute origin"), _("Go to (0, 0)"));
     menuView->Append(ID_CENTER, _("&Center of mass"), _("Find center of mass"));
     menuView->Append(ID_NORTH, _("&North"), _("Find northernmost cell"));
@@ -247,18 +255,19 @@ LifeFrame::LifeFrame() : wxFrame( (wxFrame *) NULL, wxID_ANY,
     toolBar->SetToolBitmapSize(wxSize(16, 16));
 
     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
 
-    // PocketPC only works with standard identifiers, and there's restricted space
-#ifndef __POCKETPC__
     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 // __POCKETPC__
     ADD_TOOL(ID_START, tbBitmaps[5], _("Start"), _("Start"));
     ADD_TOOL(wxID_STOP, tbBitmaps[6], wxGetStockLabel(wxID_STOP, false), _("Stop"));
-#endif
 
     toolBar->Realize();
     toolBar->EnableTool(wxID_STOP, false);    // must be after Realize() !
@@ -327,15 +336,17 @@ LifeFrame::LifeFrame() : wxFrame( (wxFrame *) NULL, wxID_ANY,
     sizer3->Add( panel1, 1, wxGROW );
     sizer3->Add( panel2, 0, wxGROW );
     SetSizer( sizer3 );
+
 #ifndef __WXWINCE__
     sizer3->Fit( this );
 
     // set minimum frame size
     sizer3->SetSizeHints( this );
-#endif
 
-    // navigator frame
+    // navigator frame - not appropriate for small devices
     m_navigator = new LifeNavigator(this);
+#endif
+
 }
 
 LifeFrame::~LifeFrame()
@@ -407,7 +418,8 @@ void LifeFrame::OnMenu(wxCommandEvent& event)
         case ID_SHOWNAV:
         {
             bool checked = GetMenuBar()->GetMenu(1)->IsChecked(ID_SHOWNAV);
-            m_navigator->Show(checked);
+            if (m_navigator)
+                m_navigator->Show(checked);
             break;
         }
         case ID_INFO:
@@ -440,6 +452,7 @@ void LifeFrame::OnMenu(wxCommandEvent& event)
     }
 }
 
+#if wxUSE_FILEDLG
 void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
 {
     wxFileDialog filedlg(this,
@@ -469,6 +482,7 @@ void LifeFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
         }
     }
 }
+#endif
 
 void LifeFrame::OnSamples(wxCommandEvent& WXUNUSED(event))
 {
@@ -683,7 +697,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;
@@ -1120,5 +1140,3 @@ void LifeCanvas::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
 {
     // do nothing. I just don't want the background to be erased, you know.
 }
-
-