mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-17 21:37:43 +01:00
Add SeStringEvaluator service (#2188)
* Add SeStringEvaluator service * Move DrawCopyableText into WidgetUtil * Use Icon2RemapTable in SeStringRenderer * Beautify some code * Make sure to use the correct language * Add SeString Creator widget * Fix getting local parameters * Update expressionNames * misc changes * Use InvariantCulture in TryResolveSheet * Add SeStringEvaluatorAgingStep * Fix item id comparisons * Add SheetRedirectResolverAgingStep * Add NounProcessorAgingStep * Update SeString.CreateItemLink This also adds the internal ItemUtil class. * Fix name of SeStringCreator widget * Add Global Parameters tab to SeStringCreatorWidget * Load widgets on demand * Update SeStringCreatorWidget * Resizable SeStringCreatorWidget panels * Update GamepadStateAgingStep * Experimental status was removed in #2144 * Update SheetRedirectResolver, rewrite Noun params * Fixes for 4 am code * Remove incorrect column offset I have no idea how that happened. * Draw names of linked things --------- Co-authored-by: Soreepeong <3614868+Soreepeong@users.noreply.github.com> Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
This commit is contained in:
parent
7cac19ce81
commit
fdbfdbb2cd
36 changed files with 5831 additions and 196 deletions
|
|
@ -57,24 +57,6 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
this.DrawExtendArrayTab();
|
||||
}
|
||||
|
||||
private static void DrawCopyableText(string text, string tooltipText)
|
||||
{
|
||||
ImGuiHelpers.SafeTextWrapped(text);
|
||||
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
||||
ImGui.BeginTooltip();
|
||||
ImGui.TextUnformatted(tooltipText);
|
||||
ImGui.EndTooltip();
|
||||
}
|
||||
|
||||
if (ImGui.IsItemClicked())
|
||||
{
|
||||
ImGui.SetClipboardText(text);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawArrayList(Type? arrayType, int arrayCount, short* arrayKeys, AtkArrayData** arrays, ref int selectedIndex)
|
||||
{
|
||||
using var table = ImRaii.Table("ArkArrayTable", 3, ImGuiTableFlags.ScrollY | ImGuiTableFlags.Borders, new Vector2(300, -1));
|
||||
|
|
@ -162,7 +144,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
ImGui.SameLine();
|
||||
ImGui.TextUnformatted("Address: ");
|
||||
ImGui.SameLine(0, 0);
|
||||
DrawCopyableText($"0x{(nint)array:X}", "Copy address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)array:X}", "Copy address");
|
||||
|
||||
if (array->SubscribedAddonsCount > 0)
|
||||
{
|
||||
|
|
@ -238,22 +220,22 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
var ptr = &array->IntArray[i];
|
||||
|
||||
ImGui.TableNextColumn(); // Address
|
||||
DrawCopyableText($"0x{(nint)ptr:X}", "Copy entry address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)ptr:X}", "Copy entry address");
|
||||
|
||||
ImGui.TableNextColumn(); // Integer
|
||||
DrawCopyableText((*ptr).ToString(), "Copy value");
|
||||
WidgetUtil.DrawCopyableText((*ptr).ToString(), "Copy value");
|
||||
|
||||
ImGui.TableNextColumn(); // Short
|
||||
DrawCopyableText((*(short*)ptr).ToString(), "Copy as short");
|
||||
WidgetUtil.DrawCopyableText((*(short*)ptr).ToString(), "Copy as short");
|
||||
|
||||
ImGui.TableNextColumn(); // Byte
|
||||
DrawCopyableText((*(byte*)ptr).ToString(), "Copy as byte");
|
||||
WidgetUtil.DrawCopyableText((*(byte*)ptr).ToString(), "Copy as byte");
|
||||
|
||||
ImGui.TableNextColumn(); // Float
|
||||
DrawCopyableText((*(float*)ptr).ToString(), "Copy as float");
|
||||
WidgetUtil.DrawCopyableText((*(float*)ptr).ToString(), "Copy as float");
|
||||
|
||||
ImGui.TableNextColumn(); // Hex
|
||||
DrawCopyableText($"0x{array->IntArray[i]:X2}", "Copy Hex");
|
||||
WidgetUtil.DrawCopyableText($"0x{array->IntArray[i]:X2}", "Copy Hex");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -333,11 +315,11 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
if (this.showTextAddress)
|
||||
{
|
||||
if (!isNull)
|
||||
DrawCopyableText($"0x{(nint)array->StringArray[i]:X}", "Copy text address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)array->StringArray[i]:X}", "Copy text address");
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawCopyableText($"0x{(nint)(&array->StringArray[i]):X}", "Copy entry address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)(&array->StringArray[i]):X}", "Copy entry address");
|
||||
}
|
||||
|
||||
ImGui.TableNextColumn(); // Managed
|
||||
|
|
@ -351,7 +333,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
{
|
||||
if (this.showMacroString)
|
||||
{
|
||||
DrawCopyableText(new ReadOnlySeStringSpan(array->StringArray[i]).ToString(), "Copy text");
|
||||
WidgetUtil.DrawCopyableText(new ReadOnlySeStringSpan(array->StringArray[i]).ToString(), "Copy text");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -408,11 +390,11 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
|||
ImGui.TextUnformatted($"#{i}");
|
||||
|
||||
ImGui.TableNextColumn(); // Address
|
||||
DrawCopyableText($"0x{(nint)(&array->DataArray[i]):X}", "Copy entry address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)(&array->DataArray[i]):X}", "Copy entry address");
|
||||
|
||||
ImGui.TableNextColumn(); // Pointer
|
||||
if (!isNull)
|
||||
DrawCopyableText($"0x{(nint)array->DataArray[i]:X}", "Copy address");
|
||||
WidgetUtil.DrawCopyableText($"0x{(nint)array->DataArray[i]:X}", "Copy address");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue