AddBotDialog::AddBotDialog( wxWindow* parent, IBattle& battle , bool singleplayer) : wxDialog( parent, wxID_ANY, _("Add bot"), wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER | wxDEFAULT_DIALOG_STYLE ), WindowAttributesPickle( _T("ADDBOTDIALOG"), this, wxSize(-1, 255) ), m_battle( battle ), m_sp(singleplayer) { //this->SetSizeHints( wxDefaultSize, wxDefaultSize ); m_main_sizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* m_nick_sizer; m_nick_sizer = new wxBoxSizer( wxHORIZONTAL ); m_nick_lbl = new wxStaticText( this, wxID_ANY, _("Nickname:"), wxDefaultPosition, wxDefaultSize, 0 ); m_nick_sizer->Add( m_nick_lbl, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); int bot = m_battle.GetNumBots()+1; m_nick = new wxTextCtrl( this, wxID_ANY, wxString::Format( _T("Bot%d"), bot ), wxDefaultPosition, wxDefaultSize, 0 ); m_nick_sizer->Add( m_nick, 2, wxALL, 5 ); m_main_sizer->Add( m_nick_sizer, 0, wxEXPAND, 5 ); wxBoxSizer* m_ai_sizer; m_ai_sizer = new wxBoxSizer( wxHORIZONTAL ); m_ai_lbl = new wxStaticText( this, wxID_ANY, _("AI:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ai_sizer->Add( m_ai_lbl, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); m_ai = new wxChoice( this, ADDBOT_AI ); m_ai->SetToolTip( TE(_("Choose the AI library to use with this bot.") ) ); m_ai_sizer->Add( m_ai, 2, wxALL, 5 ); m_main_sizer->Add( m_ai_sizer, 0, wxEXPAND, 5 ); if ( usync().VersionSupports( IUnitSync::USYNC_GetSkirmishAI ) ) { m_ai_infos_lst = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER | wxLC_REPORT | wxLC_SINGLE_SEL | wxLC_NO_HEADER ); wxListItem col; col.SetText( _("property") ); col.SetImage( -1 ); m_ai_infos_lst->InsertColumn( 0, col ); wxListItem col2; col2.SetText( _("value") ); col2.SetImage( -1 ); m_ai_infos_lst->InsertColumn( 1, col2 ); m_opts_list = new wxListCtrl( this, ADDBOT_OPTIONLIST, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER | wxLC_REPORT | wxLC_SINGLE_SEL | wxLC_NO_HEADER ); wxListItem col3; col3.SetText( _("property") ); col3.SetImage( -1 ); m_opts_list->InsertColumn( 0, col3 ); wxListItem col4; col4.SetText( _("value") ); col4.SetImage( -1 ); m_opts_list->InsertColumn( 1, col4 ); m_info_sizer = new wxBoxSizer(wxVERTICAL); m_info_sizer->Add( m_ai_infos_lst, 1, wxALL|wxEXPAND ); m_info_sizer->Add( m_opts_list, 1, wxALL|wxEXPAND ); m_main_sizer->Add( m_info_sizer, 1, wxALL|wxEXPAND ); } else { m_main_sizer->AddStretchSpacer(); } m_buttons_sep = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_main_sizer->Add( m_buttons_sep, 0, wxALL|wxEXPAND ); wxBoxSizer* m_buttons_sizer; m_buttons_sizer = new wxBoxSizer( wxHORIZONTAL ); m_cancel_btn = new wxButton( this, ADDBOT_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(-1,CONTROL_HEIGHT), 0 ); m_buttons_sizer->Add( m_cancel_btn, 0, wxALL ); m_buttons_sizer->Add( 0, 0, 1, wxEXPAND ); m_add_btn = new wxButton( this, ADDBOT_ADD, _("Add Bot"), wxDefaultPosition, wxSize(-1,CONTROL_HEIGHT), 0 ); m_buttons_sizer->Add( m_add_btn, 0, wxALL ); m_main_sizer->Add( m_buttons_sizer, 0, wxEXPAND ); this->SetSizer( m_main_sizer ); this->Layout(); ReloadAIList(); }
AddBotDialog::AddBotDialog(wxWindow* parent, IBattle& battle, bool singleplayer) : wxDialog(parent, wxID_ANY, _("Add bot"), wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER | wxDEFAULT_DIALOG_STYLE) , WindowAttributesPickle(_T("ADDBOTDIALOG"), this, wxSize(-1, 255)) , m_battle(battle) , m_sp(singleplayer) { //this->SetSizeHints( wxDefaultSize, wxDefaultSize ); if (battle.GetNumBots() >= 2) SetTitle(_("Add bot: high nimber of bots can cause performance problems")); m_main_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_nick_sizer; m_nick_sizer = new wxBoxSizer(wxHORIZONTAL); m_nick_lbl = new wxStaticText(this, wxID_ANY, _("Nickname:"), wxDefaultPosition, wxDefaultSize, 0); m_nick_sizer->Add(m_nick_lbl, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5); int bot = 1; wxString botname = wxString::Format(_T("Bot%d"), bot); while (m_battle.UserExists(STD_STRING(botname))) { bot++; botname = wxString::Format(_T("Bot%d"), bot); } m_nick = new wxTextCtrl(this, wxID_ANY, botname, wxDefaultPosition, wxDefaultSize, 0); m_nick_sizer->Add(m_nick, 2, wxALL, 5); m_main_sizer->Add(m_nick_sizer, 0, wxEXPAND, 5); wxBoxSizer* m_ai_sizer; m_ai_sizer = new wxBoxSizer(wxHORIZONTAL); m_ai_lbl = new wxStaticText(this, wxID_ANY, _("AI:"), wxDefaultPosition, wxDefaultSize, 0); m_ai_sizer->Add(m_ai_lbl, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_ai = new wxChoice(this, ADDBOT_AI); m_ai->SetToolTip(_("Choose the AI library to use with this bot.")); m_ai_sizer->Add(m_ai, 2, wxALL, 5); m_main_sizer->Add(m_ai_sizer, 0, wxEXPAND, 5); m_ai_infos_lst = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER | wxLC_REPORT | wxLC_SINGLE_SEL | wxLC_NO_HEADER); wxListItem col; col.SetText(_("property")); col.SetImage(-1); m_ai_infos_lst->InsertColumn(0, col); wxListItem col2; col2.SetText(_("value")); col2.SetImage(-1); m_ai_infos_lst->InsertColumn(1, col2); m_opts_list = new wxListCtrl(this, ADDBOT_OPTIONLIST, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER | wxLC_REPORT | wxLC_SINGLE_SEL | wxLC_NO_HEADER); wxListItem col3; col3.SetText(_("property")); col3.SetImage(-1); m_opts_list->InsertColumn(0, col3); wxListItem col4; col4.SetText(_("value")); col4.SetImage(-1); m_opts_list->InsertColumn(1, col4); m_info_sizer = new wxBoxSizer(wxVERTICAL); m_info_sizer->Add(m_ai_infos_lst, 1, wxALL | wxEXPAND); m_info_sizer->Add(m_opts_list, 1, wxALL | wxEXPAND); m_main_sizer->Add(m_info_sizer, 1, wxALL | wxEXPAND); m_buttons_sep = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); m_main_sizer->Add(m_buttons_sep, 0, wxALL | wxEXPAND); wxBoxSizer* m_buttons_sizer; m_buttons_sizer = new wxBoxSizer(wxHORIZONTAL); m_cancel_btn = new wxButton(this, ADDBOT_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT), 0); m_buttons_sizer->Add(m_cancel_btn, 0, wxALL); m_buttons_sizer->Add(0, 0, 1, wxEXPAND); m_add_btn = new wxButton(this, ADDBOT_ADD, _("Add Bot"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT), 0); m_buttons_sizer->Add(m_add_btn, 0, wxALL); m_main_sizer->Add(m_buttons_sizer, 0, wxEXPAND); ReloadAIList(); SetSizer(m_main_sizer); Fit(); m_add_btn->SetFocus(); }