bool DebuggerMenuHandler::RegisterWindowMenu(const wxString &name, const wxString &help, cbDebuggerWindowMenuItem *item) { for (WindowMenuItemsMap::iterator it = m_windowMenuItems.begin(); it != m_windowMenuItems.end(); ++it) { if (it->second.name == name) { wxString msg = wxString::Format(_("Duplicate debugger window name '%s'. Igrnoring it."), name.wx_str()); Manager::Get()->GetLogManager()->DebugLog(msg, Logger::error); delete item; return false; } } WindowMenuItem i; i.item = cb::shared_ptr<cbDebuggerWindowMenuItem>(item); i.name = name; i.help = help; long id = wxNewId(); m_windowMenuItems[id] = i; Connect(id, wxEVT_UPDATE_UI, wxObjectEventFunction(&DebuggerMenuHandler::OnWindowMenuItemUpdateUI)); Connect(id, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(DebuggerMenuHandler::OnWindowMenuItemClicked)); return true; }
ReconnectDialog::ReconnectDialog(): wxDialog( (wxFrame*)&ui().mw(), -1, _( "Reconnect Dialog" ), wxDefaultPosition, wxSize( 400, 150 ), wxRESIZE_BORDER | wxDEFAULT_DIALOG_STYLE ), WindowAttributesPickle( _T("reconnectdialog"), this, wxSize( 400, 150 ) ) { this->SetSizeHints( wxDefaultSize, wxDefaultSize ); SetSizeHints( wxDefaultSize, wxDefaultSize ); wxBoxSizer* m_main_sizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* m_buttons_sizer; m_buttons_sizer = new wxBoxSizer( wxHORIZONTAL ); wxButton* m_retry_btn = new wxButton( this, CONNECT_RECONNECT, _( "Try Reconnecting" ), wxDefaultPosition, wxDefaultSize, 0 ); m_retry_btn->SetToolTip( TE( _( "Tries to connect to the next server in the list." ) ) ); m_buttons_sizer->Add( m_retry_btn, 0, wxALL, 5 ); wxButton* m_next_btn = new wxButton( this, CONNECT_NEXT, _( "Try Next Server" ), wxDefaultPosition, wxDefaultSize, 0 ); m_next_btn->SetToolTip( TE( _( "Tries to connect to the next server in the list." ) ) ); m_buttons_sizer->Add( m_next_btn, 0, wxALL, 5 ); wxButton* m_cancel_btn = new wxButton( this, CONNECT_CANCEL, _( "Do nothing" ), wxDefaultPosition, wxDefaultSize, 0 ); m_buttons_sizer->Add( m_cancel_btn, 0, wxALL, 5 ); m_main_sizer->Add( CreateTextSizer( _( "Couldn't estabilish a connection with the server\nWhat would you like to do?" ) ), 1, wxALL | wxEXPAND | wxCENTER, 10 ); m_main_sizer->Add( m_buttons_sizer, 1, wxALL | wxEXPAND | wxCENTER, 10 ); SetSizer( m_main_sizer ); SetAutoLayout( true ); Raise(); m_next_btn->SetFocus(); ConnectGlobalEvent(this, GlobalEvent::OnQuit, wxObjectEventFunction(&ReconnectDialog::OnQuit)); }
bool MerryHotkeyWx::OnRegisterHotkey(int commandID, int modifiers, int keyCode) { if (!this->RegisterHotKey(commandID, modifiers, keyCode)) return false; this->Connect(commandID, wxEVT_HOTKEY, wxObjectEventFunction(&MerryHotkeyWx::OnTriggerKeyEvent)); return true; }
DlgConfig::~DlgConfig() { __DEBUG_BEGIN("") ////@begin DlgConfig destruction this->Disconnect(ID_CHECKLISTBOX,wxEVT_COMMAND_LISTBOX_SELECTED,wxObjectEventFunction(&DlgConfig::OnConfigCheck)); ////@end DlgConfig destruction __DEBUG_END("") }
Battle::Battle( IServer& serv, int id ) : m_serv(serv), m_ah(*this), m_autolock_on_start(false), m_id( id ) { ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&Battle::OnUnitsyncReloaded)); m_opts.battleid = m_id; }
SinglePlayerBattle::SinglePlayerBattle( MainSinglePlayerTab& msptab ): m_sptab(msptab), m_me( User(sett().GetDefaultNick())) { OnUserAdded( m_me ); m_me.BattleStatus().side = sett().GetBattleLastSideSel( GetHostModName() ); m_me.BattleStatus().colour = sett().GetBattleLastColour(); CustomBattleOptions().setSingleOption( "startpostype", LSL::Util::ToString(ST_Pick), LSL::OptionsWrapper::EngineOption ); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&SinglePlayerBattle::OnUnitsyncReloaded)); }
cmdListCtrl::cmdListCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos,const wxSize& size, long style): wxListCtrl(parent,id,pos,size,style) { this->InsertColumn(CMDLIST_COL_NAME,_T("快捷命令"),wxLIST_AUTOSIZE,150); this->InsertColumn(CMDLIST_COL_CMD,_T("命令行"),wxLIST_AUTOSIZE,250); this->InsertColumn(CMDLIST_COL_KEY,_T("热键/包含"),wxLIST_AUTOSIZE,100); this->InsertColumn(CMDLIST_COL_DESC,_T("备注/排除"),wxLIST_AUTOSIZE,100); this->InsertColumn(CMDLIST_COL_ID,_T("ID"),0,30); this->InsertColumn(CMDLIST_COL_WORKDIR,_T("工作目录"),0,0); this->ReLoadCmds(); // this->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED,wxObjectEventFunction(&cmdListCtrl::OnSelected)); // this->Connect(wxEVT_COMMAND_LIST_COL_CLICK,wxObjectEventFunction(&cmdListCtrl::OnColClick)); this->Connect(wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK,wxObjectEventFunction(&cmdListCtrl::onRightClick)); this->Connect(wxEVT_LIST_KEY_DOWN,wxObjectEventFunction(&cmdListCtrl::onKeyDown)); #ifndef _DISABLE_DND_ this->SetDropTarget(new DnDialogFile(this)); #endif // this->Connect(wxEVT_COMMAND_LIST_DELETE_ITEM,wxObjectEventFunction(&cmdListCtrl::onDelete)); }
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); GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::OnLogin, wxObjectEventFunction(&ChatPanel::OnLogin)); GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::ApplicationSettingsChangedEvent, wxObjectEventFunction(&ChatPanel::OnSettingsChanged)); }
SinglePlayerTab::SinglePlayerTab(wxWindow* parent, MainSinglePlayerTab& msptab): wxScrolledWindow( parent, -1 ), m_battle(msptab) { GetAui().manager->AddPane( this, wxLEFT, _T("singleplayertab") ); wxBoxSizer* m_main_sizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* m_mapabour_sizer = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* m_map_sizer = new wxBoxSizer( wxHORIZONTAL ); // m_map_sizer->SetMinSize( wxSize( 352, -1 ) ); m_minimap = new MapCtrl( this, 100, &m_battle, false, false, true, true ); m_minimap->SetToolTip( TE(_("You can drag the sun/bot icon around to define start position.\n " "Hover over the icon for a popup that lets you change side, ally and bonus." )) ); m_map_sizer->Add( m_minimap, 1, wxALL | wxEXPAND, 2 ); m_mapabour_sizer->Add(m_map_sizer, 1, wxEXPAND, 2 ); //map description and parametrs like in battletab wxBoxSizer* m_opts_sizer = new wxBoxSizer( wxVERTICAL ); 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 ); m_map_desc = new wxStaticText(this,-1,wxEmptyString); m_map_desc->Wrap(160); m_opts_sizer->Add( m_map_desc, 0, wxALL, 2 ); m_mapabour_sizer->Add( m_opts_sizer, 0, wxALL | wxEXPAND, 2 ); m_main_sizer->Add( m_mapabour_sizer, 1, wxEXPAND, 5 ); wxBoxSizer* m_ctrl_sizer = new wxBoxSizer( wxHORIZONTAL ); m_map_lbl = new wxStaticText( this, -1, _("Map:") ); m_ctrl_sizer->Add( m_map_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); m_map_pick = new wxChoice( this, SP_MAP_PICK ); m_ctrl_sizer->Add( m_map_pick, 1, wxALL, 5 ); m_select_btn = new wxButton( this, SP_BROWSE_MAP, _T("..."), wxDefaultPosition, wxSize(CONTROL_HEIGHT, CONTROL_HEIGHT), wxBU_EXACTFIT ); m_ctrl_sizer->Add( m_select_btn, 0, wxBOTTOM|wxRIGHT|wxTOP, 5 ); m_mod_lbl = new wxStaticText( this, -1, _("Game:") ); m_ctrl_sizer->Add( m_mod_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); m_mod_pick = new wxChoice( this, SP_MOD_PICK ); m_ctrl_sizer->Add( m_mod_pick, 1, wxALL, 5 ); // m_ctrl_sizer->Add( 0, 0, 1, wxEXPAND, 0 ); m_addbot_btn = new wxButton( this, SP_ADD_BOT, _("Add bot..."), wxDefaultPosition, wxSize(80, CONTROL_HEIGHT), 0 ); m_ctrl_sizer->Add( m_addbot_btn, 0, wxALL, 5 ); m_main_sizer->Add( m_ctrl_sizer, 0, wxEXPAND, 5 ); m_buttons_sep = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_main_sizer->Add( m_buttons_sep, 0, wxLEFT|wxRIGHT|wxEXPAND, 5 ); wxBoxSizer* m_buttons_sizer = new wxBoxSizer( wxHORIZONTAL ); // see http://projects.springlobby.info/issues/show/649 // m_reset_btn = new wxButton( this, SP_RESET, _("Reset"), wxDefaultPosition, wxSize(80, CONTROL_HEIGHT), 0 ); // m_buttons_sizer->Add( m_reset_btn, 0, wxALL, 5 ); m_buttons_sizer->Add( 0, 0, 1, wxEXPAND, 0 ); m_color_btn = new ColorButton( this, SP_COLOUR, sett().GetBattleLastColour(), wxDefaultPosition, wxSize(30, CONTROL_HEIGHT) ); m_buttons_sizer->Add( m_color_btn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0 ); m_spectator_check = new wxCheckBox( this, SP_SPECTATE, _("Spectate only") ); m_buttons_sizer->Add( m_spectator_check, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_random_check = new wxCheckBox( this, SP_RANDOM, _("Random start positions") ); m_buttons_sizer->Add( m_random_check, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_start_btn = new wxButton( this, SP_START, _("Start"), wxDefaultPosition, wxSize(80, CONTROL_HEIGHT), 0 ); m_buttons_sizer->Add( m_start_btn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_main_sizer->Add( m_buttons_sizer, 0, wxEXPAND, 5 ); SetScrollRate( SCROLL_RATE, SCROLL_RATE ); this->SetSizer( m_main_sizer ); this->Layout(); ReloadMaplist(); ReloadModlist(); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&SinglePlayerTab::OnUnitsyncReloaded)); }
void DataViewCtrlHeaderMenu::ConnectEvents() { Connect(HIDE_COLUMN_ID, wxEVT_COMMAND_MENU_SELECTED, wxObjectEventFunction(&DataViewCtrlHeaderMenu::OnHideColumn)); Connect(SHOW_ALL_COLUMNS_ID, wxEVT_COMMAND_MENU_SELECTED, wxObjectEventFunction(&DataViewCtrlHeaderMenu::OnShowColumns)); }
SeqTrack::SeqTrack(long index, wxWindow *winParent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, trackType type = eAudioTrack, WiredDocument* docParent = NULL) : wxControl(winParent, -1, pos, size), WiredDocument(wxT("SeqTrack"), docParent) { wxString str; Index = index; ChanGui = NULL; Connected = 0x0; ConnectedRackTrack = 0x0; Type = type; DeviceId = -1; Record = false; Mute = false; VuValue = 0; SetBackgroundColour(CL_RULER_BACKGROUND); // only impact on GTK+ implementation (see wx Doc) wxWindow::SetBackgroundStyle(wxBG_STYLE_CUSTOM); // name of track switch (Type) { case eAudioTrack: str.Printf(_("Audio %d"), ++AudioTrackCount); break; case eMidiTrack: str.Printf(wxT("MIDI %d"), ++MidiTrackCount); break; default: str.Printf(wxT("Unknown %d"), ++MidiTrackCount); break; } Text = new wxTextCtrl(this, SeqTrack_OnNameChange, str, wxPoint(6, 8), wxSize(TRACK_WIDTH - 68, 18), wxTE_PROCESS_ENTER); Text->SetFont(wxFont(8, wxDEFAULT, wxNORMAL, wxNORMAL)); // add pixmap to see what sort of track it is (audio or midi). wxImage* trackTypeImage; // Move into previous switch !? switch (Type) { case eAudioTrack: trackTypeImage = new wxImage(wxString(WiredSettings->DataDir + _("ihm/seqtrack/tracktype-wave.png")), wxBITMAP_TYPE_PNG); break; case eMidiTrack: trackTypeImage = new wxImage(wxString(WiredSettings->DataDir + _("ihm/seqtrack/tracktype-midi.png")), wxBITMAP_TYPE_PNG); break; default: trackTypeImage = NULL; break; } if(trackTypeImage) { wxBitmap* trackTypeBitmap = new wxBitmap(*trackTypeImage); delete trackTypeImage; trackTypeStatic = new wxStaticBitmap(this, -1, *trackTypeBitmap, wxPoint(62, 8)); } else trackTypeStatic = NULL; // record and mute button wxImage *rec_up = new wxImage(wxString(WiredSettings->DataDir + wxString(REC_UP)), wxBITMAP_TYPE_PNG); wxImage *rec_down = new wxImage(wxString(WiredSettings->DataDir + wxString(REC_DOWN)), wxBITMAP_TYPE_PNG); wxImage *mute_up = new wxImage(wxString(WiredSettings->DataDir + wxString(MUTE_UP)), wxBITMAP_TYPE_PNG); wxImage *mute_down = new wxImage(wxString(WiredSettings->DataDir + wxString(MUTE_DOWN)), wxBITMAP_TYPE_PNG); RecBtn = new DownButton(this, SeqTrack_Record, wxPoint(6, 30), wxSize(25, 16), rec_up, rec_down); MuteBtn = new DownButton(this, SeqTrack_Mute, wxPoint(34, 30), wxSize(25, 16), mute_up, mute_down); Image = new ChoiceButton(this, SeqTrack_ConnectTo, wxPoint(62, 30), wxSize(25, 16), wxT("")); // add pixmap for unassigned track and for "can assign track" wxImage* assign; assign = new wxImage(wxString(WiredSettings->DataDir + UNASSIGNED), wxBITMAP_TYPE_PNG); UnassignedBmp = new wxBitmap(*assign); assign = new wxImage(wxString(WiredSettings->DataDir + CAN_ASSIGN), wxBITMAP_TYPE_PNG); CanAssignBmp = new wxBitmap(*assign); delete assign; Image->Connect(SeqTrack_ConnectTo, wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction) (wxMouseEventFunction)&SeqTrack::OnConnectToHelp); Image->SetImage(UnassignedBmp); Image->Refresh(); // device input list DeviceBox = new wxChoice(this, SeqTrack_DeviceChoice, wxPoint(5, 50), wxSize(TRACK_WIDTH - 38, 22), 0, 0x0); DeviceBox->SetFont(wxFont(8, wxDEFAULT, wxNORMAL, wxNORMAL)); FillChoices(); DeviceBox->SetSelection(0); DeviceBox->Connect(SeqTrack_DeviceChoice, wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction) (wxMouseEventFunction)&SeqTrack::OnDeviceHelp); // VU meter wxImage *green = new wxImage(wxString(WiredSettings->DataDir + wxString(VUM_GREEN)), wxBITMAP_TYPE_PNG); wxImage *orange = new wxImage(wxString(WiredSettings->DataDir + wxString(VUM_ORANGE)), wxBITMAP_TYPE_PNG); wxImage *red = new wxImage(wxString(WiredSettings->DataDir + wxString(VUM_RED)), wxBITMAP_TYPE_PNG); Vu = new VUMCtrl(this, -1, 100, green, orange, red,wxPoint(TRACK_WIDTH - 28, 8), wxSize(16, 64)); Vu->SetValue(0); // connection menu menu = new wxMenu(); RebuildConnectList(); // track selection Selected = false; // we overwrite LEFT_DOWN event of these class, but we propagate it on each // parent, recursivly (until any catch has not .Skip() call). if(trackTypeStatic) trackTypeStatic->Connect(wxEVT_LEFT_DOWN, wxObjectEventFunction(&SeqTrack::PropagateEvent)); Vu->Connect(wxEVT_LEFT_DOWN, wxObjectEventFunction(&SeqTrack::PropagateEvent)); // }
DebugLogPanel(wxWindow *parent, DebugTextCtrlLogger *text_control_logger, bool debug_log) : wxPanel(parent), m_text_control_logger(text_control_logger), m_debug_log(debug_log) { int idDebug_LogEntryControl = wxNewId(); int idDebug_ExecuteButton = wxNewId(); int idDebug_ClearButton = wxNewId(); int idDebug_LoadButton = wxNewId(); wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *control_sizer = new wxBoxSizer(wxHORIZONTAL); wxWindow *text_control = text_control_logger->CreateTextCtrl(this); sizer->Add(text_control, wxEXPAND, wxEXPAND | wxALL , 0); sizer->Add(control_sizer, 0, wxEXPAND | wxALL, 0); wxStaticText *label = new wxStaticText(this, wxID_ANY, _T("Command:"), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE); m_command_entry = new wxComboBox(this, idDebug_LogEntryControl, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_DROPDOWN | wxTE_PROCESS_ENTER); wxBitmap execute_bitmap = wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_EXECUTABLE_FILE")), wxART_BUTTON); wxBitmap clear_bitmap = wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_DELETE")),wxART_BUTTON); wxBitmap file_open_bitmap =wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_FILE_OPEN")), wxART_BUTTON); wxBitmapButton *button_execute; button_execute = new wxBitmapButton(this, idDebug_ExecuteButton, execute_bitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW, wxDefaultValidator, _T("idDebug_ExecuteButton")); button_execute->SetToolTip(_("Execute current command")); wxBitmapButton *button_load = new wxBitmapButton(this, idDebug_LoadButton, file_open_bitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW, wxDefaultValidator, _T("idDebug_LoadButton")); button_load->SetDefault(); button_load->SetToolTip(_("Load from file")); wxBitmapButton *button_clear = new wxBitmapButton(this, idDebug_ClearButton, clear_bitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW, wxDefaultValidator, _T("idDebug_ClearButton")); button_clear->SetDefault(); button_clear->SetToolTip(_("Clear output window")); control_sizer->Add(label, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); control_sizer->Add(m_command_entry, wxEXPAND, wxEXPAND | wxALL, 2); control_sizer->Add(button_execute, 0, wxEXPAND | wxALL, 0); control_sizer->Add(button_load, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); control_sizer->Add(button_clear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0); SetSizer(sizer); Connect(idDebug_LogEntryControl, wxEVT_COMMAND_TEXT_ENTER, wxObjectEventFunction(&DebugLogPanel::OnEntryCommand)); Connect(idDebug_ExecuteButton, wxEVT_COMMAND_BUTTON_CLICKED, wxObjectEventFunction(&DebugLogPanel::OnEntryCommand)); Connect(idDebug_ClearButton, wxEVT_COMMAND_BUTTON_CLICKED, wxObjectEventFunction(&DebugLogPanel::OnClearLog)); Connect(idDebug_LoadButton, wxEVT_COMMAND_BUTTON_CLICKED, wxObjectEventFunction(&DebugLogPanel::OnLoadFile)); // UpdateUI events Connect(idDebug_ExecuteButton, wxEVT_UPDATE_UI, wxObjectEventFunction(&DebugLogPanel::OnUpdateUI)); Connect(idDebug_LoadButton, wxEVT_UPDATE_UI, wxObjectEventFunction(&DebugLogPanel::OnUpdateUI)); Connect(idDebug_LogEntryControl, wxEVT_UPDATE_UI, wxObjectEventFunction(&DebugLogPanel::OnUpdateUI)); }
SinglePlayerTab::SinglePlayerTab(wxWindow* parent, MainSinglePlayerTab& msptab) : wxPanel(parent, -1) , m_battle(msptab) { GetAui().manager->AddPane(this, wxLEFT, _T("singleplayertab")); m_main_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_mapabour_sizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* m_map_sizer = new wxBoxSizer(wxHORIZONTAL); // m_map_sizer->SetMinSize( wxSize( 352, -1 ) ); // empty panel to replace minimap m_nominimap = new wxWindow(this, -1, wxDefaultPosition, wxSize(100, 100), wxSIMPLE_BORDER | wxFULL_REPAINT_ON_RESIZE); m_nominimap->SetToolTip(_("No Unitsync configured.")); m_nominimap->SetBackgroundStyle(wxBG_STYLE_CUSTOM); m_nominimap->SetBackgroundColour(*wxLIGHT_GREY); m_nominimap->Hide(); m_map_sizer->Add(m_nominimap, 1, wxALL | wxEXPAND, 2); // Regular minimap m_minimap = new MapCtrl(this, 100, &m_battle, false, true, true); m_minimap->SetToolTip(_("You can drag the sun/bot icon around to define start position.\n " "Hover over the icon for a popup that lets you change side, ally and bonus.")); m_map_sizer->Add(m_minimap, 1, wxALL | wxEXPAND, 2); m_mapabour_sizer->Add(m_map_sizer, 1, wxEXPAND, 2); //map description and parametrs like in battletab wxBoxSizer* m_opts_sizer = new wxBoxSizer(wxVERTICAL); 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); m_map_desc = new wxStaticText(this, -1, wxEmptyString); m_map_desc->Wrap(160); m_opts_sizer->Add(m_map_desc, 0, wxALL, 2); m_mapabour_sizer->Add(m_opts_sizer, 0, wxALL | wxEXPAND, 2); m_main_sizer->Add(m_mapabour_sizer, 1, wxEXPAND, 5); wxBoxSizer* m_ctrl_sizer = new wxBoxSizer(wxHORIZONTAL); m_map_lbl = new wxStaticText(this, -1, _("Map:")); m_ctrl_sizer->Add(m_map_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_map_pick = new wxChoice(this, SP_MAP_PICK); m_ctrl_sizer->Add(m_map_pick, 1, wxALL, 5); m_select_btn = new wxButton(this, SP_BROWSE_MAP, _T("..."), wxDefaultPosition, wxSize(CONTROL_HEIGHT, CONTROL_HEIGHT), wxBU_EXACTFIT); m_ctrl_sizer->Add(m_select_btn, 0, wxBOTTOM | wxRIGHT | wxTOP, 5); m_mod_lbl = new wxStaticText(this, -1, _("Game:")); m_ctrl_sizer->Add(m_mod_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_mod_pick = new wxChoice(this, SP_MOD_PICK); m_ctrl_sizer->Add(m_mod_pick, 1, wxALL, 5); m_mod_lbl = new wxStaticText(this, -1, _("Engine:")); m_ctrl_sizer->Add(m_mod_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_engine_pick = new wxChoice(this, SP_ENGINE_PICK); m_engine_pick->SetToolTip(_("Select the engine version to play.")); m_ctrl_sizer->Add(m_engine_pick, 1, wxALL, 5); // m_ctrl_sizer->Add( 0, 0, 1, wxEXPAND, 0 ); m_addbot_btn = new wxButton(this, SP_ADD_BOT, _("Add bot..."), wxDefaultPosition, wxSize(80, CONTROL_HEIGHT), 0); m_ctrl_sizer->Add(m_addbot_btn, 0, wxALL, 5); m_main_sizer->Add(m_ctrl_sizer, 0, wxEXPAND, 5); m_buttons_sep = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); m_main_sizer->Add(m_buttons_sep, 0, wxLEFT | wxRIGHT | wxEXPAND, 5); wxBoxSizer* m_buttons_sizer = new wxBoxSizer(wxHORIZONTAL); m_buttons_sizer->Add(0, 0, 1, wxEXPAND, 0); m_color_btn = new ColorButton(this, SP_COLOUR, sett().GetBattleLastColour(), wxDefaultPosition, wxSize(30, CONTROL_HEIGHT)); m_buttons_sizer->Add(m_color_btn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0); m_spectator_check = new wxCheckBox(this, SP_SPECTATE, _("Spectate only")); m_buttons_sizer->Add(m_spectator_check, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_random_check = new wxCheckBox(this, SP_RANDOM, _("Random start positions")); m_buttons_sizer->Add(m_random_check, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_start_btn = new wxButton(this, SP_START, _("Start"), wxDefaultPosition, wxSize(80, CONTROL_HEIGHT), 0); m_buttons_sizer->Add(m_start_btn, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); m_main_sizer->Add(m_buttons_sizer, 0, wxEXPAND, 5); m_battle.SetEngineName("spring"); m_battle.SetEngineVersion(SlPaths::GetCurrentUsedSpringIndex()); ReloadMaplist(); // ReloadModlist(); //Called from ReloadEngineList() too ReloadEngineList(); GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::OnUnitsyncReloaded, wxObjectEventFunction(&SinglePlayerTab::OnUnitsyncReloaded)); this->SetSizer(m_main_sizer); this->Layout(); }
BattleMapTab::BattleMapTab( wxWindow* parent, Battle* battle ) : wxScrolledWindow( 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, false, 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 ); Layout(); SetBattle( battle ); SetScrollRate( SCROLL_RATE, SCROLL_RATE ); Layout(); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&BattleMapTab::OnUnitsyncReloaded)); }
BattleListTab::BattleListTab(wxWindow* parent) : wxScrolledWindow(parent, -1) , m_sel_battle(0) { GetAui().manager->AddPane(this, wxLEFT, _T( "battlelisttab" )); m_main_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* m_filter_sizer; m_filter_sizer = new wxBoxSizer(wxVERTICAL); m_battlelist_sizer = new wxBoxSizer(wxVERTICAL); m_battle_list = new BattleListCtrl(this); m_battle_list->SetHighLightAction(UserActions::ActHighlight); m_battlelist_sizer->Add(m_battle_list, 1, wxEXPAND); m_main_sizer->Add(m_battlelist_sizer, 1, wxEXPAND); 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); 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, 0, wxALL, 5); m_map_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_map_text, 0, wxALL, 5); m_mod_lbl = new wxStaticText(this, wxID_ANY, _("Game:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_mod_lbl, 0, wxALL, 5); m_mod_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_mod_text, 0, wxALL, 5); m_players_lbl = new wxStaticText(this, wxID_ANY, _("Players:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_players_lbl, 0, wxALL, 5); m_players_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_players_text, 0, wxALL, 5); m_spec_lbl = new wxStaticText(this, wxID_ANY, _("Spectators:"), wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_spec_lbl, 0, wxALL, 5); m_spec_text = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); m_data_sizer->Add(m_spec_text, 0, wxALL, 5); m_info_sizer->Add(m_data_sizer, 1, wxEXPAND, 5); m_players = new NickListCtrl(this, false, 0, true, _T("battlelist_nicklist")); m_info_sizer->Add(m_players, 1, wxALL | wxEXPAND, 5); m_main_sizer->Add(m_info_sizer, 0, wxEXPAND, 5); m_filter = new BattleListFilter(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); m_buttons_sizer->Add(0, 0, 1, wxEXPAND, 0); #if wxUSE_TOGGLEBTN m_filter_show = new wxToggleButton(this, BATTLE_LIST_FILTER_BUTTON, _(" Filter "), wxDefaultPosition, wxSize(-1, 28), 0); #else m_filter_show = new wxCheckBox(this, BATTLE_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, BATTLE_LIST_FILTER_ACTIV, _("Activated"), wxDefaultPosition, wxDefaultSize, 0); m_buttons_sizer->Add(m_filter_activ, 0, wxALL, 5); #if wxUSE_TOGGLEBTN m_info_show = new wxToggleButton(this, BATTLE_LIST_INFO_BUTTON, _(" Battle infos "), wxDefaultPosition, wxSize(-1, 28), 0); #else m_info_show = new wxCheckBox(this, BATTLE_LIST_INFO_BUTTON, _(" Battle infos "), wxDefaultPosition, wxSize(-1, 28), 0); #endif m_buttons_sizer->Add(m_info_show, 0, 0, 5); m_battle_num = new wxStaticText(this, wxID_ANY, _("0 battles displayed"), wxDefaultPosition, wxDefaultSize, 0); m_buttons_sizer->Add(m_battle_num, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, 4); m_buttons_sizer->Add(0, 0, 1, wxEXPAND, 0); m_host_btn = new wxButton(this, BATTLE_HOST, _("Host new..."), wxDefaultPosition, wxSize(-1, 28), 0); m_buttons_sizer->Add(m_host_btn, 0, wxBOTTOM | wxLEFT | wxRIGHT, 5); m_join_btn = new wxButton(this, BATTLE_JOIN, _("Join"), wxDefaultPosition, wxSize(-1, 28), 0); m_buttons_sizer->Add(m_join_btn, 0, wxBOTTOM | wxRIGHT, 5); m_main_sizer->Add(m_buttons_sizer, 0, wxEXPAND, 5); m_filter->Hide(); SetScrollRate(SCROLL_RATE, SCROLL_RATE); SetSizer(m_main_sizer); Layout(); SelectBattle(0); ShowExtendedInfos(cfg().ReadBool(_T("/BattleListTab/ShowExtendedInfos"))); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&BattleListTab::OnUnitsyncReloaded)); }
void DlgConfig::CreateControls() { ////@begin DlgConfig content construction DlgConfig* itemDialog1 = this; wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); itemDialog1->SetSizer(itemBoxSizer2); wxStaticBox* itemStaticBoxSizer1Static = new wxStaticBox(itemDialog1, wxID_ANY,"程序热键"); wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer1Static,wxVERTICAL); wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); itemStaticBoxSizer4->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5); wxStaticText* itemStaticText4 = new wxStaticText( itemStaticBoxSizer4->GetStaticBox(), wxID_STATIC, _("显隐热键:"), wxDefaultPosition, wxDefaultSize, 0 ); itemBoxSizer3->Add(itemStaticText4, 0, wxALIGN_TOP|wxALL, 5); config_hotkey = new HotkeyCtrl( itemStaticBoxSizer4->GetStaticBox(), ID_TEXTCTRL, wxEmptyString, wxDefaultPosition,wxSize(150, -1)); itemBoxSizer3->Add(config_hotkey, 0, wxGROW|wxALL, 5); itemBoxSizer2->Add(itemStaticBoxSizer4, 0, wxGROW|wxALL, 5); wxStaticBox* itemStaticBoxSizer3Static = new wxStaticBox(itemDialog1, wxID_ANY, "基本配置"); wxStaticBoxSizer* itemStaticBoxSizer3 = new wxStaticBoxSizer(itemStaticBoxSizer3Static, wxVERTICAL); itemBoxSizer2->Add(itemStaticBoxSizer3, 0, wxGROW|wxALL, 5); wxArrayString configStrings; configStrings.Add("随系统自动启动"); configStrings.Add("保持窗口置顶"); configStrings.Add("允许数字快捷键"); configStrings.Add("显示托盘图标"); configStrings.Add("仅显示前10项"); configStrings.Add("仅剩一项时立即执行"); configStrings.Add("保存最近一次匹配"); configStrings.Add("数字序列顺序 = 0, 1, ..., 8, 9"); configStrings.Add("前辍匹配优先"); configStrings.Add("显示命令提示信息"); configStrings.Add("禁用WOW64文件系统重定向"); configStrings.Add("添加到<发送到>菜单"); configStrings.Add("主窗体弹出时播放声音"); configStrings.Add("按空格键执行"); configStrings.Add("主窗体弹出时显示列表"); configStrings.Add("按两次程序热键重复执行上一个命令"); configStrings.Add("鼠标双击运行"); configStrings.Add("允许命令名重复"); config = new wxCheckListBox(itemStaticBoxSizer3->GetStaticBox(), ID_CHECKLISTBOX, wxDefaultPosition, wxDefaultSize, configStrings, 0 ); config_tip = new wxStaticText( itemStaticBoxSizer3->GetStaticBox(), wxID_STATIC,wxEmptyString, wxDefaultPosition, wxSize(-1,50), wxALIGN_LEFT|wxST_NO_AUTORESIZE|wxNO_BORDER); config_tip->SetForegroundColour(wxColour(255, 0, 255)); itemStaticBoxSizer3->Add(config, 0, wxGROW|wxALL, 5); itemStaticBoxSizer3->Add(config_tip, 0, wxGROW|wxALL, 5); wxStdDialogButtonSizer* itemStdDialogButtonSizer6 = new wxStdDialogButtonSizer; itemBoxSizer2->Add(itemStdDialogButtonSizer6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); wxButton* itemButton7 = new wxButton( itemDialog1, wxID_OK, _("更新(&O)"), wxDefaultPosition, wxDefaultSize, 0 ); itemButton7->SetDefault(); itemStdDialogButtonSizer6->AddButton(itemButton7); wxButton* itemButton8 = new wxButton( itemDialog1, wxID_CANCEL, _("取消(&C)"), wxDefaultPosition, wxDefaultSize, 0 ); itemStdDialogButtonSizer6->AddButton(itemButton8); itemButton8->SetFocus(); itemStdDialogButtonSizer6->Realize(); this->Connect(ID_CHECKLISTBOX,wxEVT_COMMAND_LISTBOX_SELECTED,wxObjectEventFunction(&DlgConfig::OnConfigCheck)); ////@end DlgConfig content construction }
MapSelectDialog::MapSelectDialog( wxWindow* parent ) : // WindowHintsPickle( m_dialog_name, this, wxSize( DEFSETT_MW_WIDTH, DEFSETT_MW_HEIGHT ) ), m_horizontal_direction( sett().GetHorizontalSortorder() ), m_vertical_direction( sett().GetVerticalSortorder() ) { //(*Initialize(MapSelectDialog) wxStaticBoxSizer* StaticBoxSizer2; wxStaticText* StaticText2; wxStaticText* StaticText1; wxBoxSizer* BoxSizer2; wxBoxSizer* boxSizerHorizontal; wxBoxSizer* BoxSizer1; wxStaticBoxSizer* StaticBoxSizer1; wxBoxSizer* boxSizerVertical; wxStdDialogButtonSizer* StdDialogButtonSizer1; Create(parent, wxID_ANY, _("Select map (click and drag to scroll)"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxMAXIMIZE_BOX, _T("wxID_ANY")); BoxSizer1 = new wxBoxSizer(wxHORIZONTAL); BoxSizer2 = new wxBoxSizer(wxVERTICAL); StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Vertical sort key"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); BoxSizer2->Add(StaticText2, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Horizontal sort key"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); BoxSizer2->Add(StaticText1, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); StaticBoxSizer1 = new wxStaticBoxSizer(wxVERTICAL, this, _("Show")); m_filter_all = new wxRadioButton(this, ID_FILTER_ALL, _("All maps"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_FILTER_ALL")); m_filter_all->SetToolTip(_("Shows all available maps")); StaticBoxSizer1->Add(m_filter_all, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); m_filter_popular = new wxRadioButton(this, ID_FILTER_POPULAR, _("Popular maps"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_FILTER_POPULAR")); m_filter_popular->SetToolTip(_("Shows only maps which are currently being player on the server. You must be online to use this.")); StaticBoxSizer1->Add(m_filter_popular, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); m_filter_recent = new wxRadioButton(this, ID_FILTER_RECENT, _("Recently played maps"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_FILTER_RECENT")); m_filter_recent->SetValue(true); m_filter_recent->SetToolTip(_("Shows only maps you played recently. (Based on your replays.)")); StaticBoxSizer1->Add(m_filter_recent, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); BoxSizer2->Add(StaticBoxSizer1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer2->Add(m_map_details, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 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); BoxSizer1->Add(BoxSizer2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); m_mapgrid = new MapGridCtrl(this, wxSize(600,400), ID_MAPGRID); BoxSizer1->Add(m_mapgrid, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SetSizer(BoxSizer1); BoxSizer1->Fit(this); BoxSizer1->SetSizeHints(this); Center(); 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_ALL,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&MapSelectDialog::OnFilterAllSelect); Connect(ID_FILTER_POPULAR,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&MapSelectDialog::OnFilterPopularSelect); Connect(ID_FILTER_RECENT,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&MapSelectDialog::OnFilterRecentSelect); 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); // Ugh.. Can not have these created by generated code because wxSmith doesn't accept a symbolic size, // (ie. wxSize(CONTROL_HEIGHT,CONTROL_HEIGHT)) and all Set*Size() methods don't seem to have any effect. 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 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|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); //<>ᴠᴧ Connect(ID_VERTICAL_DIRECTION, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&MapSelectDialog::OnVerticalDirectionClicked); Connect(ID_HORIZONTAL_DIRECTION, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&MapSelectDialog::OnHorizontalDirectionClicked); // 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 ) ); 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, 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(); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&MapSelectDialog::OnUnitsyncReloaded)); }
BattleRoomTab::BattleRoomTab(wxWindow* parent, IBattle* battle) : wxScrolledWindow(parent, -1) , m_battle(battle) , m_BattleActionSink(this, &UiEvents::GetUiEventSender(UiEvents::OnBattleActionEvent)) { GetAui().manager->AddPane(this, wxLEFT, _T( "battleroomtab" )); // Create all widgets m_splitter = new wxSplitterWindow(this, -1, wxDefaultPosition, wxSize(100, 60)); m_player_panel = new wxScrolledWindow(m_splitter, -1); m_player_panel->SetScrollRate(SCROLL_RATE, SCROLL_RATE); m_team_sel = new wxComboBox(m_player_panel, BROOM_TEAMSEL, _T( "1" ), wxDefaultPosition, wxSize(50, CONTROL_HEIGHT), team_choices); m_team_sel->SetToolTip(_("Players with the same team number share control of their units.")); m_ally_sel = new wxComboBox(m_player_panel, BROOM_ALLYSEL, _T( "1" ), wxDefaultPosition, wxSize(50, CONTROL_HEIGHT), ally_choices); m_ally_sel->SetToolTip(_("Players with the same ally number work together to achieve victory.")); m_color_sel = new ColorButton(m_player_panel, BROOM_COLOURSEL, wxColour(0, 0, 0), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_color_sel->SetToolTip(_("Select a color to identify your units in-game")); m_side_sel = new wxBitmapComboBox(m_player_panel, BROOM_SIDESEL, wxEmptyString, wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT), wxArrayString(), wxCB_READONLY); m_side_sel->SetToolTip(_("Select your faction")); m_spec_chk = new wxCheckBox(m_player_panel, BROOM_SPEC, _("Spectator"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_spec_chk->SetToolTip(_("Spectate (watch) the battle instead of playing")); m_auto_unspec_chk = new wxCheckBox(m_player_panel, BROOM_UNSPEC, _("Auto un-spectate"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_auto_unspec_chk->SetToolTip(_("automatically unspec when there's a free slot")); m_ready_chk = new wxCheckBox(m_player_panel, BROOM_IMREADY, _("I'm ready"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_ready_chk->SetToolTip(_("Click this if you are content with the battle settings.")); m_team_lbl = new wxStaticText(m_player_panel, -1, _("Team")); m_ally_lbl = new wxStaticText(m_player_panel, -1, _("Ally")); m_color_lbl = new wxStaticText(m_player_panel, -1, _("Color")); m_side_lbl = new wxStaticText(m_player_panel, -1, _("Side")); m_ally_setup_lbl = new wxStaticText(m_player_panel, -1, _T("0")); m_specs_setup_lbl = new wxStaticText(m_player_panel, -1, _T("0")); m_players_setup_lbl = new wxStaticText(m_player_panel, -1, _T("0")); m_ok_count_lbl = new wxStaticText(m_player_panel, -1, _T("0")); m_map_combo = new wxComboBox(this, BROOM_MAP_SEL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_READONLY); m_minimap = new MapCtrl(this, 162, m_battle, true, true, false); m_minimap->SetToolTip(_("A preview of the selected map. You can see the starting positions, or (if set) starting boxes.")); m_browse_map_btn = new wxButton(this, BROOM_MAP_BROWSE, _("Map"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); //m_browse_map_btn->SetSize( m_browse_map_btn->GetSize().GetWidth() * 2 , m_browse_map_btn->GetSize().GetHeight() ) ; // has 0 effect m_players = new BattleroomListCtrl(m_player_panel, m_battle, false, true); m_chat = new ChatPanel(m_splitter, m_battle); m_command_line = new wxStaticLine(this, -1, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); m_host_new_btn = new wxButton(this, BROOM_HOST_NEW, _("Host new"), wxDefaultPosition, wxDefaultSize); m_host_new_btn->SetToolTip(_("Host a new battle")); m_leave_btn = new wxButton(this, BROOM_LEAVE, _("Leave"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_leave_btn->SetToolTip(_("Leave the battle and return to the battle list")); m_start_btn = new wxButton(this, BROOM_START, _("Start"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_start_btn->SetToolTip(_("Start the battle")); m_manage_players_btn = new wxButton(this, BROOM_MANAGE_MENU, _("Player Management"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_manage_players_btn->SetToolTip(_("Various functions to make team games simplers to setup")); m_addbot_btn = new wxButton(this, BROOM_ADDBOT, _("Add Bot..."), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_addbot_btn->SetToolTip(_("Add a computer-controlled player to the game")); m_autolock_chk = new wxCheckBox(this, BROOM_AUTOLOCK, _("Autolock on start"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_autolock_chk->SetToolTip(_("Automatically locks the battle when the game starts and unlock when it's finished.")); m_autolock_chk->SetValue(sett().GetLastAutolockStatus()); m_lock_chk = new wxCheckBox(this, BROOM_LOCK, _("Locked"), wxDefaultPosition, wxSize(-1, CONTROL_HEIGHT)); m_lock_chk->SetToolTip(_("Prevent additional players from joining the battle")); m_manage_users_mnu = new wxMenu(); m_autohost_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_AUTOHOST, _("Autohost"), _("Toggle autohost mode. This allows players to control your battle using commands like '!balance' and '!start'."), wxITEM_CHECK); m_manage_users_mnu->Append(m_autohost_mnu); m_autohost_mnu->Check(false); m_autopaste_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_AUTOPASTE, _("AutoPaste Description"), _("Automatically paste battle's descriptoin when a new user joins"), wxITEM_CHECK); m_manage_users_mnu->Append(m_autopaste_mnu); m_autopaste_mnu->Check(sett().GetBattleLastAutoAnnounceDescription()); m_autospec_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_AUTOSPECT, _("AutoSpect"), _("Automatically spectate players that don't ready up or become synced within x seconds."), wxITEM_CHECK); m_manage_users_mnu->Append(m_autospec_mnu); m_autospec_mnu->Check(sett().GetBattleLastAutoSpectTime() > 0); m_autocontrol_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_AUTOCONTROL, _("AutoControlBalance"), _("Automatically balance teams and allies and fix colors when all players are ready and synced"), wxITEM_CHECK); m_manage_users_mnu->Append(m_autocontrol_mnu); m_autocontrol_mnu->Check(sett().GetBattleLastAutoControlState()); m_autostart_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_AUTOSTART, _("AutoStart"), _("Automatically start the battle when all players are ready and synced"), wxITEM_CHECK); m_manage_users_mnu->Append(m_autostart_mnu); m_autostart_mnu->Check(sett().GetBattleLastAutoStartState()); m_lock_balance_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_LOCK_BALANCE, _("Lock Balance"), _("When activated, prevents anyone but the host to change team and ally"), wxITEM_CHECK); m_manage_users_mnu->Append(m_lock_balance_mnu); m_lock_balance_mnu->Check(false); wxMenu* ring_menu = new wxMenu; wxMenuItem* ring_unready = new wxMenuItem(ring_menu, BROOM_RING_UNREADY, _("Ring unready"), _("Rings all players that don't have ready status and aren't spectators")); ring_menu->Append(ring_unready); wxMenuItem* ring_unsynced = new wxMenuItem(ring_menu, BROOM_RING_UNSYNC, _("Ring unsynced"), _("Rings all players that don't have sync status and aren't spectators")); ring_menu->Append(ring_unsynced); wxMenuItem* ring_unready_unsynced = new wxMenuItem(ring_menu, BROOM_RING_UNREADY_UNSYNC, _("Ring unready and unsynced"), _("Rings all players that don't have sync status or don't have ready status and aren't spectators")); ring_menu->Append(ring_unready_unsynced); m_manage_users_mnu->Append(wxID_ANY, _("Ring ..."), ring_menu); wxMenu* spect_menu = new wxMenu; wxMenuItem* spect_unready = new wxMenuItem(spect_menu, BROOM_SPECT_UNREADY, _("Spect unready"), _("Force to spectate all players that don't have ready status")); spect_menu->Append(spect_unready); wxMenuItem* spect_unsynced = new wxMenuItem(spect_menu, BROOM_SPECT_UNSYNC, _("Spect unsynced"), _("Force to spectate all players that don't have sync status")); spect_menu->Append(spect_unsynced); wxMenuItem* spect_unready_unsynced = new wxMenuItem(spect_menu, BROOM_SPECT_UNREADY_UNSYNC, _("Force to spectate unready and unsynced"), _("Rings all players that don't have sync status or don't have ready status")); spect_menu->Append(spect_unready_unsynced); m_manage_users_mnu->Append(wxID_ANY, _("Force spectate ..."), spect_menu); wxMenuItem* m_balance_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_BALANCE, _("Balance alliances"), _("Automatically balance players into two or more alliances")); m_manage_users_mnu->Append(m_balance_mnu); wxMenuItem* m_fix_colours_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_FIXCOLOURS, _("Fix colours"), _("Make player colors unique")); m_manage_users_mnu->Append(m_fix_colours_mnu); wxMenuItem* m_fix_team_mnu = new wxMenuItem(m_manage_users_mnu, BROOM_FIXID, _("Balance teams"), _("Automatically balance players into control teams, by default none shares control")); m_manage_users_mnu->Append(m_fix_team_mnu); wxStaticBoxSizer* m_preset_sizer; m_preset_sizer = new wxStaticBoxSizer(new wxStaticBox(this, 0, _("Manage Presets")), wxVERTICAL); wxBoxSizer* m_preset_btns_sizer; m_preset_btns_sizer = new wxBoxSizer(wxHORIZONTAL); m_options_preset_sel = new wxComboBox(this, BROOM_PRESETSEL, wxEmptyString, wxDefaultPosition, wxDefaultSize, sett().GetPresetList(), wxCB_READONLY); m_options_preset_sel->SetToolTip(_("Load battle preset")); m_preset_sizer->Add(m_options_preset_sel, 0, wxEXPAND | wxALL); m_save_btn = new wxButton(this, BROOM_SAVEPRES, _("Save"), wxDefaultPosition, wxDefaultSize); m_save_btn->SetToolTip(_("Save a set of options.")); m_preset_btns_sizer->Add(m_save_btn, 0, wxEXPAND); m_delete_btn = new wxButton(this, BROOM_DELETEPRES, _("Delete"), wxDefaultPosition, wxDefaultSize); m_delete_btn->SetToolTip(_("Delete a set of options.")); m_preset_btns_sizer->Add(m_delete_btn, 0, wxEXPAND); m_default_btn = new wxButton(this, BROOM_SETDEFAULTPRES, _("Set default"), wxDefaultPosition, wxDefaultSize); m_default_btn->SetToolTip(_("Use the current set of options as game's default.")); m_preset_btns_sizer->Add(m_default_btn, 0, wxEXPAND); m_preset_sizer->Add(m_preset_btns_sizer, 0, wxEXPAND); m_opts_list = new wxListCtrl(this, BROOM_OPTIONLIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT); //m_opts_list->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); m_opts_list->SetFont(wxFont(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_LIGHT)); m_opts_list->SetToolTip(_("Activate an element to quickly change it")); m_opts_list->InsertColumn(0, _("Option"), wxLIST_FORMAT_LEFT, 160); m_opts_list->InsertColumn(1, _("Value"), wxLIST_FORMAT_LEFT, 140); // Create Sizers m_players_sizer = new wxBoxSizer(wxVERTICAL); m_player_sett_sizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* m_map_select_sizer = new wxBoxSizer(wxHORIZONTAL); m_info_sizer = new wxBoxSizer(wxVERTICAL); m_top_sizer = new wxBoxSizer(wxHORIZONTAL); m_buttons_sizer = new wxBoxSizer(wxHORIZONTAL); //m_info1_sizer = new wxBoxSizer( wxHORIZONTAL ); m_main_sizer = new wxBoxSizer(wxVERTICAL); // Put widgets in place m_player_sett_sizer->Add(m_team_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); m_player_sett_sizer->Add(m_team_sel, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_ally_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); m_player_sett_sizer->Add(m_ally_sel, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_color_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); m_player_sett_sizer->Add(m_color_sel, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_side_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); m_player_sett_sizer->Add(m_side_sel, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_spec_chk, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_auto_unspec_chk, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->Add(m_ready_chk, 0, wxEXPAND | wxALL, 2); m_player_sett_sizer->AddStretchSpacer(); m_player_sett_sizer->Add((new wxGenericStaticBitmap(m_player_panel, wxID_ANY, icons().GetIcon(icons().ICON_SPECTATOR))), 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add(m_specs_setup_lbl, 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add((new wxGenericStaticBitmap(m_player_panel, wxID_ANY, icons().GetIcon(icons().ICON_PLAYER))), 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add(m_players_setup_lbl, 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add((new wxGenericStaticBitmap(m_player_panel, wxID_ANY, icons().GetIcon(icons().ICON_STARTED_GAME))), 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add(m_ally_setup_lbl, 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add((new wxGenericStaticBitmap(m_player_panel, wxID_ANY, icons().GetIcon(icons().ICON_NREADY))), 0, (wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT) | wxALL, 2); m_player_sett_sizer->Add(m_ok_count_lbl, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT, 2); m_players_sizer->Add(m_players, 1, wxEXPAND); m_players_sizer->Add(m_player_sett_sizer, 0, wxEXPAND); m_player_panel->SetSizer(m_players_sizer); SplitSizerHorizontally(sett().GetSplitBRoomHorizontally()); //m_info1_sizer->Add( m_wind_lbl, 1, wxEXPAND ); //m_info1_sizer->Add( m_size_lbl, 1, wxEXPAND ); m_info_sizer->Add(m_minimap, 0, wxEXPAND); m_map_select_sizer->Add(m_map_combo, 0, wxALL | wxEXPAND, 2); m_map_select_sizer->Add(m_browse_map_btn, 0, wxALIGN_RIGHT | wxALL, 2); m_info_sizer->Add(m_map_select_sizer, 0, wxEXPAND | wxALL, 2); //m_info_sizer->Add( m_info1_sizer, 0, wxEXPAND ); //m_info_sizer->Add( m_tidal_lbl, 0, wxEXPAND ); m_info_sizer->Add(m_opts_list, 1, wxEXPAND | wxTOP, 4); m_info_sizer->Add(m_preset_sizer, 0, wxEXPAND, 4); m_top_sizer->Add(m_splitter, 1, wxEXPAND | wxALL, 2); m_top_sizer->Add(m_info_sizer, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->AddStretchSpacer(); m_buttons_sizer->Add(m_host_new_btn, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->AddStretchSpacer(); m_buttons_sizer->Add(m_leave_btn, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->Add(m_addbot_btn, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->Add(m_autolock_chk, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->Add(m_lock_chk, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->Add(m_manage_players_btn, 0, wxEXPAND | wxALL, 2); m_buttons_sizer->Add(m_start_btn, 0, wxEXPAND | wxALL, 2); m_main_sizer->Add(m_top_sizer, 1, wxEXPAND); m_main_sizer->Add(m_command_line, 0, wxEXPAND); m_main_sizer->Add(m_buttons_sizer, 0, wxEXPAND); m_splitter->SetMinimumPaneSize(240); SetBattle(battle); SetScrollRate(SCROLL_RATE, SCROLL_RATE); SetSizer(m_main_sizer); Layout(); ConnectGlobalEvent(this, GlobalEvent::OnUnitsyncReloaded, wxObjectEventFunction(&BattleRoomTab::OnUnitsyncReloaded)); }
void wxToolBoxMinimalTestFrame::CreateToolBox() { m_ToolBox = new wxToolBox(this, 10001, wxDefaultPosition, wxSize(220,465), wxNO_BORDER); m_ToolBox->SetMinSize(wxSize(220,465)); wxBoxSizer * sizer = new wxBoxSizer(wxVERTICAL); SetSizer(sizer); sizer->Add(m_ToolBox, 1, wxEXPAND); sizer->Fit(this); Centre(); //#if !defined(__WXWINCE__) wxSetWorkingDirectory(wxPathOnly(wxGetApp().argv[0])); wxLogDebug(wxString::Format(wxT("Working directory: %s"), wxGetCwd().c_str())); m_ToolBox->LoadSkin(wxPathOnly(wxGetApp().argv[0])+ wxFILE_SEP_PATH + wxT("Standard.xml")); //#endif wxFont font = m_ToolBox->GetFont(); m_ToolBox->SetItemNormalFont(font); font.SetWeight(wxFONTWEIGHT_BOLD); m_ToolBox->SetItemHoverFont(font); time_t t; time(&t); srand(t); int icon(0); wxToolBoxTab * tab1 = new wxToolBoxTab(wxT("Tab 1")); #if !defined(__WXWINCE__) icon = rand()%m_ToolBox->GetTabImageList().Count(); tab1->SetImageIndex(icon); #else icon = -1; #endif; wxToolBoxTab * tab2 = new wxToolBoxTab(wxT("Tab 2")); #if defined(SUPPORTS_TAB_CHILD_CONTROLS) wxToolBoxTab * tab3 = new wxToolBoxTab(wxT("Tab 3")); #endif #if defined(SUPPORTS_TAB_CHILD_CONTROLS) icon = rand()%m_ToolBox->GetTabImageList().Count(); #else icon = -1; #endif; #if defined(SUPPORTS_TAB_CHILD_CONTROLS) tab3->SetImageIndex(icon); wxNotebook * notebook = new wxNotebook(m_ToolBox, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); notebook->SetBackgroundColour(m_ToolBox->GetBackgroundColour()); wxTextCtrl * textCtrl = new wxTextCtrl(notebook, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxNO_BORDER); wxArrayString listBoxItems; listBoxItems.Add(_("Item 1")); listBoxItems.Add(_("Item 2")); listBoxItems.Add(_("Item 3")); wxListBox * listBox = new wxListBox(notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, listBoxItems, wxNO_BORDER); notebook->AddPage(textCtrl, _("Text")); notebook->AddPage(listBox, _("List")); tab3->SetChildWindow(notebook); #endif m_ToolBox->AddTab(tab1); m_ToolBox->AddTab(tab2); #if defined(SUPPORTS_TAB_CHILD_CONTROLS) m_ToolBox->AddTab(tab3); #endif m_ToolBox->SetStyle(wxTB_STYLE_LIST); wxToolBoxItem item1; for(int i = 0; i < 60; i++) { item1.SetID(i+1); item1.SetCaption(wxString::Format(_("My Thumbnail #%i"), i)); if(m_ToolBox->GetItemImageList().Count()) { //#if !defined(__WXWINCE__) icon = rand()%m_ToolBox->GetTabImageList().Count(); //#else //icon = -1; //#endif; item1.SetImageIndex(icon); } if(i < 30) { tab1->AddItem(item1); } else { tab2->AddItem(item1); } } #if !defined(SUPPORTS_TAB_CHILD_CONTROLS) return; #endif wxToolBoxTab * tab4 = new wxToolBoxTab(wxT("Tab 4")); #if defined(SUPPORTS_TAB_CHILD_CONTROLS) icon = rand()%m_ToolBox->GetTabImageList().Count(); #else icon = -1; #endif; tab4->SetImageIndex(icon); wxPanel * tab4panel = new wxPanel(m_ToolBox, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); wxBoxSizer *tab4panel_sizer = new wxBoxSizer(wxVERTICAL); tab4panel->SetSizer(tab4panel_sizer); wxFlexGridSizer * flexgrid_sizer = new wxFlexGridSizer(5, 2, 5, 5); wxStaticText * fn_label = new wxStaticText(tab4panel, wxID_ANY, _("First Name:")); wxStaticText * ln_label = new wxStaticText(tab4panel, wxID_ANY, _("Last Name:")); wxStaticText * em_label = new wxStaticText(tab4panel, wxID_ANY, _("e-mail:")); wxTextCtrl * fn_text = new wxTextCtrl(tab4panel, wxID_ANY, wxEmptyString); wxTextCtrl * ln_text = new wxTextCtrl(tab4panel, wxID_ANY, wxEmptyString); wxTextCtrl * em_text = new wxTextCtrl(tab4panel, wxID_ANY, wxEmptyString); fn_label->SetForegroundColour(*wxWHITE); ln_label->SetForegroundColour(*wxWHITE); em_label->SetForegroundColour(*wxWHITE); flexgrid_sizer->AddGrowableCol(1, 1); flexgrid_sizer->Add(fn_label, 0, wxALIGN_LEFT); flexgrid_sizer->Add(fn_text, 0, wxGROW); flexgrid_sizer->Add(ln_label, 0, wxALIGN_LEFT); flexgrid_sizer->Add(ln_text, 0, wxGROW); flexgrid_sizer->Add(em_label, 0, wxALIGN_LEFT); flexgrid_sizer->Add(em_text, 0, wxGROW); m_tab4gauge = new wxGauge(tab4panel, wxID_ANY, 100, wxDefaultPosition, wxSize(-1,20), wxHORIZONTAL|wxGA_SMOOTH|wxNO_BORDER); long submit_id = wxNewId(); wxButton * submit_btn = new wxButton(tab4panel, submit_id, _("Submit")); Connect(submit_id, wxEVT_COMMAND_BUTTON_CLICKED, wxObjectEventFunction(&wxToolBoxMinimalTestFrame::OnSubmit)); tab4panel_sizer->Add(flexgrid_sizer, 0, wxGROW|wxALL, 5); tab4panel_sizer->Add(m_tab4gauge, 0, wxGROW|wxALL, 5); tab4panel_sizer->Add(submit_btn, 0, wxGROW|wxALL, 5); tab4->SetChildWindow(tab4panel); wxToolBoxTab * tab5 = new wxToolBoxTab(wxT("Tab 5")); wxTreeCtrl * treeCtrl = new wxTreeCtrl(m_ToolBox, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); wxTreeItemId root = treeCtrl->AddRoot(_("Root")); treeCtrl->AppendItem(root, _("Item 1")); treeCtrl->AppendItem(root, _("Item 2")); treeCtrl->AppendItem(root, _("Item 3")); treeCtrl->Expand(root); tab5->SetChildWindow(treeCtrl); m_ToolBox->AddTab(tab4); m_ToolBox->AddTab(tab5); tab2->SetSelected(true); m_ToolBox->RefreshTabs(); }