AdminAnnounceWindow.xaml.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Content.Shared.Administration;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface;
  4. using Robust.Client.UserInterface.Controls;
  5. using Robust.Client.UserInterface.CustomControls;
  6. using Robust.Client.UserInterface.XAML;
  7. using Robust.Shared.Utility;
  8. namespace Content.Client.Administration.UI
  9. {
  10. [GenerateTypedNameReferences]
  11. public sealed partial class AdminAnnounceWindow : DefaultWindow
  12. {
  13. [Dependency] private readonly ILocalizationManager _localization = default!;
  14. public AdminAnnounceWindow()
  15. {
  16. RobustXamlLoader.Load(this);
  17. IoCManager.InjectDependencies(this);
  18. Announcement.Placeholder = new Rope.Leaf(_localization.GetString("admin-announce-announcement-placeholder"));
  19. AnnounceMethod.AddItem(_localization.GetString("admin-announce-type-station"));
  20. AnnounceMethod.SetItemMetadata(0, AdminAnnounceType.Station);
  21. AnnounceMethod.AddItem(_localization.GetString("admin-announce-type-server"));
  22. AnnounceMethod.SetItemMetadata(1, AdminAnnounceType.Server);
  23. AnnounceMethod.OnItemSelected += AnnounceMethodOnOnItemSelected;
  24. Announcement.OnKeyBindUp += AnnouncementOnOnTextChanged;
  25. }
  26. private void AnnouncementOnOnTextChanged(GUIBoundKeyEventArgs args)
  27. {
  28. AnnounceButton.Disabled = Rope.Collapse(Announcement.TextRope).TrimStart() == "";
  29. }
  30. private void AnnounceMethodOnOnItemSelected(OptionButton.ItemSelectedEventArgs args)
  31. {
  32. AnnounceMethod.SelectId(args.Id);
  33. Announcer.Editable = ((AdminAnnounceType?)args.Button.SelectedMetadata ?? AdminAnnounceType.Station) == AdminAnnounceType.Station;
  34. }
  35. }
  36. }