| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using Robust.Client.AutoGenerated;
- using Robust.Client.UserInterface;
- using Robust.Client.UserInterface.Controls;
- using Robust.Client.UserInterface.XAML;
- using Robust.Shared.Input;
- namespace Content.Client.Administration.UI.Tabs.ObjectsTab
- {
- [GenerateTypedNameReferences]
- public sealed partial class ObjectsTabHeader : Control
- {
- public event Action<Header>? OnHeaderClicked;
- private const string ArrowUp = "↑";
- private const string ArrowDown = "↓";
- public ObjectsTabHeader()
- {
- RobustXamlLoader.Load(this);
- ObjectNameLabel.OnKeyBindDown += ObjectNameClicked;
- EntityIDLabel.OnKeyBindDown += EntityIDClicked;
- }
- public Label GetHeader(Header header)
- {
- return header switch
- {
- Header.ObjectName => ObjectNameLabel,
- Header.EntityID => EntityIDLabel,
- _ => throw new ArgumentOutOfRangeException(nameof(header), header, null)
- };
- }
- public void ResetHeaderText()
- {
- ObjectNameLabel.Text = Loc.GetString("object-tab-object-name");
- EntityIDLabel.Text = Loc.GetString("object-tab-entity-id");
- }
- public void UpdateHeaderSymbols(Header headerClicked, bool ascending)
- {
- ResetHeaderText();
- var arrow = ascending ? ArrowUp : ArrowDown;
- GetHeader(headerClicked).Text += $" {arrow}";
- }
- private void HeaderClicked(GUIBoundKeyEventArgs args, Header header)
- {
- if (args.Function != EngineKeyFunctions.UIClick)
- {
- return;
- }
- OnHeaderClicked?.Invoke(header);
- args.Handle();
- }
- private void ObjectNameClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.ObjectName);
- }
- private void EntityIDClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.EntityID);
- }
- protected override void Dispose(bool disposing)
- {
- base.Dispose(disposing);
- if (disposing)
- {
- ObjectNameLabel.OnKeyBindDown -= ObjectNameClicked;
- EntityIDLabel.OnKeyBindDown -= EntityIDClicked;
- }
- }
- public enum Header
- {
- ObjectName,
- EntityID
- }
- }
- }
|