diff --git a/Content.Client/Administration/UI/AdminAnnounceWindow.xaml b/Content.Client/Administration/UI/AdminAnnounceWindow.xaml index f789bdba5d..f7f004dcb2 100644 --- a/Content.Client/Administration/UI/AdminAnnounceWindow.xaml +++ b/Content.Client/Administration/UI/AdminAnnounceWindow.xaml @@ -8,7 +8,7 @@ - + diff --git a/Content.Client/Administration/UI/AdminAnnounceWindow.xaml.cs b/Content.Client/Administration/UI/AdminAnnounceWindow.xaml.cs index 4fcf8f7ed3..5156b7f3c1 100644 --- a/Content.Client/Administration/UI/AdminAnnounceWindow.xaml.cs +++ b/Content.Client/Administration/UI/AdminAnnounceWindow.xaml.cs @@ -1,8 +1,10 @@ using Content.Shared.Administration; using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; +using Robust.Shared.Utility; namespace Content.Client.Administration.UI { @@ -16,18 +18,18 @@ namespace Content.Client.Administration.UI RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); + Announcement.Placeholder = new Rope.Leaf(_localization.GetString("admin-announce-announcement-placeholder")); AnnounceMethod.AddItem(_localization.GetString("admin-announce-type-station")); AnnounceMethod.SetItemMetadata(0, AdminAnnounceType.Station); AnnounceMethod.AddItem(_localization.GetString("admin-announce-type-server")); AnnounceMethod.SetItemMetadata(1, AdminAnnounceType.Server); AnnounceMethod.OnItemSelected += AnnounceMethodOnOnItemSelected; - Announcement.OnTextChanged += AnnouncementOnOnTextChanged; + Announcement.OnKeyBindUp += AnnouncementOnOnTextChanged; } - - private void AnnouncementOnOnTextChanged(LineEdit.LineEditEventArgs args) + private void AnnouncementOnOnTextChanged(GUIBoundKeyEventArgs args) { - AnnounceButton.Disabled = args.Text.TrimStart() == ""; + AnnounceButton.Disabled = Rope.Collapse(Announcement.TextRope).TrimStart() == ""; } private void AnnounceMethodOnOnItemSelected(OptionButton.ItemSelectedEventArgs args) diff --git a/Content.Client/Administration/UI/AdminMenuWindowEui.cs b/Content.Client/Administration/UI/AdminMenuWindowEui.cs index 2de0664b17..7b9691ff94 100644 --- a/Content.Client/Administration/UI/AdminMenuWindowEui.cs +++ b/Content.Client/Administration/UI/AdminMenuWindowEui.cs @@ -1,6 +1,7 @@ using Content.Client.Eui; using Content.Shared.Administration; using Robust.Client.UserInterface.Controls; +using Robust.Shared.Utility; namespace Content.Client.Administration.UI { @@ -19,7 +20,7 @@ namespace Content.Client.Administration.UI { SendMessage(new AdminAnnounceEuiMsg.DoAnnounce { - Announcement = _window.Announcement.Text, + Announcement = Rope.Collapse(_window.Announcement.TextRope), Announcer = _window.Announcer.Text, AnnounceType = (AdminAnnounceType) (_window.AnnounceMethod.SelectedMetadata ?? AdminAnnounceType.Station), CloseAfter = !_window.KeepWindowOpen.Pressed, diff --git a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs index 2a0da896f1..7428594be8 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs @@ -1,10 +1,6 @@ -using System; -using Content.Shared.Communications; +using Content.Shared.Communications; using Robust.Client.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Timing; -using Robust.Shared.ViewVariables; namespace Content.Client.Communications.UI { @@ -59,8 +55,22 @@ namespace Content.Client.Communications.UI public void AnnounceButtonPressed(string message) { - var msg = message.Length <= 256 ? message.Trim() : $"{message.Trim().Substring(0, 256)}..."; - SendMessage(new CommunicationsConsoleAnnounceMessage(msg)); + var msg = (message.Length <= 256 ? message.Trim() : $"{message.Trim().Substring(0, 256)}...").ToCharArray(); + + // No more than 2 newlines, other replaced to spaces + var newlines = 0; + for (var i = 0; i < msg.Length; i++) + { + if (msg[i] != '\n') + continue; + + if (newlines >= 2) + msg[i] = ' '; + + newlines++; + } + + SendMessage(new CommunicationsConsoleAnnounceMessage(new string(msg))); } public void CallShuttle() diff --git a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml index 1f5ec1d0b5..86c0b4e2d5 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml +++ b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml @@ -1,9 +1,9 @@ + MinSize="400 225"> - +