forked from liza/Questionable
Use fixed-size icons for validation issue button
This commit is contained in:
parent
a5419bb455
commit
c57395fbfd
@ -7,6 +7,7 @@ using Dalamud.Interface.Colors;
|
|||||||
using Dalamud.Interface.Components;
|
using Dalamud.Interface.Components;
|
||||||
using Dalamud.Interface.Utility;
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
@ -28,6 +29,7 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
private readonly IClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
private readonly ICondition _condition;
|
private readonly ICondition _condition;
|
||||||
private readonly ICommandManager _commandManager;
|
private readonly ICommandManager _commandManager;
|
||||||
|
private readonly IDalamudPluginInterface _pluginInterface;
|
||||||
|
|
||||||
public QuickAccessButtonsComponent(
|
public QuickAccessButtonsComponent(
|
||||||
MovementController movementController,
|
MovementController movementController,
|
||||||
@ -39,7 +41,8 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
JournalProgressWindow journalProgressWindow,
|
JournalProgressWindow journalProgressWindow,
|
||||||
IClientState clientState,
|
IClientState clientState,
|
||||||
ICondition condition,
|
ICondition condition,
|
||||||
ICommandManager commandManager)
|
ICommandManager commandManager,
|
||||||
|
IDalamudPluginInterface pluginInterface)
|
||||||
{
|
{
|
||||||
_movementController = movementController;
|
_movementController = movementController;
|
||||||
_gameFunctions = gameFunctions;
|
_gameFunctions = gameFunctions;
|
||||||
@ -51,6 +54,7 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
_condition = condition;
|
_condition = condition;
|
||||||
_commandManager = commandManager;
|
_commandManager = commandManager;
|
||||||
|
_pluginInterface = pluginInterface;
|
||||||
}
|
}
|
||||||
|
|
||||||
public event EventHandler? Reload;
|
public event EventHandler? Reload;
|
||||||
@ -109,12 +113,14 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
int partsToRender = errorCount == 0 || infoCount == 0 ? 1 : 2;
|
int partsToRender = errorCount == 0 || infoCount == 0 ? 1 : 2;
|
||||||
using var id = ImRaii.PushId("validationissues");
|
using var id = ImRaii.PushId("validationissues");
|
||||||
|
|
||||||
ImGui.PushFont(UiBuilder.IconFont);
|
|
||||||
var icon1 = FontAwesomeIcon.TimesCircle;
|
var icon1 = FontAwesomeIcon.TimesCircle;
|
||||||
var icon2 = FontAwesomeIcon.InfoCircle;
|
var icon2 = FontAwesomeIcon.InfoCircle;
|
||||||
Vector2 iconSize1 = errorCount > 0 ? ImGui.CalcTextSize(icon1.ToIconString()) : Vector2.Zero;
|
Vector2 iconSize1, iconSize2;
|
||||||
Vector2 iconSize2 = infoCount > 0 ? ImGui.CalcTextSize(icon2.ToIconString()) : Vector2.Zero;
|
using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
|
||||||
ImGui.PopFont();
|
{
|
||||||
|
iconSize1 = errorCount > 0 ? ImGui.CalcTextSize(icon1.ToIconString()) : Vector2.Zero;
|
||||||
|
iconSize2 = infoCount > 0 ? ImGui.CalcTextSize(icon2.ToIconString()) : Vector2.Zero;
|
||||||
|
}
|
||||||
|
|
||||||
string text1 = errorCount > 0 ? errorCount.ToString(CultureInfo.InvariantCulture) : string.Empty;
|
string text1 = errorCount > 0 ? errorCount.ToString(CultureInfo.InvariantCulture) : string.Empty;
|
||||||
string text2 = infoCount > 0 ? infoCount.ToString(CultureInfo.InvariantCulture) : string.Empty;
|
string text2 = infoCount > 0 ? infoCount.ToString(CultureInfo.InvariantCulture) : string.Empty;
|
||||||
@ -136,9 +142,11 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
cursor.Y + ImGui.GetStyle().FramePadding.Y);
|
cursor.Y + ImGui.GetStyle().FramePadding.Y);
|
||||||
if (errorCount > 0)
|
if (errorCount > 0)
|
||||||
{
|
{
|
||||||
ImGui.PushFont(UiBuilder.IconFont);
|
using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
|
||||||
dl.AddText(position, ImGui.GetColorU32(ImGuiColors.DalamudRed), icon1.ToIconString());
|
{
|
||||||
ImGui.PopFont();
|
dl.AddText(position, ImGui.GetColorU32(ImGuiColors.DalamudRed), icon1.ToIconString());
|
||||||
|
}
|
||||||
|
|
||||||
position = position with { X = position.X + iconSize1.X + iconPadding };
|
position = position with { X = position.X + iconSize1.X + iconPadding };
|
||||||
|
|
||||||
// Draw the text on the window drawlist
|
// Draw the text on the window drawlist
|
||||||
@ -148,9 +156,11 @@ internal sealed class QuickAccessButtonsComponent
|
|||||||
|
|
||||||
if (infoCount > 0)
|
if (infoCount > 0)
|
||||||
{
|
{
|
||||||
ImGui.PushFont(UiBuilder.IconFont);
|
using (var _ = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
|
||||||
dl.AddText(position, ImGui.GetColorU32(ImGuiColors.ParsedBlue), icon2.ToIconString());
|
{
|
||||||
ImGui.PopFont();
|
dl.AddText(position, ImGui.GetColorU32(ImGuiColors.ParsedBlue), icon2.ToIconString());
|
||||||
|
}
|
||||||
|
|
||||||
position = position with { X = position.X + iconSize2.X + iconPadding };
|
position = position with { X = position.X + iconSize2.X + iconPadding };
|
||||||
|
|
||||||
// Draw the text on the window drawlist
|
// Draw the text on the window drawlist
|
||||||
|
Loading…
Reference in New Issue
Block a user