| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using JetBrains.Annotations;
- using Robust.Client.UserInterface;
- using Robust.Client.UserInterface.Controls;
- using Robust.Shared.Utility;
- using Content.Shared.Paper;
- using static Content.Shared.Paper.PaperComponent;
- namespace Content.Client.Paper.UI;
- [UsedImplicitly]
- public sealed class PaperBoundUserInterface : BoundUserInterface
- {
- [ViewVariables]
- private PaperWindow? _window;
- public PaperBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
- {
- }
- protected override void Open()
- {
- base.Open();
- _window = this.CreateWindow<PaperWindow>();
- _window.OnSaved += InputOnTextEntered;
- if (EntMan.TryGetComponent<PaperComponent>(Owner, out var paper))
- {
- _window.MaxInputLength = paper.ContentSize;
- }
- if (EntMan.TryGetComponent<PaperVisualsComponent>(Owner, out var visuals))
- {
- _window.InitVisuals(Owner, visuals);
- }
- }
- protected override void UpdateState(BoundUserInterfaceState state)
- {
- base.UpdateState(state);
- _window?.Populate((PaperBoundUserInterfaceState) state);
- }
- private void InputOnTextEntered(string text)
- {
- SendMessage(new PaperInputTextMessage(text));
- if (_window != null)
- {
- _window.Input.TextRope = Rope.Leaf.Empty;
- _window.Input.CursorPosition = new TextEdit.CursorPos(0, TextEdit.LineBreakBias.Top);
- }
- }
- }
|