Use new font functionality.

This commit is contained in:
Ottermandias 2024-02-18 12:59:06 +01:00
parent 2e0e125913
commit 80ce6fe21f
2 changed files with 11 additions and 9 deletions

View file

@ -2,6 +2,7 @@ using Dalamud.Game.ClientState.Objects;
using Dalamud.Interface;
using Dalamud.Interface.Components;
using Dalamud.Interface.GameFonts;
using Dalamud.Interface.ManagedFontAtlas;
using Dalamud.Interface.Utility;
using Dalamud.Plugin;
using ImGuiNET;
@ -28,7 +29,7 @@ public sealed class CollectionPanel : IDisposable
private readonly InheritanceUi _inheritanceUi;
private readonly ModStorage _mods;
private readonly GameFontHandle _nameFont;
private readonly IFontHandle _nameFont;
private static readonly IReadOnlyDictionary<CollectionType, (string Name, uint Border)> Buttons = CreateButtons();
private static readonly IReadOnlyList<(CollectionType, bool, bool, string, uint)> AdvancedTree = CreateTree();
@ -47,7 +48,7 @@ public sealed class CollectionPanel : IDisposable
_mods = mods;
_individualAssignmentUi = new IndividualAssignmentUi(communicator, actors, manager);
_inheritanceUi = new InheritanceUi(manager, _selector);
_nameFont = pi.UiBuilder.GetGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Jupiter23));
_nameFont = pi.UiBuilder.FontAtlas.NewGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Jupiter23));
}
public void Dispose()
@ -426,7 +427,7 @@ public sealed class CollectionPanel : IDisposable
ImGui.Dummy(Vector2.One);
using var color = ImRaii.PushColor(ImGuiCol.Border, Colors.MetaInfoText);
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * UiHelpers.Scale);
using var font = ImRaii.PushFont(_nameFont.ImFont, _nameFont.Available);
using var f = _nameFont.Available ? _nameFont.Push() : null;
var name = Name(collection);
var size = ImGui.CalcTextSize(name).X;
var pos = ImGui.GetContentRegionAvail().X - size + ImGui.GetStyle().FramePadding.X * 2;
@ -445,7 +446,7 @@ public sealed class CollectionPanel : IDisposable
if (_inUseCache.Count == 0 && collection.DirectParentOf.Count == 0)
{
ImGui.Dummy(Vector2.One);
using var font = ImRaii.PushFont(_nameFont.ImFont, _nameFont.Available);
using var f = _nameFont.Available ? _nameFont.Push() : null;
ImGuiUtil.DrawTextButton("Collection is not used.", new Vector2(ImGui.GetContentRegionAvail().X, buttonHeight),
Colors.PressEnterWarningBg);
ImGui.Dummy(Vector2.One);
@ -512,7 +513,7 @@ public sealed class CollectionPanel : IDisposable
ImGuiUtil.DrawTextButton("Inherited by", ImGui.GetContentRegionAvail() with { Y = 0 }, 0);
}
using var font = ImRaii.PushFont(_nameFont.ImFont, _nameFont.Available);
using var f = _nameFont.Available ? _nameFont.Push() : null;
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, ImGuiHelpers.GlobalScale);
using var color = ImRaii.PushColor(ImGuiCol.Border, Colors.MetaInfoText);
ImGuiUtil.DrawTextButton(Name(collection.DirectParentOf[0]), Vector2.Zero, 0);

View file

@ -1,4 +1,5 @@
using Dalamud.Interface.GameFonts;
using Dalamud.Interface.ManagedFontAtlas;
using Dalamud.Plugin;
using ImGuiNET;
using OtterGui;
@ -14,14 +15,14 @@ namespace Penumbra.UI.ModsTab;
public class ModPanelHeader : IDisposable
{
/// <summary> We use a big, nice game font for the title. </summary>
private readonly GameFontHandle _nameFont;
private readonly IFontHandle _nameFont;
private readonly CommunicatorService _communicator;
public ModPanelHeader(DalamudPluginInterface pi, CommunicatorService communicator)
{
_communicator = communicator;
_nameFont = pi.UiBuilder.GetGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Jupiter23));
_nameFont = pi.UiBuilder.FontAtlas.NewGameFontHandle(new GameFontStyle(GameFontFamilyAndSize.Jupiter23));
_communicator.ModDataChanged.Subscribe(OnModDataChange, ModDataChanged.Priority.ModPanelHeader);
}
@ -46,7 +47,7 @@ public class ModPanelHeader : IDisposable
var name = $" {mod.Name} ";
if (name != _modName)
{
using var font = ImRaii.PushFont(_nameFont.ImFont, _nameFont.Available);
using var f = _nameFont.Available ? _nameFont.Push() : null;
_modName = name;
_modNameWidth = ImGui.CalcTextSize(name).X + 2 * (ImGui.GetStyle().FramePadding.X + 2 * UiHelpers.Scale);
}
@ -121,7 +122,7 @@ public class ModPanelHeader : IDisposable
using var color = ImRaii.PushColor(ImGuiCol.Border, Colors.MetaInfoText);
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * UiHelpers.Scale);
using var font = ImRaii.PushFont(_nameFont.ImFont, _nameFont.Available);
using var f = _nameFont.Available ? _nameFont.Push() : null;
ImGuiUtil.DrawTextButton(_modName, Vector2.Zero, 0);
return offset;
}