PDA UI refactor and cartridges (#11335)

* Work on cartridges

* Work on PDA UI

* Work on PDA UIs program list

* Work on PDA UI borders

* Add DeviceNetworkingComponent to the pda base prototype

* Fix submodule version

* Fix cartridge loader ui key

* Fix pda menu xaml

* Implement relaying ui messages

* Finish implementing the notekeeper cartridge

* Fix submodule version

* Fix errors from merging master

* Fix test failing

* Implement setting preinstalled programs

* Add some documentation to CartridgeLoaderSystem

* Add more doc comments

* Add localization to program names

* Implement review suggestions

* Fix background programs receiving events twice when active
This commit is contained in:
Julian Giebel
2022-11-08 21:00:20 +01:00
committed by GitHub
parent 1151ca42e5
commit e11cf969fa
79 changed files with 2323 additions and 94 deletions

View File

@@ -0,0 +1,62 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.CartridgeLoader.Cartridges;
[GenerateTypedNameReferences]
public sealed partial class NotekeeperUiFragment : BoxContainer
{
public event Action<string>? OnNoteAdded;
public event Action<string>? OnNoteRemoved;
public NotekeeperUiFragment()
{
RobustXamlLoader.Load(this);
Orientation = LayoutOrientation.Vertical;
HorizontalExpand = true;
VerticalExpand = true;
Input.OnTextEntered += _ =>
{
AddNote(Input.Text);
OnNoteAdded?.Invoke(Input.Text);
Input.Clear();
};
UpdateState(new List<string>());
}
public void UpdateState(List<string> notes)
{
MessageContainer.RemoveAllChildren();
foreach (var note in notes)
{
AddNote(note);
}
}
private void AddNote(string note)
{
var row = new BoxContainer();
row.HorizontalExpand = true;
row.Orientation = LayoutOrientation.Horizontal;
row.Margin = new Thickness(4);
var label = new Label();
label.Text = note;
label.HorizontalExpand = true;
label.ClipText = true;
var removeButton = new TextureButton();
removeButton.AddStyleClass("windowCloseButton");
removeButton.OnPressed += _ => OnNoteRemoved?.Invoke(label.Text);
row.AddChild(label);
row.AddChild(removeButton);
MessageContainer.AddChild(row);
}
}