X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e0a4029251c1d80d50f9cb0bd152d1fca7914bc4..4649b5eded522cdc6d76aae074f98a2c162fd648:/demos/life/dialogs.cpp?ds=inline diff --git a/demos/life/dialogs.cpp b/demos/life/dialogs.cpp index ab1dc23f17..635aa75da1 100644 --- a/demos/life/dialogs.cpp +++ b/demos/life/dialogs.cpp @@ -17,18 +17,30 @@ #pragma implementation "dialogs.h" #endif +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + #include "wx/statline.h" -#include "wx/spinctrl.h" +#include "wx/minifram.h" #include "dialogs.h" #include "life.h" #include "game.h" + // -------------------------------------------------------------------------- // resources // -------------------------------------------------------------------------- -#if defined(__WXGTK__) || defined(__WXMOTIF__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) // logo for the about dialog #include "bitmaps/life.xpm" #endif @@ -43,9 +55,6 @@ // IDs for the controls and the menu commands enum { - // bmp window in about dialog - ID_BMPWIN = 2001, - // listbox in samples dialog ID_LISTBOX }; @@ -57,7 +66,6 @@ enum // Event tables BEGIN_EVENT_TABLE(LifeSamplesDialog, wxDialog) EVT_LISTBOX (ID_LISTBOX, LifeSamplesDialog::OnListBox) - END_EVENT_TABLE() @@ -85,33 +93,33 @@ LifeSamplesDialog::LifeSamplesDialog(wxWindow *parent) 0, NULL, wxLB_SINGLE | wxLB_NEEDED_SB | wxLB_HSCROLL ); - for (unsigned i = 0; i < (sizeof(g_shapes) / sizeof(LifeShape)); i++) - m_list->Append(g_shapes[i].m_name); + for (unsigned i = 0; i < (sizeof(g_patterns) / sizeof(LifePattern)); i++) + m_list->Append(g_patterns[i].m_name); // descriptions wxStaticBox *statbox = new wxStaticBox( this, -1, _("Description")); m_life = new Life(); - m_life->SetShape(g_shapes[0]); + m_life->SetPattern(g_patterns[0]); m_canvas = new LifeCanvas( this, m_life, FALSE ); m_text = new wxTextCtrl( this, -1, - g_shapes[0].m_desc, + g_patterns[0].m_description, wxDefaultPosition, wxSize(300, 60), wxTE_MULTILINE | wxTE_READONLY); // layout components wxStaticBoxSizer *sizer1 = new wxStaticBoxSizer( statbox, wxVERTICAL ); - sizer1->Add( m_canvas, 2, wxGROW | wxCENTRE | wxALL, 5); - sizer1->Add( m_text, 1, wxGROW | wxCENTRE | wxALL, 5 ); + sizer1->Add( m_canvas, 2, wxGROW | wxALL, 5); + sizer1->Add( m_text, 1, wxGROW | wxALL, 5 ); wxBoxSizer *sizer2 = new wxBoxSizer( wxHORIZONTAL ); - sizer2->Add( m_list, 0, wxGROW | wxCENTRE | wxALL, 5 ); - sizer2->Add( sizer1, 1, wxGROW | wxCENTRE | wxALL, 5 ); + sizer2->Add( m_list, 0, wxGROW | wxALL, 5 ); + sizer2->Add( sizer1, 1, wxGROW | wxALL, 5 ); wxBoxSizer *sizer3 = new wxBoxSizer( wxVERTICAL ); sizer3->Add( CreateTextSizer(_("Select one configuration")), 0, wxALL, 10 ); sizer3->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 10 ); - sizer3->Add( sizer2, 1, wxGROW | wxCENTRE | wxALL, 5 ); + sizer3->Add( sizer2, 1, wxGROW | wxALL, 5 ); sizer3->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 10 ); sizer3->Add( CreateButtonSizer(wxOK | wxCANCEL), 0, wxCENTRE | wxALL, 10 ); @@ -128,9 +136,9 @@ LifeSamplesDialog::~LifeSamplesDialog() m_canvas->Destroy(); } -const LifeShape& LifeSamplesDialog::GetShape() +const LifePattern& LifeSamplesDialog::GetPattern() { - return g_shapes[m_value]; + return g_patterns[m_value]; } void LifeSamplesDialog::OnListBox(wxCommandEvent& event) @@ -140,15 +148,14 @@ void LifeSamplesDialog::OnListBox(wxCommandEvent& event) if (sel != -1) { m_value = m_list->GetSelection(); - m_text->SetValue(g_shapes[ sel ].m_desc); - m_life->SetShape(g_shapes[ sel ]); + m_text->SetValue(g_patterns[ sel ].m_description); + m_life->SetPattern(g_patterns[ sel ]); - // quick and dirty :-) - if ((g_shapes[ sel ].m_width > 36) || - (g_shapes[ sel ].m_height > 22)) - m_canvas->SetCellSize(2); - else + // these values shouldn't be hardcoded... + if ((size_t)sel < (sizeof(g_patterns) / sizeof(LifePattern)) - 3) m_canvas->SetCellSize(8); + else + m_canvas->SetCellSize(2); } } @@ -165,7 +172,7 @@ LifeAboutDialog::LifeAboutDialog(wxWindow *parent) { // logo wxBitmap bmp = wxBITMAP(life); -#if !defined(__WXGTK__) && !defined(__WXMOTIF__) +#if !defined(__WXGTK__) && !defined(__WXMOTIF__) && !defined(__WXMAC__) bmp.SetMask(new wxMask(bmp, *wxBLUE)); #endif wxStaticBitmap *sbmp = new wxStaticBitmap(this, -1, bmp); @@ -174,10 +181,10 @@ LifeAboutDialog::LifeAboutDialog(wxWindow *parent) wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL ); sizer->Add( sbmp, 0, wxCENTRE | wxALL, 10 ); sizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 5 ); - sizer->Add( CreateTextSizer(_("Life! for wxWindows, version 2.0\n\n" + sizer->Add( CreateTextSizer(_("Life! version 2.2 for wxWindows\n\n" "(c) 2000 Guillermo Rodriguez Garcia\n\n" "\n\n" - "Portions of the code are based in XLife\n" + "Portions of the code are based in XLife;\n" "XLife is (c) 1989 by Jon Bennett et al.")), 0, wxCENTRE | wxALL, 20 ); sizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 5 ); @@ -190,3 +197,6 @@ LifeAboutDialog::LifeAboutDialog(wxWindow *parent) sizer->Fit(this); Centre(wxBOTH | wxCENTRE_ON_SCREEN); } + + +