X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/babd36de3a0c49b23f41cae0478a3bfba4882aa3..f3cb0d85b4e032cacaca960fc5cf3573ac75bbfc:/demos/forty/playerdg.cpp diff --git a/demos/forty/playerdg.cpp b/demos/forty/playerdg.cpp index 32f72be25d..1454290692 100644 --- a/demos/forty/playerdg.cpp +++ b/demos/forty/playerdg.cpp @@ -6,9 +6,7 @@ // Created: 21/07/97 // RCS-ID: $Id$ // Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -33,160 +31,112 @@ const int ID_LISTBOX = 101; BEGIN_EVENT_TABLE(PlayerSelectionDialog, wxDialog) - EVT_SIZE(PlayerSelectionDialog::OnSize) - EVT_BUTTON(wxID_OK, PlayerSelectionDialog::ButtonCallback) - EVT_BUTTON(wxID_CANCEL, PlayerSelectionDialog::ButtonCallback) - EVT_LISTBOX(ID_LISTBOX, PlayerSelectionDialog::SelectCallback) + EVT_SIZE(PlayerSelectionDialog::OnSize) + EVT_BUTTON(wxID_OK, PlayerSelectionDialog::ButtonCallback) + EVT_BUTTON(wxID_CANCEL, PlayerSelectionDialog::ButtonCallback) + EVT_LISTBOX(ID_LISTBOX, PlayerSelectionDialog::SelectCallback) EVT_CLOSE(PlayerSelectionDialog::OnCloseWindow) END_EVENT_TABLE() PlayerSelectionDialog::PlayerSelectionDialog( - wxWindow* parent, - ScoreFile* file - ) : - wxDialog(parent, -1, _T("Player Selection"), - wxDefaultPosition, wxSize(320, 200), - wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE), - m_scoreFile(file) + wxWindow* parent, + ScoreFile* file + ) : + wxDialog(parent, wxID_ANY, _T("Player Selection"), wxDefaultPosition), + m_scoreFile(file) { - // enable constraints - SetAutoLayout (TRUE); - - wxStaticText* msg = new wxStaticText(this, -1, _T("Please select a name or type a new one:")); - - wxListBox* list = new wxListBox( - this, ID_LISTBOX, - wxDefaultPosition, wxDefaultSize, - 0, 0, - wxLB_SINGLE - ); - - wxArrayString players; - m_scoreFile->GetPlayerList(players); - for (unsigned int i = 0; i < players.Count(); i++) - { - list->Append(players[i]); - } - - m_textField = new wxTextCtrl(this, -1, _T(""), wxDefaultPosition, wxDefaultSize, 0); - - m_OK = new wxButton(this, wxID_OK, _T("OK")); - m_cancel = new wxButton(this, wxID_CANCEL, _T("Cancel")); - - wxLayoutConstraints* layout; - - // Constrain the msg at the top of the window - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->top.SameAs (this, wxTop, 10); - layout->height.AsIs(); - layout->width.AsIs(); - msg->SetConstraints(layout); - - // Constrain the OK button - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->bottom.SameAs (this, wxBottom, 10); - layout->height.AsIs(); - layout->width.AsIs(); - m_OK->SetConstraints(layout); - - // Constrain the OK button - layout = new wxLayoutConstraints; - layout->left.RightOf (m_OK, 10); - layout->bottom.SameAs (this, wxBottom, 10); - layout->height.AsIs(); - layout->width.AsIs(); - m_cancel->SetConstraints(layout); - - // Constrain the Name text entry field - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->right.SameAs (this, wxRight, 10); - layout->bottom.SameAs (m_OK, wxTop, 10); - layout->height.AsIs(); - m_textField->SetConstraints(layout); - - // Constrain the list of players - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->right.SameAs (this, wxRight, 10); - layout->top.Below (msg, 10); - layout->bottom.SameAs (m_textField, wxTop, 10); - list->SetConstraints(layout); - - wxString prevPlayer = m_scoreFile->GetPreviousPlayer(); - if ((prevPlayer.Length() > 0) && (list->FindString(prevPlayer) != -1)) - { - list->SetStringSelection(prevPlayer); - m_textField->SetValue(prevPlayer); - } - - m_textField->SetFocus(); - - Layout(); - - CentreOnParent(); -} + wxStaticText* msg = new wxStaticText(this, wxID_ANY, _T("Please select a name or type a new one:")); -PlayerSelectionDialog::~PlayerSelectionDialog() -{ + wxListBox* list = new wxListBox( + this, ID_LISTBOX, + wxDefaultPosition, wxDefaultSize, + 0, 0, + wxLB_SINGLE + ); + + wxArrayString players; + m_scoreFile->GetPlayerList(players); + for (unsigned int i = 0; i < players.Count(); i++) + { + list->Append(players[i]); + } + + m_textField = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize); + + m_OK = new wxButton(this, wxID_OK); + m_cancel = new wxButton(this, wxID_CANCEL); + + wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL ); + button_sizer->Add( m_OK, 0, wxALL, 10 ); + button_sizer->Add( m_cancel, 0, wxALL, 10 ); + + wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); + topsizer->Add( msg, 0, wxALL , 10 ); + topsizer->Add( list, 1, wxEXPAND | wxLEFT | wxRIGHT, 10 ); + topsizer->Add( m_textField, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, 10 ); + topsizer->Add( button_sizer, 0, wxALIGN_LEFT ); + + SetSizer( topsizer ); + + topsizer->SetSizeHints( this ); + + CentreOnParent(); } void PlayerSelectionDialog::OnSize(wxSizeEvent& WXUNUSED(event)) { - Layout(); + Layout(); } const wxString& PlayerSelectionDialog::GetPlayersName() { /* - m_player = ""; - Show(TRUE); + m_player = wxEmptyString; + Show(true); */ - return m_player; + return m_player; } void PlayerSelectionDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { - m_player = _T(""); + m_player = wxEmptyString; EndModal(wxID_CANCEL); } void PlayerSelectionDialog::SelectCallback(wxCommandEvent& event) { - if (event.GetEventType() == wxEVT_COMMAND_LISTBOX_SELECTED) - { -// if (event.IsSelection()) - m_textField->SetValue(event.GetString()); - } + if (event.GetEventType() == wxEVT_COMMAND_LISTBOX_SELECTED) + { +// if (event.IsSelection()) + m_textField->SetValue(event.GetString()); + } } void PlayerSelectionDialog::ButtonCallback(wxCommandEvent& event) { - if (event.GetId() == wxID_OK) - { - wxString name = m_textField->GetValue(); - if (!name.IsNull() && name.Length() > 0) - { - if (name.Contains(_T('@'))) - { - wxMessageBox(_T("Names should not contain the '@' character"), _T("Forty Thieves")); - } - else - { - m_player = name; - EndModal(wxID_OK); - } - } - else - { - wxMessageBox(_T("Please enter your name"), _T("Forty Thieves")); - } - } - else - { - m_player = _T(""); - EndModal(wxID_CANCEL); - } + if (event.GetId() == wxID_OK) + { + wxString name = m_textField->GetValue(); + if (!name.IsNull() && name.Length() > 0) + { + if (name.Contains(_T('@'))) + { + wxMessageBox(_T("Names should not contain the '@' character"), _T("Forty Thieves")); + } + else + { + m_player = name; + EndModal(wxID_OK); + } + } + else + { + wxMessageBox(_T("Please enter your name"), _T("Forty Thieves")); + } + } + else + { + m_player = wxEmptyString; + EndModal(wxID_CANCEL); + } }