Monospace Support for Rich Text (#33830)
* Initial Commit * Moved all this to SS14 on it's own * Added prototype validation
This commit is contained in:
@@ -9,6 +9,7 @@ using Robust.Client.UserInterface.Controls;
|
|||||||
using Robust.Client.UserInterface.XAML;
|
using Robust.Client.UserInterface.XAML;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using Robust.Client.UserInterface.RichText;
|
using Robust.Client.UserInterface.RichText;
|
||||||
|
using Content.Client.UserInterface.RichText;
|
||||||
using Robust.Shared.Input;
|
using Robust.Shared.Input;
|
||||||
|
|
||||||
namespace Content.Client.Paper.UI
|
namespace Content.Client.Paper.UI
|
||||||
@@ -43,7 +44,8 @@ namespace Content.Client.Paper.UI
|
|||||||
typeof(BulletTag),
|
typeof(BulletTag),
|
||||||
typeof(ColorTag),
|
typeof(ColorTag),
|
||||||
typeof(HeadingTag),
|
typeof(HeadingTag),
|
||||||
typeof(ItalicTag)
|
typeof(ItalicTag),
|
||||||
|
typeof(MonoTag)
|
||||||
};
|
};
|
||||||
|
|
||||||
public event Action<string>? OnSaved;
|
public event Action<string>? OnSaved;
|
||||||
|
|||||||
34
Content.Client/UserInterface/RichText/MonoTag.cs
Normal file
34
Content.Client/UserInterface/RichText/MonoTag.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using Robust.Client.ResourceManagement;
|
||||||
|
using Robust.Client.UserInterface.RichText;
|
||||||
|
using Robust.Shared.IoC;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
|
namespace Content.Client.UserInterface.RichText;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the font to a monospaced variant
|
||||||
|
/// </summary>
|
||||||
|
public sealed class MonoTag : IMarkupTag
|
||||||
|
{
|
||||||
|
[ValidatePrototypeId<FontPrototype>] public const string MonoFont = "Monospace";
|
||||||
|
|
||||||
|
[Dependency] private readonly IResourceCache _resourceCache = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
|
||||||
|
public string Name => "mono";
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public void PushDrawContext(MarkupNode node, MarkupDrawingContext context)
|
||||||
|
{
|
||||||
|
var font = FontTag.CreateFont(context.Font, node, _resourceCache, _prototypeManager, MonoFont);
|
||||||
|
context.Font.Push(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public void PopDrawContext(MarkupNode node, MarkupDrawingContext context)
|
||||||
|
{
|
||||||
|
context.Font.Pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user