public ChatTab(EquipMenuComponent menuComponent) : base(menuComponent) { _sendControl = new KeyboardKey(Keys.Enter); _message = new EditableText("", 1000, new CharacterSet(Content.FontChat.Characters), MenuEngine.Game, () => { }); _messageBeeper = new MessageBeeper(MenuEngine.Game, "PlayerMessage", () => Messages.FirstOrDefault()); _cursorBlinkStartTime = MenuEngine.Game.GameTime.TotalRealTime; }
private void StopWritingMessage() { _message.Dispose(); _message = null; _scrollPosition = 0; _game.UIEngine.PopExclusiveControls(); }
public MainMenuTextField(MenuEngineImpl menuEngine, Func<string> getName, Action action, EditableText text) : base(menuEngine, null, action) { _text = text; Name = () => getName() + _text.Content; }
private void StartWritingMessage() { if (_message != null) throw new InvalidOperationException("Already writing a message"); IEnumerable<Control> exclusiveControls = new[] { _chatSendControl, _escapeControl, _scrollUpControl, _scrollDownControl }; _game.UIEngine.PushExclusiveControls(exclusiveControls); _message = new EditableText("", 1000, new CharacterSet(ChatFont.Characters), _game, () => { }) { IsActive = true }; }
private void UpdateSelectors() { if (_playerNames != null && MenuPanePlayers.Count() == _playerNames.Count()) return; // already up to date if (MenuPanePlayers.Count() > MAX_MENU_PANES) throw new ApplicationException("Too many players want menu panes"); int aspectCount = Enum.GetValues(typeof(EquipMenuItem)).Length; _equipmentSelectors = new EquipmentSelector[MenuPanePlayers.Count(), aspectCount]; if (_playerNames != null) foreach (var name in _playerNames) if (name != null) name.Dispose(); _playerNames = new EditableText[MenuPanePlayers.Count()]; foreach (var indexedPlayer in MenuPanePlayers) { var player = indexedPlayer.Item1; int playerI = indexedPlayer.Item2; var settings = playerI == 0 ? MenuEngine.Game.Settings.Players.Player1 : playerI == 1 ? MenuEngine.Game.Settings.Players.Player2 : new AW2.Settings.PlayerSettingsItem(); _currentItems[playerI] = EquipMenuItem.Ship; if (IsPlayerNameEditable(player)) _playerNames[playerI] = new EditableText(player.Name, AW2.Settings.PlayerSettings.PLAYER_NAME_MAX_LENGTH, new CharacterSet(Content.FontSmall.Characters), MenuEngine.Game, PlayerNameKeyPressHandler); _equipmentSelectors[playerI, (int)EquipMenuItem.Ship] = new ShipSelector(MenuEngine.Game, player, settings, GetShipSelectorPos(playerI)); _equipmentSelectors[playerI, (int)EquipMenuItem.Extra] = new ExtraDeviceSelector(MenuEngine.Game, player, settings, GetExtraDeviceSelectorPos(playerI)); _equipmentSelectors[playerI, (int)EquipMenuItem.Weapon2] = new Weapon2Selector(MenuEngine.Game, player, settings, GetWeapon2SelectorPos(playerI)); } }