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)