mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-18 05:59:03 +03:00
# Description This ports the Guidebook Tables to allow \<Table\> and \<ColorBox\> embeds in the Guidebook. This just adds extra XML tags to use in rich-text. --- # TODO - [x] Cherry-Pick the PR. - [x] Tested to make sure it works. It does actively work. --- # Media <details><summary><h3>Guidebook Screenshot</h3></summary> <p>  </p> </details> NOTE: This screenshot was taken in the dev-environment. I just copy-pasted my SOP for Alert Levels to check it, since it uses both the \<Table\> and \<ColorBox\> identifiers. --- # Changelog 🆑 - add: Added <Table> and <ColorBox> identifiers. Go wild in SOP! Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> (cherry picked from commit 75bb8d3728441cd7ea57341ba020c80575f35bd9)
50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
using JetBrains.Annotations;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.Controls;
|
|
|
|
namespace Content.Client.Guidebook.Richtext;
|
|
|
|
[UsedImplicitly]
|
|
public sealed class ColorBox : PanelContainer, IDocumentTag
|
|
{
|
|
public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
|
|
{
|
|
HorizontalExpand = true;
|
|
VerticalExpand = true;
|
|
control = this;
|
|
|
|
if (args.TryGetValue("Margin", out var margin))
|
|
Margin = new Thickness(float.Parse(margin));
|
|
|
|
if (args.TryGetValue("HorizontalAlignment", out var halign))
|
|
HorizontalAlignment = Enum.Parse<HAlignment>(halign);
|
|
else
|
|
HorizontalAlignment = HAlignment.Stretch;
|
|
|
|
if (args.TryGetValue("VerticalAlignment", out var valign))
|
|
VerticalAlignment = Enum.Parse<VAlignment>(valign);
|
|
else
|
|
VerticalAlignment = VAlignment.Stretch;
|
|
|
|
var styleBox = new StyleBoxFlat();
|
|
if (args.TryGetValue("Color", out var color))
|
|
styleBox.BackgroundColor = Color.FromHex(color);
|
|
|
|
if (args.TryGetValue("OutlineThickness", out var outlineThickness))
|
|
styleBox.BorderThickness = new Thickness(float.Parse(outlineThickness));
|
|
else
|
|
styleBox.BorderThickness = new Thickness(1);
|
|
|
|
if (args.TryGetValue("OutlineColor", out var outlineColor))
|
|
styleBox.BorderColor = Color.FromHex(outlineColor);
|
|
else
|
|
styleBox.BorderColor = Color.White;
|
|
|
|
PanelOverride = styleBox;
|
|
|
|
return true;
|
|
}
|
|
}
|