mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
Merge pull request #2428 from Haselnussbomber/lumina-ssb-atktweaks
Some checks are pending
Some checks are pending
Use Luminas SeStringBuilder in DalamudAtkTweaks
This commit is contained in:
commit
49eac894a8
2 changed files with 37 additions and 12 deletions
|
|
@ -1,12 +1,12 @@
|
|||
using CheapLoc;
|
||||
|
||||
using Dalamud.Configuration.Internal;
|
||||
using Dalamud.Game.Text;
|
||||
using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Dalamud.Hooking;
|
||||
using Dalamud.Interface.Internal;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Logging.Internal;
|
||||
using Dalamud.Utility;
|
||||
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||
|
|
@ -185,17 +185,23 @@ internal sealed unsafe class DalamudAtkTweaks : IInternalDisposableService
|
|||
secondStringEntry->ChangeType(ValueType.String);
|
||||
|
||||
const int color = 539;
|
||||
var strPlugins = new SeString().Append(new UIForegroundPayload(color))
|
||||
.Append($"{SeIconChar.BoxedLetterD.ToIconString()} ")
|
||||
.Append(new UIForegroundPayload(0))
|
||||
.Append(this.locDalamudPlugins).Encode();
|
||||
var strSettings = new SeString().Append(new UIForegroundPayload(color))
|
||||
.Append($"{SeIconChar.BoxedLetterD.ToIconString()} ")
|
||||
.Append(new UIForegroundPayload(0))
|
||||
.Append(this.locDalamudSettings).Encode();
|
||||
|
||||
firstStringEntry->SetManagedString(strPlugins);
|
||||
secondStringEntry->SetManagedString(strSettings);
|
||||
using var rssb = new RentedSeStringBuilder();
|
||||
|
||||
firstStringEntry->SetManagedString(rssb.Builder
|
||||
.PushColorType(color)
|
||||
.Append($"{SeIconChar.BoxedLetterD.ToIconString()} ")
|
||||
.PopColorType()
|
||||
.Append(this.locDalamudPlugins)
|
||||
.GetViewAsSpan());
|
||||
|
||||
rssb.Builder.Clear();
|
||||
secondStringEntry->SetManagedString(rssb.Builder
|
||||
.PushColorType(color)
|
||||
.Append($"{SeIconChar.BoxedLetterD.ToIconString()} ")
|
||||
.PopColorType()
|
||||
.Append(this.locDalamudSettings)
|
||||
.GetViewAsSpan());
|
||||
|
||||
// open menu with new size
|
||||
var sizeEntry = &atkValueArgs[4];
|
||||
|
|
|
|||
19
Dalamud/Utility/RentedSeStringBuilder.cs
Normal file
19
Dalamud/Utility/RentedSeStringBuilder.cs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
using Lumina.Text;
|
||||
|
||||
namespace Dalamud.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Provides a temporarily rented <see cref="SeStringBuilder"/> from a shared pool.
|
||||
/// </summary>
|
||||
public readonly struct RentedSeStringBuilder() : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the rented <see cref="SeStringBuilder"/> value from the shared pool.
|
||||
/// </summary>
|
||||
public SeStringBuilder Builder { get; } = SeStringBuilder.SharedPool.Get();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the rented <see cref="SeStringBuilder"/> to the shared pool.
|
||||
/// </summary>
|
||||
public void Dispose() => SeStringBuilder.SharedPool.Return(this.Builder);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue