ColorBox.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Diagnostics.CodeAnalysis;
  2. using JetBrains.Annotations;
  3. using Robust.Client.Graphics;
  4. using Robust.Client.UserInterface;
  5. using Robust.Client.UserInterface.Controls;
  6. namespace Content.Client.Guidebook.Richtext;
  7. [UsedImplicitly]
  8. public sealed class ColorBox : PanelContainer, IDocumentTag
  9. {
  10. public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
  11. {
  12. HorizontalExpand = true;
  13. VerticalExpand = true;
  14. control = this;
  15. if (args.TryGetValue("Margin", out var margin))
  16. Margin = new Thickness(float.Parse(margin));
  17. if (args.TryGetValue("HorizontalAlignment", out var halign))
  18. HorizontalAlignment = Enum.Parse<HAlignment>(halign);
  19. else
  20. HorizontalAlignment = HAlignment.Stretch;
  21. if (args.TryGetValue("VerticalAlignment", out var valign))
  22. VerticalAlignment = Enum.Parse<VAlignment>(valign);
  23. else
  24. VerticalAlignment = VAlignment.Stretch;
  25. var styleBox = new StyleBoxFlat();
  26. if (args.TryGetValue("Color", out var color))
  27. styleBox.BackgroundColor = Color.FromHex(color);
  28. if (args.TryGetValue("OutlineThickness", out var outlineThickness))
  29. styleBox.BorderThickness = new Thickness(float.Parse(outlineThickness));
  30. else
  31. styleBox.BorderThickness = new Thickness(1);
  32. if (args.TryGetValue("OutlineColor", out var outlineColor))
  33. styleBox.BorderColor = Color.FromHex(outlineColor);
  34. else
  35. styleBox.BorderColor = Color.White;
  36. PanelOverride = styleBox;
  37. return true;
  38. }
  39. }