X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/29b07a3821efad89112a5a250fee09f2577658fe..6260902deed6ab165030edce802b95905958f10a:/demos/life/dialogs.cpp?ds=sidebyside diff --git a/demos/life/dialogs.cpp b/demos/life/dialogs.cpp index 0d8989793e..27c74fa918 100644 --- a/demos/life/dialogs.cpp +++ b/demos/life/dialogs.cpp @@ -40,10 +40,7 @@ // resources // -------------------------------------------------------------------------- -#if defined(__WXGTK__) || defined(__WXMOTIF__) - // logo for the about dialog - #include "bitmaps/life.xpm" -#endif +#include "bitmaps/life.xpm" // sample configurations #include "samples.inc" @@ -60,7 +57,7 @@ enum }; // -------------------------------------------------------------------------- -// event tables and other macros for wxWindows +// event tables and other macros for wxWidgets // -------------------------------------------------------------------------- // Event tables @@ -78,14 +75,11 @@ END_EVENT_TABLE() // -------------------------------------------------------------------------- LifeSamplesDialog::LifeSamplesDialog(wxWindow *parent) - : wxDialog(parent, -1, - _("Sample games"), - wxDefaultPosition, - wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL) + : wxDialog(parent, wxID_ANY, _("Sample games"), + wxDefaultPosition, wxDefaultSize) { m_value = 0; - + // create and populate the list of available samples m_list = new wxListBox( this, ID_LISTBOX, wxDefaultPosition, @@ -93,16 +87,16 @@ 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")); + wxStaticBox *statbox = new wxStaticBox( this, wxID_ANY, _("Description")); m_life = new Life(); - m_life->SetShape(g_shapes[0]); - m_canvas = new LifeCanvas( this, m_life, FALSE ); - m_text = new wxTextCtrl( this, -1, - g_shapes[0].m_desc, + m_life->SetPattern(g_patterns[0]); + m_canvas = new LifeCanvas( this, m_life, false ); + m_text = new wxTextCtrl( this, wxID_ANY, + g_patterns[0].m_description, wxDefaultPosition, wxSize(300, 60), wxTE_MULTILINE | wxTE_READONLY); @@ -118,17 +112,23 @@ LifeSamplesDialog::LifeSamplesDialog(wxWindow *parent) 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 ); +#if wxUSE_STATLINE + sizer3->Add( new wxStaticLine(this, wxID_ANY), 0, wxGROW | wxLEFT | wxRIGHT, 10 ); +#endif // wxUSE_STATLINE sizer3->Add( sizer2, 1, wxGROW | wxALL, 5 ); - sizer3->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 10 ); +#if wxUSE_STATLINE + sizer3->Add( new wxStaticLine(this, wxID_ANY), 0, wxGROW | wxLEFT | wxRIGHT, 10 ); +#endif // wxUSE_STATLINE sizer3->Add( CreateButtonSizer(wxOK | wxCANCEL), 0, wxCENTRE | wxALL, 10 ); // activate SetSizer(sizer3); - SetAutoLayout(TRUE); + +#if !defined(__POCKETPC__) && !defined(__SMARTPHONE__) sizer3->SetSizeHints(this); sizer3->Fit(this); Centre(wxBOTH | wxCENTRE_ON_SCREEN); +#endif } LifeSamplesDialog::~LifeSamplesDialog() @@ -136,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) @@ -148,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,38 +164,40 @@ void LifeSamplesDialog::OnListBox(wxCommandEvent& event) // -------------------------------------------------------------------------- LifeAboutDialog::LifeAboutDialog(wxWindow *parent) - : wxDialog(parent, -1, - _("About Life!"), - wxDefaultPosition, - wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL) + : wxDialog(parent, wxID_ANY, _("About Life!"), + wxDefaultPosition, wxDefaultSize) { // logo - wxBitmap bmp = wxBITMAP(life); -#if !defined(__WXGTK__) && !defined(__WXMOTIF__) - bmp.SetMask(new wxMask(bmp, *wxBLUE)); -#endif - wxStaticBitmap *sbmp = new wxStaticBitmap(this, -1, bmp); + wxStaticBitmap *sbmp = new wxStaticBitmap(this, wxID_ANY, wxBitmap(life_xpm)); // layout components 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! version 2.1 for wxWindows\n\n" - "(c) 2000 Guillermo Rodriguez Garcia\n\n" - "\n\n" - "Portions of the code are based in XLife;\n" - "XLife is (c) 1989 by Jon Bennett et al.")), +#if wxUSE_STATLINE + sizer->Add( new wxStaticLine(this, wxID_ANY), 0, wxGROW | wxLEFT | wxRIGHT, 5 ); +#endif // wxUSE_STATLINE + sizer->Add( CreateTextSizer(_("Life! version 2.2 for wxWidgets\n\n\ +(c) 2000 Guillermo Rodriguez Garcia\n\n\ +\n\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 ); +#if wxUSE_STATLINE + sizer->Add( new wxStaticLine(this, wxID_ANY), 0, wxGROW | wxLEFT | wxRIGHT, 5 ); +#endif // wxUSE_STATLINE + +#if ! (defined(__SMARTPHONE__) || defined(__POCKETPC__)) sizer->Add( CreateButtonSizer(wxOK), 0, wxCENTRE | wxALL, 10 ); +#endif // activate SetSizer(sizer); - SetAutoLayout(TRUE); + +#if ! (defined(__SMARTPHONE__) || defined(__POCKETPC__)) sizer->SetSizeHints(this); sizer->Fit(this); Centre(wxBOTH | wxCENTRE_ON_SCREEN); +#endif }