| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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.PlayerTab;
- [GenerateTypedNameReferences]
- public sealed partial class PlayerTabHeader : Control
- {
- public event Action<Header>? OnHeaderClicked;
- public PlayerTabHeader()
- {
- RobustXamlLoader.Load(this);
- UsernameLabel.OnKeyBindDown += UsernameClicked;
- CharacterLabel.OnKeyBindDown += CharacterClicked;
- JobLabel.OnKeyBindDown += JobClicked;
- AntagonistLabel.OnKeyBindDown += AntagonistClicked;
- RoleTypeLabel.OnKeyBindDown += RoleTypeClicked;
- PlaytimeLabel.OnKeyBindDown += PlaytimeClicked;
- }
- public Label GetHeader(Header header)
- {
- return header switch
- {
- Header.Username => UsernameLabel,
- Header.Character => CharacterLabel,
- Header.Job => JobLabel,
- Header.Antagonist => AntagonistLabel,
- Header.RoleType => RoleTypeLabel,
- Header.Playtime => PlaytimeLabel,
- _ => throw new ArgumentOutOfRangeException(nameof(header), header, null)
- };
- }
- public void ResetHeaderText()
- {
- UsernameLabel.Text = Loc.GetString("player-tab-username");
- CharacterLabel.Text = Loc.GetString("player-tab-character");
- JobLabel.Text = Loc.GetString("player-tab-job");
- AntagonistLabel.Text = Loc.GetString("player-tab-antagonist");
- RoleTypeLabel.Text = Loc.GetString("player-tab-roletype");
- PlaytimeLabel.Text = Loc.GetString("player-tab-playtime");
- }
- private void HeaderClicked(GUIBoundKeyEventArgs args, Header header)
- {
- if (args.Function != EngineKeyFunctions.UIClick)
- {
- return;
- }
- OnHeaderClicked?.Invoke(header);
- args.Handle();
- }
- private void UsernameClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.Username);
- }
- private void CharacterClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.Character);
- }
- private void JobClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.Job);
- }
- private void AntagonistClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.Antagonist);
- }
- private void RoleTypeClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.RoleType);
- }
- private void PlaytimeClicked(GUIBoundKeyEventArgs args)
- {
- HeaderClicked(args, Header.Playtime);
- }
- protected override void Dispose(bool disposing)
- {
- base.Dispose(disposing);
- if (disposing)
- {
- UsernameLabel.OnKeyBindDown -= UsernameClicked;
- CharacterLabel.OnKeyBindDown -= CharacterClicked;
- JobLabel.OnKeyBindDown -= JobClicked;
- AntagonistLabel.OnKeyBindDown -= AntagonistClicked;
- RoleTypeLabel.OnKeyBindDown -= RoleTypeClicked;
- PlaytimeLabel.OnKeyBindDown -= PlaytimeClicked;
- }
- }
- public enum Header
- {
- Username,
- Character,
- Job,
- Antagonist,
- RoleType,
- Playtime
- }
- }
|