diff --git a/Content.Client/Crayon/UI/CrayonWindow.xaml b/Content.Client/Crayon/UI/CrayonWindow.xaml new file mode 100644 index 0000000000..0a16ab420f --- /dev/null +++ b/Content.Client/Crayon/UI/CrayonWindow.xaml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/Content.Client/Crayon/UI/CrayonWindow.cs b/Content.Client/Crayon/UI/CrayonWindow.xaml.cs similarity index 61% rename from Content.Client/Crayon/UI/CrayonWindow.cs rename to Content.Client/Crayon/UI/CrayonWindow.xaml.cs index 6c6de15a10..7e676e473b 100644 --- a/Content.Client/Crayon/UI/CrayonWindow.cs +++ b/Content.Client/Crayon/UI/CrayonWindow.xaml.cs @@ -1,66 +1,43 @@ using System.Collections.Generic; using Content.Client.Stylesheets; using Content.Shared.Crayon; +using Robust.Client.AutoGenerated; using Robust.Client.Graphics; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; +using Robust.Client.UserInterface.XAML; using Robust.Client.Utility; -using Robust.Shared.Localization; using Robust.Shared.Maths; using Robust.Shared.Utility; using static Robust.Client.UserInterface.Controls.BaseButton; -using static Robust.Client.UserInterface.Controls.BoxContainer; namespace Content.Client.Crayon.UI { - public class CrayonWindow : SS14Window + [GenerateTypedNameReferences] + public partial class CrayonWindow : SS14Window { public CrayonBoundUserInterface Owner { get; } - private readonly LineEdit _search; - private readonly GridContainer _grid; + private Dictionary? _decals; private string? _selected; private Color _color; public CrayonWindow(CrayonBoundUserInterface owner) { - MinSize = SetSize = (250, 300); - Title = Loc.GetString("crayon-window-title"); + RobustXamlLoader.Load(this); + Owner = owner; - var vbox = new BoxContainer - { - Orientation = LayoutOrientation.Vertical - }; - Contents.AddChild(vbox); - - _search = new LineEdit(); - _search.OnTextChanged += (_) => RefreshList(); - vbox.AddChild(_search); - - _grid = new GridContainer() - { - Columns = 6, - }; - var gridScroll = new ScrollContainer() - { - VerticalExpand = true, - Children = - { - _grid - } - }; - vbox.AddChild(gridScroll); + Search.OnTextChanged += _ => RefreshList(); } private void RefreshList() { // Clear - _grid.RemoveAllChildren(); - if (_decals == null) - return; + Grid.RemoveAllChildren(); + if (_decals == null) return; - var filter = _search.Text; + var filter = Search.Text; foreach (var (decal, tex) in _decals) { if (!decal.Contains(filter)) @@ -71,7 +48,7 @@ namespace Content.Client.Crayon.UI TextureNormal = tex, Name = decal, ToolTip = decal, - Modulate = _color + Modulate = _color, }; button.OnPressed += ButtonOnPressed; if (_selected == decal) @@ -84,26 +61,25 @@ namespace Content.Client.Crayon.UI }, Children = { - button - } + button, + }, }; - _grid.AddChild(panelContainer); + Grid.AddChild(panelContainer); } else { - _grid.AddChild(button); + Grid.AddChild(button); } } } private void ButtonOnPressed(ButtonEventArgs obj) { - if (obj.Button.Name != null) - { - Owner.Select(obj.Button.Name); - _selected = obj.Button.Name; - RefreshList(); - } + if (obj.Button.Name == null) return; + + Owner.Select(obj.Button.Name); + _selected = obj.Button.Name; + RefreshList(); } public void UpdateState(CrayonBoundUserInterfaceState state)