DownloadDataViewCtrl::DownloadDataViewCtrl(const wxString dataViewName, wxWindow* parent) : BaseDataViewCtrl(dataViewName, parent, DOWNLOAD_DATAVIEW_ID) { DownloadDataViewModel* model = new DownloadDataViewModel(); AssociateModel(model); const int DEFAULT_WIDTH = wxCOL_WIDTH_AUTOSIZE; AppendTextColumn(_("Name"), NAME, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); AppendTextColumn(_("Status"), STATUS, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); AppendTextColumn(_("% complete"), P_COMPLETE, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); AppendTextColumn(_("KB/s down"), SPEED, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); AppendTextColumn(_("ETA"), ETA, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); AppendTextColumn(_("Filesize (MB)"), FILESIZE, wxDATAVIEW_CELL_INERT, DEFAULT_WIDTH, wxALIGN_CENTER, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE); LoadColumnProperties(); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnDownloadStarted, DownloadDataViewCtrl::OnDownloadStarted); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnDownloadProgress, DownloadDataViewCtrl::OnDownloadProgress); }
void ChatPanel::Init(const wxString& panelname) { m_chatpanelname = panelname; //Clear some controls pointer that can be used in ReadSettings m_say_text = nullptr; m_chatlog_text = nullptr; //Read settings ReadSettings(); CreateControls(); SetLogFile(panelname); GetAui().manager->AddPane(this, wxLEFT, _T("chatpanel-channel-") + panelname); m_chatlog_text->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(ChatPanel::OnMouseDown), 0, this); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnLogin, ChatPanel::OnLogin); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::ApplicationSettingsChangedEvent, ChatPanel::OnSettingsChanged); }
PlaybackTab::PlaybackTab(wxWindow* parent, bool replay) : wxPanel(parent, -1) , m_replay_loader(0) , m_isreplay(replay) { wxLogMessage(_T( "PlaybackTab::PlaybackTab()" )); wxBoxSizer* m_main_sizer; m_main_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_filter_sizer; m_filter_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_replaylist_sizer; m_replaylist_sizer = new wxBoxSizer(wxVERTICAL); m_replay_dataview = new PlaybackDataView("replays_dataview", this); m_replaylist_sizer->Add(m_replay_dataview, 1, wxEXPAND); m_main_sizer->Add(m_replaylist_sizer, 1, wxEXPAND); ; wxBoxSizer* m_info_sizer; m_info_sizer = new wxBoxSizer(wxHORIZONTAL); m_minimap = new MapCtrl(this, 100, 0, true, false, false); m_info_sizer->Add(m_minimap, 0, wxALL, 5); wxFlexGridSizer* m_data_sizer; m_data_sizer = new wxFlexGridSizer(4, 2, 0, 0); m_map_lbl = new wxStaticText(this, wxID_ANY, _("Map:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_map_lbl, 1, wxALL | wxEXPAND, 5); m_map_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_map_text, 1, wxALL | wxEXPAND, 5); m_mod_lbl = new wxStaticText(this, wxID_ANY, _("Game:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_mod_lbl, 1, wxALL | wxEXPAND, 5); m_mod_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_mod_text, 1, wxALL | wxEXPAND, 5); m_players_lbl = new wxStaticText(this, wxID_ANY, _("Players:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_players_lbl, 1, wxALL | wxEXPAND, 5); m_players_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_players_text, 1, wxALL | wxEXPAND, 5); m_info_sizer->Add(m_data_sizer, 1, wxEXPAND | wxALL, 0); m_players = new BattleroomDataViewCtrl("playback_battleroom_view", this, nullptr /*battle*/, true /*readonly*/, false /*show ingname status*/); m_info_sizer->Add(m_players, 2, wxALL | wxEXPAND, 0); m_main_sizer->Add(m_info_sizer, 0, wxEXPAND, 5); m_filter = new PlaybackListFilter(this, wxID_ANY, this, wxDefaultPosition, wxSize(-1, -1), wxEXPAND); m_filter_sizer->Add(m_filter, 0, wxEXPAND, 5); m_main_sizer->Add(m_filter_sizer, 0, wxEXPAND, 5); m_buttons_sep = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); m_main_sizer->Add(m_buttons_sep, 0, wxALL | wxEXPAND, 5); wxBoxSizer* m_buttons_sizer; m_buttons_sizer = new wxBoxSizer(wxHORIZONTAL); #if wxUSE_TOGGLEBTN m_filter_show = new wxToggleButton(this, PLAYBACK_LIST_FILTER_BUTTON, _(" Filter "), wxDefaultPosition, wxSize(-1, 28), 0); #else m_filter_show = new wxCheckBox(this, PLAYBACK_LIST_FILTER_BUTTON, _(" Filter "), wxDefaultPosition, wxSize(-1, 28), 0); #endif m_buttons_sizer->Add(m_filter_show, 0, 0, 5); m_filter_activ = new wxCheckBox(this, PLAYBACK_LIST_FILTER_ACTIV, _("Activated"), wxDefaultPosition, wxDefaultSize, 0); m_buttons_sizer->Add(m_filter_activ, 1, wxALL | wxEXPAND, 5); m_buttons_sizer->Add(0, 0, 1, wxEXPAND, 0); m_watch_btn = new wxButton(this, PLAYBACK_WATCH, replay ? _("Watch") : _("Load"), wxDefaultPosition, wxSize(-1, 28), 0); m_buttons_sizer->Add(m_watch_btn, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5); m_delete_btn = new wxButton(this, PLAYBACK_DELETE, _("Delete"), wxDefaultPosition, wxSize(-1, 28), 0); m_buttons_sizer->Add(m_delete_btn, 0, wxBOTTOM | wxRIGHT, 5); m_reload_btn = new wxButton(this, PLAYBACK_RELOAD, _("Reload list"), wxDefaultPosition, wxSize(-1, 28), 0); m_buttons_sizer->Add(m_reload_btn, 0, wxBOTTOM | wxRIGHT, 5); m_main_sizer->Add(m_buttons_sizer, 0, wxEXPAND, 5); m_filter->Hide(); SetSizer(m_main_sizer); //none selected --> shouldn't watch/delete that Deselect(); Layout(); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnUnitsyncReloaded, PlaybackTab::OnUnitsyncReloaded); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnSpringTerminated, PlaybackTab::OnSpringTerminated); }
BattleMapTab::BattleMapTab(wxWindow* parent, IBattle* battle) : wxPanel(parent, -1) , m_battle(battle) { GetAui().manager->AddPane(this, wxLEFT, _T( "battlemaptab" )); wxBoxSizer* m_main_sizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* m_map_sizer = new wxBoxSizer(wxVERTICAL); m_map_sizer->SetMinSize(wxSize(352, -1)); m_minimap = new MapCtrl(this, 352, m_battle, true, true, false); m_minimap->SetMinSize(wxSize(352, 352)); m_map_sizer->Add(m_minimap, 1, wxALL | wxEXPAND, 2); wxBoxSizer* m_selmap_sizer = new wxBoxSizer(wxHORIZONTAL); m_map_combo = new wxChoice(this, BMAP_MAP_SEL, wxDefaultPosition, wxDefaultSize); m_selmap_sizer->Add(m_map_combo, 1, wxALL, 2); m_browse_btn = new wxButton(this, BMAP_MAP_BROWSE, _("Select"), wxDefaultPosition, wxDefaultSize, 0); m_selmap_sizer->Add(m_browse_btn, 0, wxALL, 2); m_map_sizer->Add(m_selmap_sizer, 0, wxEXPAND, 5); m_main_sizer->Add(m_map_sizer, 1, wxEXPAND, 5); wxBoxSizer* m_opts_sizer = new wxBoxSizer(wxVERTICAL); //m_opts_sizer->SetMinSize(wxSize( 200,-1 )); m_map_opts_list = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(150, 160), wxLC_NO_HEADER | wxLC_REPORT); m_map_opts_list->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); m_map_opts_list->SetFont(wxFont(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_LIGHT)); wxListItem col; col.SetText(_("Option")); m_map_opts_list->InsertColumn(0, col); col.SetText(_("Value")); m_map_opts_list->InsertColumn(1, col); m_map_opts_list->SetColumnWidth(0, 90); m_map_opts_list->SetColumnWidth(1, 50); m_map_opts_list->InsertItem(0, _("Size")); m_map_opts_list->InsertItem(1, _("Windspeed")); m_map_opts_list->InsertItem(2, _("Tidal strength")); m_map_opts_list->InsertItem(3, _("Gravity")); m_map_opts_list->InsertItem(4, _("Extractor radius")); m_map_opts_list->InsertItem(5, _("Max metal")); m_opts_sizer->Add(m_map_opts_list, 0, wxALL, 2); wxString m_start_radiosChoices[] = {_("Fixed"), _("Random"), _("Choose in game"), _("Chose before game")}; int m_start_radiosNChoices = sizeof(m_start_radiosChoices) / sizeof(wxString); //TODO these need to be tooltipped, no idea how yet m_start_radios = new wxRadioBox(this, BMAP_START_TYPE, _("Startpositions"), wxDefaultPosition, wxSize(150, -1), m_start_radiosNChoices, m_start_radiosChoices, 1, wxRA_SPECIFY_COLS); m_opts_sizer->Add(m_start_radios, 0, wxALL, 2); m_map_desc = new wxStaticText(this, -1, wxEmptyString); m_map_desc->Wrap(160); m_opts_sizer->Add(m_map_desc, 0, wxALL, 2); m_main_sizer->Add(m_opts_sizer, 0, wxEXPAND, 5); //m_main_sizer->AddStretchSpacer(); SetSizer(m_main_sizer); SetBattle(battle); Layout(); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnUnitsyncReloaded, BattleMapTab::OnUnitsyncReloaded); }
MapSelectDialog::MapSelectDialog(wxWindow* parent) : wxDialog(parent, wxID_ANY, _("Select map (click and drag to scroll)"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX, _T("MapSelector")) , WindowAttributesPickle(_T("MapSelector"), this, wxSize(880, 600)) , m_horizontal_direction(sett().GetHorizontalSortorder()) , m_vertical_direction(sett().GetVerticalSortorder()) { m_main_sizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* BoxSizer2 = new wxBoxSizer(wxVERTICAL); wxStaticText* StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Vertical sort key"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); BoxSizer2->Add(StaticText2, 0, wxALL | wxALIGN_LEFT, 5); wxBoxSizer* boxSizerVertical = new wxBoxSizer(wxHORIZONTAL); m_vertical_choice = new wxChoice(this, ID_VERTICAL_CHOICE, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_VERTICAL_CHOICE")); boxSizerVertical->Add(m_vertical_choice, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); BoxSizer2->Add(boxSizerVertical, 0, wxALL | wxEXPAND, 0); wxStaticText* StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Horizontal sort key"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); BoxSizer2->Add(StaticText1, 0, wxALL | wxALIGN_LEFT, 5); wxBoxSizer* boxSizerHorizontal = new wxBoxSizer(wxHORIZONTAL); m_horizontal_choice = new wxChoice(this, ID_HORIZONTAL_CHOICE, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_HORIZONTAL_CHOICE")); boxSizerHorizontal->Add(m_horizontal_choice, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); BoxSizer2->Add(boxSizerHorizontal, 0, wxALL | wxEXPAND, 0); wxStaticBoxSizer* StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Filter")); m_filter_text = new wxTextCtrl(this, ID_FILTER_TEXT, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_FILTER_TEXT")); m_filter_text->SetToolTip(_("Shows only maps which contain this text in their name or description.")); StaticBoxSizer2->Add(m_filter_text, 1, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 0); BoxSizer2->Add(StaticBoxSizer2, 0, wxALL | wxEXPAND, 5); m_map_details = new wxStaticBoxSizer(wxVERTICAL, this, _("Map details")); m_map_name = new wxStaticText(this, ID_MAP_NAME, wxEmptyString, wxDefaultPosition, wxSize(170, 90), wxST_NO_AUTORESIZE, _T("ID_MAP_NAME")); m_map_name->SetLabel(wxEmptyString); m_map_details->Add(m_map_name, 0, wxTOP | wxLEFT | wxRIGHT | wxEXPAND, 5); m_map_opts_list = new wxListCtrl(this, ID_MAP_OPTS_LIST, wxDefaultPosition, wxSize(170, 120), wxLC_REPORT | wxLC_NO_HEADER | wxNO_BORDER, wxDefaultValidator, _T("ID_MAP_OPTS_LIST")); m_map_details->Add(m_map_opts_list, 1, wxBOTTOM | wxLEFT | wxRIGHT | wxEXPAND, 5); BoxSizer2->Add(m_map_details, 1, wxALL | wxEXPAND, 5); wxStdDialogButtonSizer* StdDialogButtonSizer1 = new wxStdDialogButtonSizer(); StdDialogButtonSizer1->AddButton(new wxButton(this, wxID_OK, wxEmptyString)); StdDialogButtonSizer1->AddButton(new wxButton(this, wxID_CANCEL, wxEmptyString)); StdDialogButtonSizer1->Realize(); BoxSizer2->Add(StdDialogButtonSizer1, 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); m_main_sizer->Add(BoxSizer2, 0, wxALL | wxEXPAND, 5); m_mapgrid = new MapGridCtrl(this, wxSize(600, 400), ID_MAPGRID); m_main_sizer->Add(m_mapgrid, 1, wxALL | wxEXPAND, 5); SetSizer(m_main_sizer); m_main_sizer->Fit(this); m_main_sizer->SetSizeHints(this); Center(); m_vertical_direction_button = new wxButton(this, ID_VERTICAL_DIRECTION, _T("ᴧ"), wxDefaultPosition, wxSize(CONTROL_HEIGHT, CONTROL_HEIGHT), 0, wxDefaultValidator, _T("ID_VERTICAL_DIRECTION")); boxSizerVertical->Add(m_vertical_direction_button, 0, wxALL | wxEXPAND | wxSHAPED, 5); m_horizontal_direction_button = new wxButton(this, ID_HORIZONTAL_DIRECTION, _T("<"), wxDefaultPosition, wxSize(CONTROL_HEIGHT, CONTROL_HEIGHT), 0, wxDefaultValidator, _T("ID_HORIZONTAL_DIRECTION")); boxSizerHorizontal->Add(m_horizontal_direction_button, 0, wxALL | wxEXPAND | wxSHAPED, 5); // TODO: refactor, this is copied from battlemaptab.cpp m_map_opts_list->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); m_map_opts_list->SetFont(wxFont(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_LIGHT)); m_map_opts_list->InsertColumn(0, _("Option"), wxLIST_FORMAT_LEFT, 90); m_map_opts_list->InsertColumn(1, _("Value"), wxLIST_FORMAT_LEFT, 80); m_map_opts_list->InsertItem(0, _("Size")); m_map_opts_list->InsertItem(1, _("Windspeed")); m_map_opts_list->InsertItem(2, _("Tidal strength")); m_map_opts_list->InsertItem(3, _("Gravity")); m_map_opts_list->InsertItem(4, _("Extractor radius")); m_map_opts_list->InsertItem(5, _("Max metal")); m_map_opts_list->InsertItem(6, _("Start positions")); Layout(); Connect(ID_VERTICAL_CHOICE, wxEVT_COMMAND_CHOICE_SELECTED, (wxObjectEventFunction)&MapSelectDialog::OnSortKeySelect); Connect(ID_HORIZONTAL_CHOICE, wxEVT_COMMAND_CHOICE_SELECTED, (wxObjectEventFunction)&MapSelectDialog::OnSortKeySelect); Connect(ID_FILTER_TEXT, wxEVT_COMMAND_TEXT_UPDATED, (wxObjectEventFunction)&MapSelectDialog::OnFilterTextChanged); m_mapgrid->Connect(ID_MAPGRID, wxEVT_LEFT_DCLICK, (wxObjectEventFunction)&MapSelectDialog::OnMapGridLeftDClick, 0, this); Connect(wxID_ANY, wxEVT_INIT_DIALOG, (wxObjectEventFunction)&MapSelectDialog::OnInit); Connect(ID_MAPGRID, MapGridCtrl::MapSelectedEvt, (wxObjectEventFunction)&MapSelectDialog::OnMapSelected, 0, this); Connect(ID_MAPGRID, MapGridCtrl::LoadingCompletedEvt, (wxObjectEventFunction)&MapSelectDialog::OnMapLoadingCompleted, 0, this); Connect(ID_VERTICAL_DIRECTION, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&MapSelectDialog::OnVerticalDirectionClicked); Connect(ID_HORIZONTAL_DIRECTION, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&MapSelectDialog::OnHorizontalDirectionClicked); SUBSCRIBE_GLOBAL_EVENT(GlobalEventManager::OnUnitsyncReloaded, MapSelectDialog::OnUnitsyncReloaded); }