X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/82ea63e6e046652bc0799badd9d62f91c9918dbe..f321d0bc0caf4d78ccc5426e926fc25c46297439:/demos/forty/playerdg.cpp diff --git a/demos/forty/playerdg.cpp b/demos/forty/playerdg.cpp index 0f646e2e32..b1b1f71e07 100644 --- a/demos/forty/playerdg.cpp +++ b/demos/forty/playerdg.cpp @@ -6,16 +6,9 @@ // 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__ -#pragma implementation -#pragma interface -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -33,158 +26,114 @@ 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, "Player Selection", - wxDefaultPosition, wxSize(320, 200), - wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE), - m_scoreFile(file) + wxWindow* parent, + ScoreFile* file + ) : + wxDialog(parent, wxID_ANY, wxT("Player Selection"), wxDefaultPosition), + m_scoreFile(file) { - // enable constraints - SetAutoLayout (TRUE); - - wxStaticText* msg = new wxStaticText(this, -1, "Please select a name from the list"); - - 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, "", wxDefaultPosition, wxDefaultSize, 0); - - m_OK = new wxButton(this, wxID_OK, "OK"); - m_cancel = new wxButton(this, wxID_CANCEL, "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->SetStringSelection(prevPlayer); - m_textField->SetValue(prevPlayer); - } - - Layout(); - + wxStaticText* msg = new wxStaticText(this, wxID_ANY, wxT("Please select a name or type a new one:")); + + wxListBox* list = new wxListBox( + this, ID_LISTBOX, + wxDefaultPosition, wxSize(-1, 150), + 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(); -} -PlayerSelectionDialog::~PlayerSelectionDialog() -{ + m_OK->SetDefault(); } 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& event) +void PlayerSelectionDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { - m_player = ""; + 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('@')) - { - wxMessageBox("Names should not contain the '@' character", "Forty Thieves"); - } - else - { - m_player = name; - EndModal(wxID_OK); - } - } - else - { - wxMessageBox("Please enter your name", "Forty Thieves"); - } - } - else - { - m_player = ""; - EndModal(wxID_CANCEL); - } + if (event.GetId() == wxID_OK) + { + wxString name = m_textField->GetValue(); + if ( !name.empty() ) + { + if (name.Contains(wxT('@'))) + { + wxMessageBox(wxT("Names should not contain the '@' character"), wxT("Forty Thieves")); + } + else + { + m_player = name; + EndModal(wxID_OK); + } + } + else + { + wxMessageBox(wxT("Please enter your name"), wxT("Forty Thieves")); + } + } + else + { + m_player = wxEmptyString; + EndModal(wxID_CANCEL); + } }