mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-13 12:14:16 +01:00
Update text-related ImGui calls (#2337)
* Update text-related ImGui calls * Use ImU8String for SafeTextColored * Restore wrapped calls * Update MenuItem call * Use ImGui.Text over ImGui.TextUnformatted * Add ImGui.TextColoredWrapped * Obsolete SafeText helpers * Fix obsoleted calls * SafeTextColored didn't exist before imgui-bindings * Remove %% replacements
This commit is contained in:
parent
f0021bc8f9
commit
58fbff7c56
126 changed files with 1433 additions and 1406 deletions
|
|
@ -43,7 +43,7 @@ public static partial class ImGuiComponents
|
||||||
{
|
{
|
||||||
using (ImRaii.TextWrapPos(ImGui.GetFontSize() * 35.0f))
|
using (ImRaii.TextWrapPos(ImGui.GetFontSize() * 35.0f))
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(helpText);
|
ImGui.Text(helpText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ public static partial class ImGuiComponents
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void Test()
|
public static void Test()
|
||||||
{
|
{
|
||||||
ImGui.Text("You are viewing the test component. The test was a success.");
|
ImGui.Text("You are viewing the test component. The test was a success."u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public static partial class ImGuiComponents
|
||||||
{
|
{
|
||||||
using (ImRaii.Tooltip())
|
using (ImRaii.Tooltip())
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(hint);
|
ImGui.Text(hint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ public partial class FileDialog
|
||||||
if (this.pathInputActivated)
|
if (this.pathInputActivated)
|
||||||
{
|
{
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
ImGui.InputText("##pathedit", ref this.pathInputBuffer, 255);
|
ImGui.InputText("##pathedit"u8, ref this.pathInputBuffer, 255);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -216,7 +216,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Reset to current directory");
|
ImGui.SetTooltip("Reset to current directory"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -226,10 +226,10 @@ public partial class FileDialog
|
||||||
if (!this.createDirectoryMode)
|
if (!this.createDirectoryMode)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("Search :");
|
ImGui.Text("Search :"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.InputText("##InputImGuiFileDialogSearchField", ref this.searchBuffer, 255))
|
if (ImGui.InputText("##InputImGuiFileDialogSearchField"u8, ref this.searchBuffer, 255))
|
||||||
{
|
{
|
||||||
this.ApplyFilteringOnFileList();
|
this.ApplyFilteringOnFileList();
|
||||||
}
|
}
|
||||||
|
|
@ -251,21 +251,21 @@ public partial class FileDialog
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Create Directory");
|
ImGui.SetTooltip("Create Directory"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.createDirectoryMode)
|
if (this.createDirectoryMode)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("New Directory Name");
|
ImGui.Text("New Directory Name"u8);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X - Scaled(100));
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X - Scaled(100));
|
||||||
ImGui.InputText("##DirectoryFileName", ref this.createDirectoryBuffer, 255);
|
ImGui.InputText("##DirectoryFileName"u8, ref this.createDirectoryBuffer, 255);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Ok"))
|
if (ImGui.Button("Ok"u8))
|
||||||
{
|
{
|
||||||
if (this.CreateDir(this.createDirectoryBuffer))
|
if (this.CreateDir(this.createDirectoryBuffer))
|
||||||
{
|
{
|
||||||
|
|
@ -277,7 +277,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Cancel"))
|
if (ImGui.Button("Cancel"u8))
|
||||||
{
|
{
|
||||||
this.createDirectoryMode = false;
|
this.createDirectoryMode = false;
|
||||||
}
|
}
|
||||||
|
|
@ -290,9 +290,9 @@ public partial class FileDialog
|
||||||
|
|
||||||
if (!this.flags.HasFlag(ImGuiFileDialogFlags.HideSideBar))
|
if (!this.flags.HasFlag(ImGuiFileDialogFlags.HideSideBar))
|
||||||
{
|
{
|
||||||
if (ImGui.BeginChild("##FileDialog_ColumnChild", size))
|
if (ImGui.BeginChild("##FileDialog_ColumnChild"u8, size))
|
||||||
{
|
{
|
||||||
ImGui.Columns(2, "##FileDialog_Columns");
|
ImGui.Columns(2, "##FileDialog_Columns"u8);
|
||||||
|
|
||||||
this.DrawSideBar(size with { X = Scaled(150) });
|
this.DrawSideBar(size with { X = Scaled(150) });
|
||||||
|
|
||||||
|
|
@ -314,7 +314,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
private void DrawSideBar(Vector2 size)
|
private void DrawSideBar(Vector2 size)
|
||||||
{
|
{
|
||||||
if (ImGui.BeginChild("##FileDialog_SideBar", size))
|
if (ImGui.BeginChild("##FileDialog_SideBar"u8, size))
|
||||||
{
|
{
|
||||||
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + Scaled(5));
|
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + Scaled(5));
|
||||||
|
|
||||||
|
|
@ -332,7 +332,7 @@ public partial class FileDialog
|
||||||
ImGui.PushFont(InterfaceManager.IconFont);
|
ImGui.PushFont(InterfaceManager.IconFont);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetCursorPosX(0);
|
ImGui.SetCursorPosX(0);
|
||||||
ImGui.TextUnformatted(qa.Icon.ToIconString());
|
ImGui.Text(qa.Icon.ToIconString());
|
||||||
|
|
||||||
ImGui.PopFont();
|
ImGui.PopFont();
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
|
|
@ -344,14 +344,14 @@ public partial class FileDialog
|
||||||
|
|
||||||
private unsafe void DrawFileListView(Vector2 size)
|
private unsafe void DrawFileListView(Vector2 size)
|
||||||
{
|
{
|
||||||
if (!ImGui.BeginChild("##FileDialog_FileList", size))
|
if (!ImGui.BeginChild("##FileDialog_FileList"u8, size))
|
||||||
{
|
{
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ImGuiTableFlags tableFlags = ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg | ImGuiTableFlags.Hideable | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoHostExtendX;
|
const ImGuiTableFlags tableFlags = ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg | ImGuiTableFlags.Hideable | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoHostExtendX;
|
||||||
if (ImGui.BeginTable("##FileTable", 4, tableFlags, size))
|
if (ImGui.BeginTable("##FileTable"u8, 4, tableFlags, size))
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
|
|
||||||
|
|
@ -359,10 +359,10 @@ public partial class FileDialog
|
||||||
var hideSize = this.flags.HasFlag(ImGuiFileDialogFlags.HideColumnSize);
|
var hideSize = this.flags.HasFlag(ImGuiFileDialogFlags.HideColumnSize);
|
||||||
var hideDate = this.flags.HasFlag(ImGuiFileDialogFlags.HideColumnDate);
|
var hideDate = this.flags.HasFlag(ImGuiFileDialogFlags.HideColumnDate);
|
||||||
|
|
||||||
ImGui.TableSetupColumn(" File Name", ImGuiTableColumnFlags.WidthStretch, -1, 0);
|
ImGui.TableSetupColumn(" File Name"u8, ImGuiTableColumnFlags.WidthStretch, -1, 0);
|
||||||
ImGui.TableSetupColumn("Type", ImGuiTableColumnFlags.WidthFixed | (hideType ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 1);
|
ImGui.TableSetupColumn("Type"u8, ImGuiTableColumnFlags.WidthFixed | (hideType ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 1);
|
||||||
ImGui.TableSetupColumn("Size", ImGuiTableColumnFlags.WidthFixed | (hideSize ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 2);
|
ImGui.TableSetupColumn("Size"u8, ImGuiTableColumnFlags.WidthFixed | (hideSize ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 2);
|
||||||
ImGui.TableSetupColumn("Date", ImGuiTableColumnFlags.WidthFixed | (hideDate ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 3);
|
ImGui.TableSetupColumn("Date"u8, ImGuiTableColumnFlags.WidthFixed | (hideDate ? ImGuiTableColumnFlags.DefaultHide : ImGuiTableColumnFlags.None), -1, 3);
|
||||||
|
|
||||||
ImGui.TableNextRow(ImGuiTableRowFlags.Headers);
|
ImGui.TableNextRow(ImGuiTableRowFlags.Headers);
|
||||||
for (var column = 0; column < 4; column++)
|
for (var column = 0; column < 4; column++)
|
||||||
|
|
@ -414,18 +414,18 @@ public partial class FileDialog
|
||||||
|
|
||||||
if (ImGui.TableNextColumn())
|
if (ImGui.TableNextColumn())
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(file.Ext);
|
ImGui.Text(file.Ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.TableNextColumn())
|
if (ImGui.TableNextColumn())
|
||||||
{
|
{
|
||||||
if (file.Type == FileStructType.File)
|
if (file.Type == FileStructType.File)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(file.FormattedFileSize + " ");
|
ImGui.Text(file.FormattedFileSize + " ");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(" ");
|
ImGui.Text(" "u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -433,7 +433,7 @@ public partial class FileDialog
|
||||||
{
|
{
|
||||||
var sz = ImGui.CalcTextSize(file.FileModifiedDate);
|
var sz = ImGui.CalcTextSize(file.FileModifiedDate);
|
||||||
ImGui.SetNextItemWidth(sz.X + Scaled(5));
|
ImGui.SetNextItemWidth(sz.X + Scaled(5));
|
||||||
ImGui.TextUnformatted(file.FileModifiedDate + " ");
|
ImGui.Text(file.FileModifiedDate + " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
|
|
@ -478,7 +478,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
ImGui.PushFont(InterfaceManager.IconFont);
|
ImGui.PushFont(InterfaceManager.IconFont);
|
||||||
|
|
||||||
ImGui.TextUnformatted(icon.ToIconString());
|
ImGui.Text(icon.ToIconString());
|
||||||
ImGui.PopFont();
|
ImGui.PopFont();
|
||||||
|
|
||||||
ImGui.SameLine(Scaled(25f));
|
ImGui.SameLine(Scaled(25f));
|
||||||
|
|
@ -682,11 +682,11 @@ public partial class FileDialog
|
||||||
|
|
||||||
if (this.IsDirectoryMode())
|
if (this.IsDirectoryMode())
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Directory Path :");
|
ImGui.Text("Directory Path :"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("File Name :");
|
ImGui.Text("File Name :"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -701,7 +701,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(width);
|
ImGui.SetNextItemWidth(width);
|
||||||
if (selectOnly) ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
|
if (selectOnly) ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
|
||||||
ImGui.InputText("##FileName", ref this.fileNameBuffer, 255, selectOnly ? ImGuiInputTextFlags.ReadOnly : ImGuiInputTextFlags.None);
|
ImGui.InputText("##FileName"u8, ref this.fileNameBuffer, 255, selectOnly ? ImGuiInputTextFlags.ReadOnly : ImGuiInputTextFlags.None);
|
||||||
if (selectOnly) ImGui.PopStyleVar();
|
if (selectOnly) ImGui.PopStyleVar();
|
||||||
|
|
||||||
if (this.filters.Count > 0)
|
if (this.filters.Count > 0)
|
||||||
|
|
@ -710,7 +710,7 @@ public partial class FileDialog
|
||||||
var needToApplyNewFilter = false;
|
var needToApplyNewFilter = false;
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(Scaled(150f));
|
ImGui.SetNextItemWidth(Scaled(150f));
|
||||||
if (ImGui.BeginCombo("##Filters", this.selectedFilter.Filter, ImGuiComboFlags.None))
|
if (ImGui.BeginCombo("##Filters"u8, this.selectedFilter.Filter, ImGuiComboFlags.None))
|
||||||
{
|
{
|
||||||
var idx = 0;
|
var idx = 0;
|
||||||
foreach (var filter in this.filters)
|
foreach (var filter in this.filters)
|
||||||
|
|
@ -742,7 +742,7 @@ public partial class FileDialog
|
||||||
var disableOk = string.IsNullOrEmpty(this.fileNameBuffer) || (selectOnly && !this.IsItemSelected());
|
var disableOk = string.IsNullOrEmpty(this.fileNameBuffer) || (selectOnly && !this.IsItemSelected());
|
||||||
if (disableOk) ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
|
if (disableOk) ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
|
||||||
|
|
||||||
if (ImGui.Button("Ok") && !disableOk)
|
if (ImGui.Button("Ok"u8) && !disableOk)
|
||||||
{
|
{
|
||||||
this.isOk = true;
|
this.isOk = true;
|
||||||
res = true;
|
res = true;
|
||||||
|
|
@ -752,7 +752,7 @@ public partial class FileDialog
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Cancel"))
|
if (ImGui.Button("Cancel"u8))
|
||||||
{
|
{
|
||||||
this.isOk = false;
|
this.isOk = false;
|
||||||
res = true;
|
res = true;
|
||||||
|
|
@ -805,8 +805,8 @@ public partial class FileDialog
|
||||||
ImGui.OpenPopup(name);
|
ImGui.OpenPopup(name);
|
||||||
if (ImGui.BeginPopupModal(name, ref open, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove))
|
if (ImGui.BeginPopupModal(name, ref open, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove))
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Would you like to Overwrite it ?");
|
ImGui.Text("Would you like to Overwrite it ?"u8);
|
||||||
if (ImGui.Button("Confirm"))
|
if (ImGui.Button("Confirm"u8))
|
||||||
{
|
{
|
||||||
this.okResultToConfirm = false;
|
this.okResultToConfirm = false;
|
||||||
this.isOk = true;
|
this.isOk = true;
|
||||||
|
|
@ -815,7 +815,7 @@ public partial class FileDialog
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Cancel"))
|
if (ImGui.Button("Cancel"u8))
|
||||||
{
|
{
|
||||||
this.okResultToConfirm = false;
|
this.okResultToConfirm = false;
|
||||||
this.isOk = false;
|
this.isOk = false;
|
||||||
|
|
|
||||||
|
|
@ -391,16 +391,16 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
var baseOffset = ImGui.GetCursorPos() - windowPad;
|
var baseOffset = ImGui.GetCursorPos() - windowPad;
|
||||||
|
|
||||||
var actionSize = Vector2.Zero;
|
var actionSize = Vector2.Zero;
|
||||||
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("OK"));
|
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("OK"u8));
|
||||||
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Cancel"));
|
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Cancel"u8));
|
||||||
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Refresh"));
|
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Refresh"u8));
|
||||||
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Reset"));
|
actionSize = Vector2.Max(actionSize, ImGui.CalcTextSize("Reset"u8));
|
||||||
actionSize += framePad * 2;
|
actionSize += framePad * 2;
|
||||||
|
|
||||||
var bodySize = ImGui.GetContentRegionAvail();
|
var bodySize = ImGui.GetContentRegionAvail();
|
||||||
ImGui.SetCursorPos(baseOffset + windowPad);
|
ImGui.SetCursorPos(baseOffset + windowPad);
|
||||||
if (ImGui.BeginChild(
|
if (ImGui.BeginChild(
|
||||||
"##choicesBlock",
|
"##choicesBlock"u8,
|
||||||
bodySize with { X = bodySize.X - windowPad.X - actionSize.X },
|
bodySize with { X = bodySize.X - windowPad.X - actionSize.X },
|
||||||
false,
|
false,
|
||||||
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse))
|
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse))
|
||||||
|
|
@ -412,7 +412,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
|
|
||||||
ImGui.SetCursorPos(baseOffset + windowPad + new Vector2(bodySize.X - actionSize.X, 0));
|
ImGui.SetCursorPos(baseOffset + windowPad + new Vector2(bodySize.X - actionSize.X, 0));
|
||||||
|
|
||||||
if (ImGui.BeginChild("##actionsBlock", bodySize with { X = actionSize.X }))
|
if (ImGui.BeginChild("##actionsBlock"u8, bodySize with { X = actionSize.X }))
|
||||||
{
|
{
|
||||||
this.DrawActionButtons(actionSize);
|
this.DrawActionButtons(actionSize);
|
||||||
}
|
}
|
||||||
|
|
@ -460,25 +460,25 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
var tableSize = ImGui.GetContentRegionAvail() -
|
var tableSize = ImGui.GetContentRegionAvail() -
|
||||||
new Vector2(0, ImGui.GetStyle().WindowPadding.Y + previewHeight + advancedOptionsHeight);
|
new Vector2(0, ImGui.GetStyle().WindowPadding.Y + previewHeight + advancedOptionsHeight);
|
||||||
if (ImGui.BeginChild(
|
if (ImGui.BeginChild(
|
||||||
"##tableContainer",
|
"##tableContainer"u8,
|
||||||
tableSize,
|
tableSize,
|
||||||
false,
|
false,
|
||||||
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse)
|
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse)
|
||||||
&& ImGui.BeginTable("##table", 3, ImGuiTableFlags.None))
|
&& ImGui.BeginTable("##table"u8, 3, ImGuiTableFlags.None))
|
||||||
{
|
{
|
||||||
ImGui.PushStyleColor(ImGuiCol.TableHeaderBg, Vector4.Zero);
|
ImGui.PushStyleColor(ImGuiCol.TableHeaderBg, Vector4.Zero);
|
||||||
ImGui.PushStyleColor(ImGuiCol.HeaderHovered, Vector4.Zero);
|
ImGui.PushStyleColor(ImGuiCol.HeaderHovered, Vector4.Zero);
|
||||||
ImGui.PushStyleColor(ImGuiCol.HeaderActive, Vector4.Zero);
|
ImGui.PushStyleColor(ImGuiCol.HeaderActive, Vector4.Zero);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Font:##familyColumn",
|
"Font:##familyColumn"u8,
|
||||||
ImGuiTableColumnFlags.WidthStretch,
|
ImGuiTableColumnFlags.WidthStretch,
|
||||||
0.4f);
|
0.4f);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Style:##fontColumn",
|
"Style:##fontColumn"u8,
|
||||||
ImGuiTableColumnFlags.WidthStretch,
|
ImGuiTableColumnFlags.WidthStretch,
|
||||||
0.4f);
|
0.4f);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Size:##sizeColumn",
|
"Size:##sizeColumn"u8,
|
||||||
ImGuiTableColumnFlags.WidthStretch,
|
ImGuiTableColumnFlags.WidthStretch,
|
||||||
0.2f);
|
0.2f);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
@ -510,7 +510,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
|
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
|
|
||||||
ImGui.Checkbox("Show advanced options", ref this.useAdvancedOptions);
|
ImGui.Checkbox("Show advanced options"u8, ref this.useAdvancedOptions);
|
||||||
if (this.useAdvancedOptions)
|
if (this.useAdvancedOptions)
|
||||||
{
|
{
|
||||||
if (this.DrawAdvancedOptions())
|
if (this.DrawAdvancedOptions())
|
||||||
|
|
@ -539,19 +539,19 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
if (this.fontHandle is null)
|
if (this.fontHandle is null)
|
||||||
{
|
{
|
||||||
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
||||||
ImGui.TextUnformatted("Select a font.");
|
ImGui.Text("Select a font."u8);
|
||||||
}
|
}
|
||||||
else if (this.fontHandle.LoadException is { } loadException)
|
else if (this.fontHandle.LoadException is { } loadException)
|
||||||
{
|
{
|
||||||
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
|
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
|
||||||
ImGui.TextUnformatted(loadException.Message);
|
ImGui.Text(loadException.Message);
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
}
|
}
|
||||||
else if (!this.fontHandle.Available)
|
else if (!this.fontHandle.Available)
|
||||||
{
|
{
|
||||||
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
ImGui.SetCursorPos(ImGui.GetCursorPos() + ImGui.GetStyle().FramePadding);
|
||||||
ImGui.TextUnformatted("Loading font...");
|
ImGui.Text("Loading font..."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -571,14 +571,14 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
if (this.fontFamilies?.IsCompleted is not true)
|
if (this.fontFamilies?.IsCompleted is not true)
|
||||||
{
|
{
|
||||||
ImGui.SetScrollY(0);
|
ImGui.SetScrollY(0);
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.fontFamilies.IsCompletedSuccessfully)
|
if (!this.fontFamilies.IsCompletedSuccessfully)
|
||||||
{
|
{
|
||||||
ImGui.SetScrollY(0);
|
ImGui.SetScrollY(0);
|
||||||
ImGui.TextUnformatted("Error: " + this.fontFamilies.Exception);
|
ImGui.Text("Error: " + this.fontFamilies.Exception);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -593,7 +593,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
|
|
||||||
var changed = false;
|
var changed = false;
|
||||||
if (ImGui.InputText(
|
if (ImGui.InputText(
|
||||||
"##familySearch",
|
"##familySearch"u8,
|
||||||
ref this.familySearch,
|
ref this.familySearch,
|
||||||
255,
|
255,
|
||||||
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory,
|
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory,
|
||||||
|
|
@ -676,7 +676,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginChild("##familyList", ImGui.GetContentRegionAvail()))
|
if (ImGui.BeginChild("##familyList"u8, ImGui.GetContentRegionAvail()))
|
||||||
{
|
{
|
||||||
var clipper = ImGui.ImGuiListClipper();
|
var clipper = ImGui.ImGuiListClipper();
|
||||||
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
||||||
|
|
@ -695,7 +695,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(" ");
|
ImGui.Text(" "u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -735,13 +735,13 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
if (this.fontFamilies?.IsCompleted is not true)
|
if (this.fontFamilies?.IsCompleted is not true)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.fontFamilies.IsCompletedSuccessfully)
|
if (!this.fontFamilies.IsCompletedSuccessfully)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Error: " + this.fontFamilies.Exception);
|
ImGui.Text("Error: " + this.fontFamilies.Exception);
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -761,7 +761,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.InputText(
|
if (ImGui.InputText(
|
||||||
"##fontSearch",
|
"##fontSearch"u8,
|
||||||
ref this.fontSearch,
|
ref this.fontSearch,
|
||||||
255,
|
255,
|
||||||
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory,
|
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory,
|
||||||
|
|
@ -843,7 +843,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginChild("##fontList"))
|
if (ImGui.BeginChild("##fontList"u8))
|
||||||
{
|
{
|
||||||
var clipper = ImGui.ImGuiListClipper();
|
var clipper = ImGui.ImGuiListClipper();
|
||||||
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
||||||
|
|
@ -862,7 +862,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(" ");
|
ImGui.Text(" "u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -909,7 +909,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.InputText(
|
if (ImGui.InputText(
|
||||||
"##fontSizeSearch",
|
"##fontSizeSearch"u8,
|
||||||
ref this.fontSizeSearch,
|
ref this.fontSizeSearch,
|
||||||
255,
|
255,
|
||||||
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory |
|
ImGuiInputTextFlags.AutoSelectAll | ImGuiInputTextFlags.CallbackHistory |
|
||||||
|
|
@ -947,7 +947,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginChild("##fontSizeList"))
|
if (ImGui.BeginChild("##fontSizeList"u8))
|
||||||
{
|
{
|
||||||
var clipper = ImGui.ImGuiListClipper();
|
var clipper = ImGui.ImGuiListClipper();
|
||||||
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
var lineHeight = ImGui.GetTextLineHeightWithSpacing();
|
||||||
|
|
@ -966,7 +966,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(" ");
|
ImGui.Text(" "u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1010,36 +1010,36 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
var changed = false;
|
var changed = false;
|
||||||
|
|
||||||
if (!ImGui.BeginTable("##advancedOptions", 4))
|
if (!ImGui.BeginTable("##advancedOptions"u8, 4))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var labelWidth = ImGui.CalcTextSize("Letter Spacing:").X;
|
var labelWidth = ImGui.CalcTextSize("Letter Spacing:"u8).X;
|
||||||
labelWidth = Math.Max(labelWidth, ImGui.CalcTextSize("Offset:").X);
|
labelWidth = Math.Max(labelWidth, ImGui.CalcTextSize("Offset:"u8).X);
|
||||||
labelWidth = Math.Max(labelWidth, ImGui.CalcTextSize("Line Height:").X);
|
labelWidth = Math.Max(labelWidth, ImGui.CalcTextSize("Line Height:"u8).X);
|
||||||
labelWidth += ImGui.GetStyle().FramePadding.X;
|
labelWidth += ImGui.GetStyle().FramePadding.X;
|
||||||
|
|
||||||
var inputWidth = ImGui.CalcTextSize("000.000").X + (ImGui.GetStyle().FramePadding.X * 2);
|
var inputWidth = ImGui.CalcTextSize("000.000"u8).X + (ImGui.GetStyle().FramePadding.X * 2);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"##inputLabelColumn",
|
"##inputLabelColumn"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
labelWidth);
|
labelWidth);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"##input1Column",
|
"##input1Column"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
inputWidth);
|
inputWidth);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"##input2Column",
|
"##input2Column"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
inputWidth);
|
inputWidth);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"##fillerColumn",
|
"##fillerColumn"u8,
|
||||||
ImGuiTableColumnFlags.WidthStretch,
|
ImGuiTableColumnFlags.WidthStretch,
|
||||||
1f);
|
1f);
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted("Offset:");
|
ImGui.Text("Offset:"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (FloatInputText(
|
if (FloatInputText(
|
||||||
|
|
@ -1070,7 +1070,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted("Letter Spacing:");
|
ImGui.Text("Letter Spacing:"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (FloatInputText(
|
if (FloatInputText(
|
||||||
|
|
@ -1085,7 +1085,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted("Line Height:");
|
ImGui.Text("Line Height:"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (FloatInputText(
|
if (FloatInputText(
|
||||||
|
|
@ -1159,15 +1159,15 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
|| this.FontFamilyExcludeFilter?.Invoke(this.selectedFont.FontId.Family) is true)
|
|| this.FontFamilyExcludeFilter?.Invoke(this.selectedFont.FontId.Family) is true)
|
||||||
{
|
{
|
||||||
ImGui.BeginDisabled();
|
ImGui.BeginDisabled();
|
||||||
ImGui.Button("OK", buttonSize);
|
ImGui.Button("OK"u8, buttonSize);
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
}
|
}
|
||||||
else if (ImGui.Button("OK", buttonSize))
|
else if (ImGui.Button("OK"u8, buttonSize))
|
||||||
{
|
{
|
||||||
this.tcs.SetResult(this.selectedFont);
|
this.tcs.SetResult(this.selectedFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Cancel", buttonSize))
|
if (ImGui.Button("Cancel"u8, buttonSize))
|
||||||
{
|
{
|
||||||
this.Cancel();
|
this.Cancel();
|
||||||
}
|
}
|
||||||
|
|
@ -1178,10 +1178,10 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
{
|
{
|
||||||
isFirst = doRefresh = this.fontFamilies is null;
|
isFirst = doRefresh = this.fontFamilies is null;
|
||||||
ImGui.BeginDisabled();
|
ImGui.BeginDisabled();
|
||||||
ImGui.Button("Refresh", buttonSize);
|
ImGui.Button("Refresh"u8, buttonSize);
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
}
|
}
|
||||||
else if (ImGui.Button("Refresh", buttonSize))
|
else if (ImGui.Button("Refresh"u8, buttonSize))
|
||||||
{
|
{
|
||||||
doRefresh = true;
|
doRefresh = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1218,7 +1218,7 @@ public sealed class SingleFontChooserDialog : IDisposable
|
||||||
|
|
||||||
if (this.useAdvancedOptions)
|
if (this.useAdvancedOptions)
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Reset", buttonSize))
|
if (ImGui.Button("Reset"u8, buttonSize))
|
||||||
{
|
{
|
||||||
this.selectedFont = this.selectedFont with
|
this.selectedFont = this.selectedFont with
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -383,7 +383,7 @@ internal sealed partial class ActiveNotification
|
||||||
ImGui.PushStyleVar(ImGuiStyleVar.Alpha, ImGui.GetStyle().Alpha * relativeOpacity);
|
ImGui.PushStyleVar(ImGuiStyleVar.Alpha, ImGui.GetStyle().Alpha * relativeOpacity);
|
||||||
ImGui.SetCursorPos(new(NotificationConstants.ScaledWindowPadding));
|
ImGui.SetCursorPos(new(NotificationConstants.ScaledWindowPadding));
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.WhenTextColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.WhenTextColor);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
ImGui.IsWindowHovered(ImGuiHoveredFlags.AllowWhenBlockedByActiveItem)
|
ImGui.IsWindowHovered(ImGuiHoveredFlags.AllowWhenBlockedByActiveItem)
|
||||||
? this.CreatedAt.LocAbsolute()
|
? this.CreatedAt.LocAbsolute()
|
||||||
: ReducedMotions
|
: ReducedMotions
|
||||||
|
|
@ -404,7 +404,7 @@ internal sealed partial class ActiveNotification
|
||||||
var agoSize = ImGui.CalcTextSize(agoText);
|
var agoSize = ImGui.CalcTextSize(agoText);
|
||||||
ImGui.SetCursorPos(new(width - ((height + agoSize.X) / 2f), NotificationConstants.ScaledWindowPadding));
|
ImGui.SetCursorPos(new(width - ((height + agoSize.X) / 2f), NotificationConstants.ScaledWindowPadding));
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.WhenTextColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.WhenTextColor);
|
||||||
ImGui.TextUnformatted(agoText);
|
ImGui.Text(agoText);
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
|
|
||||||
this.DrawIcon(
|
this.DrawIcon(
|
||||||
|
|
@ -415,7 +415,7 @@ internal sealed partial class ActiveNotification
|
||||||
windowPos + new Vector2(width - height, height),
|
windowPos + new Vector2(width - height, height),
|
||||||
true);
|
true);
|
||||||
ImGui.SetCursorPos(new(height, NotificationConstants.ScaledWindowPadding));
|
ImGui.SetCursorPos(new(height, NotificationConstants.ScaledWindowPadding));
|
||||||
ImGui.TextUnformatted(this.EffectiveMinimizedText);
|
ImGui.Text(this.EffectiveMinimizedText);
|
||||||
ImGui.PopClipRect();
|
ImGui.PopClipRect();
|
||||||
|
|
||||||
ImGui.PopStyleVar();
|
ImGui.PopStyleVar();
|
||||||
|
|
@ -502,13 +502,13 @@ internal sealed partial class ActiveNotification
|
||||||
if ((this.Title ?? this.Type.ToTitle()) is { } title)
|
if ((this.Title ?? this.Type.ToTitle()) is { } title)
|
||||||
{
|
{
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.TitleTextColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.TitleTextColor);
|
||||||
ImGui.TextUnformatted(title);
|
ImGui.Text(title);
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.BlameTextColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.BlameTextColor);
|
||||||
ImGui.SetCursorPos(minCoord with { Y = ImGui.GetCursorPosY() });
|
ImGui.SetCursorPos(minCoord with { Y = ImGui.GetCursorPosY() });
|
||||||
ImGui.TextUnformatted(this.InitiatorString);
|
ImGui.Text(this.InitiatorString);
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
|
|
||||||
ImGui.PopTextWrapPos();
|
ImGui.PopTextWrapPos();
|
||||||
|
|
@ -520,7 +520,7 @@ internal sealed partial class ActiveNotification
|
||||||
ImGui.SetCursorPos(minCoord);
|
ImGui.SetCursorPos(minCoord);
|
||||||
ImGui.PushTextWrapPos(minCoord.X + width);
|
ImGui.PushTextWrapPos(minCoord.X + width);
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.BodyTextColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, NotificationConstants.BodyTextColor);
|
||||||
ImGui.TextUnformatted(this.Content);
|
ImGui.Text(this.Content);
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
ImGui.PopTextWrapPos();
|
ImGui.PopTextWrapPos();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ internal class NotificationPositionChooser
|
||||||
ImGui.SetNextWindowBgAlpha(0.6f);
|
ImGui.SetNextWindowBgAlpha(0.6f);
|
||||||
|
|
||||||
ImGui.Begin(
|
ImGui.Begin(
|
||||||
"###NotificationPositionChooser",
|
"###NotificationPositionChooser"u8,
|
||||||
ImGuiWindowFlags.NoDocking | ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoMove |
|
ImGuiWindowFlags.NoDocking | ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoMove |
|
||||||
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNav);
|
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNav);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -203,7 +203,7 @@ internal unsafe class SeStringRenderer : IInternalDisposableService
|
||||||
|
|
||||||
var cursorPosBackup = ImGui.GetCursorScreenPos();
|
var cursorPosBackup = ImGui.GetCursorScreenPos();
|
||||||
ImGui.SetCursorScreenPos(state.ScreenOffset + f.Offset);
|
ImGui.SetCursorScreenPos(state.ScreenOffset + f.Offset);
|
||||||
clicked = ImGui.InvisibleButton("##link", sz, buttonFlags);
|
clicked = ImGui.InvisibleButton("##link"u8, sz, buttonFlags);
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
hoveredLinkOffset = f.Link;
|
hoveredLinkOffset = f.Link;
|
||||||
if (ImGui.IsItemActive())
|
if (ImGui.IsItemActive())
|
||||||
|
|
@ -218,7 +218,7 @@ internal unsafe class SeStringRenderer : IInternalDisposableService
|
||||||
if (!invisibleButtonDrawn)
|
if (!invisibleButtonDrawn)
|
||||||
{
|
{
|
||||||
ImGui.SetCursorScreenPos(state.ScreenOffset);
|
ImGui.SetCursorScreenPos(state.ScreenOffset);
|
||||||
clicked = ImGui.InvisibleButton("##text", itemSize, buttonFlags);
|
clicked = ImGui.InvisibleButton("##text"u8, itemSize, buttonFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
|
|
|
||||||
|
|
@ -606,7 +606,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.SetNextWindowBgAlpha(Math.Min(this.creditsDarkeningAnimation.EasedPoint.X, CreditsDarkeningMaxAlpha));
|
ImGui.SetNextWindowBgAlpha(Math.Min(this.creditsDarkeningAnimation.EasedPoint.X, CreditsDarkeningMaxAlpha));
|
||||||
|
|
||||||
ImGui.Begin(
|
ImGui.Begin(
|
||||||
"###CreditsDarkenWindow",
|
"###CreditsDarkenWindow"u8,
|
||||||
ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoDocking | ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoMove |
|
ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoDocking | ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoMove |
|
||||||
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoBringToFrontOnFocus |
|
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoBringToFrontOnFocus |
|
||||||
ImGuiWindowFlags.NoNav);
|
ImGuiWindowFlags.NoNav);
|
||||||
|
|
@ -635,10 +635,10 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.SetNextWindowPos(windowPos, ImGuiCond.Always);
|
ImGui.SetNextWindowPos(windowPos, ImGuiCond.Always);
|
||||||
ImGui.SetNextWindowBgAlpha(1);
|
ImGui.SetNextWindowBgAlpha(1);
|
||||||
|
|
||||||
if (ImGui.Begin("DevMenu Opener", ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoBackground | ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoSavedSettings))
|
if (ImGui.Begin("DevMenu Opener"u8, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoBackground | ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoSavedSettings))
|
||||||
{
|
{
|
||||||
ImGui.SetNextItemWidth(40);
|
ImGui.SetNextItemWidth(40);
|
||||||
if (ImGui.Button("###devMenuOpener", new Vector2(20, 20)))
|
if (ImGui.Button("###devMenuOpener"u8, new Vector2(20, 20)))
|
||||||
this.isImGuiDrawDevMenu = true;
|
this.isImGuiDrawDevMenu = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -650,13 +650,13 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.SetNextWindowBgAlpha(1);
|
ImGui.SetNextWindowBgAlpha(1);
|
||||||
|
|
||||||
if (ImGui.Begin(
|
if (ImGui.Begin(
|
||||||
"Disclaimer",
|
"Disclaimer"u8,
|
||||||
ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoBackground |
|
ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoBackground |
|
||||||
ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove |
|
ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoMove |
|
||||||
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoMouseInputs |
|
ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoMouseInputs |
|
||||||
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoSavedSettings))
|
ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoSavedSettings))
|
||||||
{
|
{
|
||||||
ImGui.TextColored(ImGuiColors.DalamudRed, "Is force MinHook!");
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudRed, "Is force MinHook!"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.End();
|
ImGui.End();
|
||||||
|
|
@ -672,11 +672,11 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
{
|
{
|
||||||
var pluginManager = Service<PluginManager>.Get();
|
var pluginManager = Service<PluginManager>.Get();
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Dalamud"))
|
if (ImGui.BeginMenu("Dalamud"u8))
|
||||||
{
|
{
|
||||||
ImGui.MenuItem("Draw dev menu", string.Empty, ref this.isImGuiDrawDevMenu);
|
ImGui.MenuItem("Draw dev menu"u8, (byte*)null, ref this.isImGuiDrawDevMenu);
|
||||||
var devBarAtStartup = this.configuration.DevBarOpenAtStartup;
|
|
||||||
if (ImGui.MenuItem("Draw dev menu at startup", string.Empty, ref devBarAtStartup))
|
if (ImGui.MenuItem("Draw dev menu at startup"u8, (byte*)null, this.configuration.DevBarOpenAtStartup))
|
||||||
{
|
{
|
||||||
this.configuration.DevBarOpenAtStartup ^= true;
|
this.configuration.DevBarOpenAtStartup ^= true;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
|
|
@ -684,16 +684,16 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Log window"))
|
if (ImGui.MenuItem("Open Log window"u8))
|
||||||
{
|
{
|
||||||
this.OpenLogWindow();
|
this.OpenLogWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Set log level..."))
|
if (ImGui.BeginMenu("Set log level..."u8))
|
||||||
{
|
{
|
||||||
foreach (var logLevel in Enum.GetValues(typeof(LogEventLevel)).Cast<LogEventLevel>())
|
foreach (var logLevel in Enum.GetValues(typeof(LogEventLevel)).Cast<LogEventLevel>())
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem(logLevel + "##logLevelSwitch", string.Empty, EntryPoint.LogLevelSwitch.MinimumLevel == logLevel))
|
if (ImGui.MenuItem(logLevel + "##logLevelSwitch", (byte*)null, EntryPoint.LogLevelSwitch.MinimumLevel == logLevel))
|
||||||
{
|
{
|
||||||
EntryPoint.LogLevelSwitch.MinimumLevel = logLevel;
|
EntryPoint.LogLevelSwitch.MinimumLevel = logLevel;
|
||||||
this.configuration.LogLevel = logLevel;
|
this.configuration.LogLevel = logLevel;
|
||||||
|
|
@ -704,10 +704,9 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
var logSynchronously = this.configuration.LogSynchronously;
|
if (ImGui.MenuItem("Log Synchronously"u8, (byte*)null, this.configuration.LogSynchronously))
|
||||||
if (ImGui.MenuItem("Log Synchronously", (byte*)null, ref logSynchronously))
|
|
||||||
{
|
{
|
||||||
this.configuration.LogSynchronously = logSynchronously;
|
this.configuration.LogSynchronously ^= true;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
|
|
||||||
EntryPoint.InitLogging(
|
EntryPoint.InitLogging(
|
||||||
|
|
@ -719,78 +718,78 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Data window"))
|
if (ImGui.MenuItem("Open Data window"u8))
|
||||||
{
|
{
|
||||||
this.OpenDataWindow();
|
this.OpenDataWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Settings window"))
|
if (ImGui.MenuItem("Open Settings window"u8))
|
||||||
{
|
{
|
||||||
this.OpenSettings();
|
this.OpenSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Changelog window"))
|
if (ImGui.MenuItem("Open Changelog window"u8))
|
||||||
{
|
{
|
||||||
this.OpenChangelogWindow();
|
this.OpenChangelogWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Components Demo"))
|
if (ImGui.MenuItem("Open Components Demo"u8))
|
||||||
{
|
{
|
||||||
this.OpenComponentDemoWindow();
|
this.OpenComponentDemoWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Colors Demo"))
|
if (ImGui.MenuItem("Open Colors Demo"u8))
|
||||||
{
|
{
|
||||||
this.OpenColorsDemoWindow();
|
this.OpenColorsDemoWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Self-Test"))
|
if (ImGui.MenuItem("Open Self-Test"u8))
|
||||||
{
|
{
|
||||||
this.OpenSelfTest();
|
this.OpenSelfTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Style Editor"))
|
if (ImGui.MenuItem("Open Style Editor"u8))
|
||||||
{
|
{
|
||||||
this.OpenStyleEditor();
|
this.OpenStyleEditor();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Profiler"))
|
if (ImGui.MenuItem("Open Profiler"u8))
|
||||||
{
|
{
|
||||||
this.OpenProfiler();
|
this.OpenProfiler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Hitch Settings"))
|
if (ImGui.MenuItem("Open Hitch Settings"u8))
|
||||||
{
|
{
|
||||||
this.OpenHitchSettings();
|
this.OpenHitchSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Unload Dalamud"))
|
if (ImGui.MenuItem("Unload Dalamud"u8))
|
||||||
{
|
{
|
||||||
Service<Dalamud>.Get().Unload();
|
Service<Dalamud>.Get().Unload();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Restart game"))
|
if (ImGui.MenuItem("Restart game"u8))
|
||||||
{
|
{
|
||||||
Dalamud.RestartGame();
|
Dalamud.RestartGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Kill game"))
|
if (ImGui.MenuItem("Kill game"u8))
|
||||||
{
|
{
|
||||||
Process.GetCurrentProcess().Kill();
|
Process.GetCurrentProcess().Kill();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Crash game"))
|
if (ImGui.BeginMenu("Crash game"u8))
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("Access Violation"))
|
if (ImGui.MenuItem("Access Violation"u8))
|
||||||
{
|
{
|
||||||
Marshal.ReadByte(IntPtr.Zero);
|
Marshal.ReadByte(IntPtr.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Set UiModule to NULL"))
|
if (ImGui.MenuItem("Set UiModule to NULL"u8))
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
|
|
@ -799,7 +798,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Set UiModule to invalid ptr"))
|
if (ImGui.MenuItem("Set UiModule to invalid ptr"u8))
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
|
|
@ -808,7 +807,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Deref nullptr in Hook"))
|
if (ImGui.MenuItem("Deref nullptr in Hook"u8))
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
|
|
@ -823,7 +822,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Cause CLR fastfail"))
|
if (ImGui.MenuItem("Cause CLR fastfail"u8))
|
||||||
{
|
{
|
||||||
unsafe void CauseFastFail()
|
unsafe void CauseFastFail()
|
||||||
{
|
{
|
||||||
|
|
@ -835,7 +834,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
Service<Game.Framework>.Get().RunOnTick(CauseFastFail);
|
Service<Game.Framework>.Get().RunOnTick(CauseFastFail);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Cause ImGui assert"))
|
if (ImGui.MenuItem("Cause ImGui assert"u8))
|
||||||
{
|
{
|
||||||
ImGui.PopStyleVar();
|
ImGui.PopStyleVar();
|
||||||
ImGui.PopStyleVar();
|
ImGui.PopStyleVar();
|
||||||
|
|
@ -844,49 +843,47 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Report crashes at shutdown", (byte*)null, this.configuration.ReportShutdownCrashes))
|
if (ImGui.MenuItem("Report crashes at shutdown"u8, (byte*)null, this.configuration.ReportShutdownCrashes))
|
||||||
{
|
{
|
||||||
this.configuration.ReportShutdownCrashes = !this.configuration.ReportShutdownCrashes;
|
this.configuration.ReportShutdownCrashes ^= true;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Dalamud branch switcher"))
|
if (ImGui.MenuItem("Open Dalamud branch switcher"u8))
|
||||||
{
|
{
|
||||||
this.OpenBranchSwitcher();
|
this.OpenBranchSwitcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.MenuItem(this.dalamud.StartInfo.GameVersion?.ToString() ?? "Unknown version", false, false);
|
ImGui.MenuItem(this.dalamud.StartInfo.GameVersion?.ToString() ?? "Unknown version", false);
|
||||||
ImGui.MenuItem($"D: {Util.GetScmVersion()} CS: {Util.GetGitHashClientStructs()}[{FFXIVClientStructs.ThisAssembly.Git.Commits}]", false, false);
|
ImGui.MenuItem($"D: {Util.GetScmVersion()} CS: {Util.GetGitHashClientStructs()}[{FFXIVClientStructs.ThisAssembly.Git.Commits}]", false);
|
||||||
ImGui.MenuItem($"CLR: {Environment.Version}", false, false);
|
ImGui.MenuItem($"CLR: {Environment.Version}", false);
|
||||||
|
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("GUI"))
|
if (ImGui.BeginMenu("GUI"u8))
|
||||||
{
|
{
|
||||||
ImGui.MenuItem("Use Monospace font for following windows", string.Empty, ref this.isImGuiTestWindowsInMonospace);
|
ImGui.MenuItem("Use Monospace font for following windows"u8, (byte*)null, ref this.isImGuiTestWindowsInMonospace);
|
||||||
ImGui.MenuItem("Draw ImGui demo", string.Empty, ref this.isImGuiDrawDemoWindow);
|
ImGui.MenuItem("Draw ImGui demo"u8, (byte*)null, ref this.isImGuiDrawDemoWindow);
|
||||||
ImGui.MenuItem("Draw ImPlot demo", string.Empty, ref this.isImPlotDrawDemoWindow);
|
ImGui.MenuItem("Draw ImPlot demo"u8, (byte*)null, ref this.isImPlotDrawDemoWindow);
|
||||||
ImGui.MenuItem("Draw metrics", string.Empty, ref this.isImGuiDrawMetricsWindow);
|
ImGui.MenuItem("Draw metrics"u8, (byte*)null, ref this.isImGuiDrawMetricsWindow);
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
var showAsserts = this.interfaceManager.ShowAsserts;
|
if (ImGui.MenuItem("Enable assert popups"u8, (byte*)null, this.interfaceManager.ShowAsserts))
|
||||||
if (ImGui.MenuItem("Enable assert popups", string.Empty, ref showAsserts))
|
|
||||||
{
|
{
|
||||||
this.interfaceManager.ShowAsserts = showAsserts;
|
this.interfaceManager.ShowAsserts ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var enableVerboseAsserts = this.interfaceManager.EnableVerboseAssertLogging;
|
if (ImGui.MenuItem("Enable verbose assert logging"u8, (byte*)null, this.interfaceManager.EnableVerboseAssertLogging))
|
||||||
if (ImGui.MenuItem("Enable verbose assert logging", string.Empty, ref enableVerboseAsserts))
|
|
||||||
{
|
{
|
||||||
this.interfaceManager.EnableVerboseAssertLogging = enableVerboseAsserts;
|
this.interfaceManager.EnableVerboseAssertLogging ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var assertsEnabled = this.configuration.ImGuiAssertsEnabledAtStartup ?? false;
|
var assertsEnabled = this.configuration.ImGuiAssertsEnabledAtStartup ?? false;
|
||||||
if (ImGui.MenuItem("Enable asserts at startup", (byte*)null, assertsEnabled))
|
if (ImGui.MenuItem("Enable asserts at startup"u8, (byte*)null, assertsEnabled))
|
||||||
{
|
{
|
||||||
this.configuration.ImGuiAssertsEnabledAtStartup = !assertsEnabled;
|
this.configuration.ImGuiAssertsEnabledAtStartup = !assertsEnabled;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
|
|
@ -894,17 +891,17 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Clear focus"))
|
if (ImGui.MenuItem("Clear focus"u8))
|
||||||
{
|
{
|
||||||
ImGui.SetWindowFocus((byte*)null);
|
ImGui.SetWindowFocus((byte*)null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Clear stacks"))
|
if (ImGui.MenuItem("Clear stacks"u8))
|
||||||
{
|
{
|
||||||
this.interfaceManager.ClearStacks();
|
this.interfaceManager.ClearStacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Dump style"))
|
if (ImGui.MenuItem("Dump style"u8))
|
||||||
{
|
{
|
||||||
var info = string.Empty;
|
var info = string.Empty;
|
||||||
var style = StyleModelV1.Get();
|
var style = StyleModelV1.Get();
|
||||||
|
|
@ -937,14 +934,14 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
Log.Information(info);
|
Log.Information(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Show dev bar info", (byte*)null, this.configuration.ShowDevBarInfo))
|
if (ImGui.MenuItem("Show dev bar info"u8, (byte*)null, this.configuration.ShowDevBarInfo))
|
||||||
{
|
{
|
||||||
this.configuration.ShowDevBarInfo = !this.configuration.ShowDevBarInfo;
|
this.configuration.ShowDevBarInfo ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Show loading window"))
|
if (ImGui.MenuItem("Show loading window"u8))
|
||||||
{
|
{
|
||||||
var dialog = new LoadingDialog();
|
var dialog = new LoadingDialog();
|
||||||
dialog.Show();
|
dialog.Show();
|
||||||
|
|
@ -953,19 +950,19 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Game"))
|
if (ImGui.BeginMenu("Game"u8))
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("Use in-game default ExceptionHandler"))
|
if (ImGui.MenuItem("Use in-game default ExceptionHandler"u8))
|
||||||
{
|
{
|
||||||
this.dalamud.UseDefaultExceptionHandler();
|
this.dalamud.UseDefaultExceptionHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Use in-game debug ExceptionHandler"))
|
if (ImGui.MenuItem("Use in-game debug ExceptionHandler"u8))
|
||||||
{
|
{
|
||||||
this.dalamud.UseDebugExceptionHandler();
|
this.dalamud.UseDebugExceptionHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Disable in-game ExceptionHandler"))
|
if (ImGui.MenuItem("Disable in-game ExceptionHandler"u8))
|
||||||
{
|
{
|
||||||
this.dalamud.UseNoExceptionHandler();
|
this.dalamud.UseNoExceptionHandler();
|
||||||
}
|
}
|
||||||
|
|
@ -973,26 +970,26 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Plugins"))
|
if (ImGui.BeginMenu("Plugins"u8))
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("Open Plugin installer"))
|
if (ImGui.MenuItem("Open Plugin installer"u8))
|
||||||
{
|
{
|
||||||
this.OpenPluginInstaller();
|
this.OpenPluginInstaller();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Clear cached images/icons"))
|
if (ImGui.MenuItem("Clear cached images/icons"u8))
|
||||||
{
|
{
|
||||||
this.pluginWindow?.ClearIconCache();
|
this.pluginWindow?.ClearIconCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Open Plugin Stats"))
|
if (ImGui.MenuItem("Open Plugin Stats"u8))
|
||||||
{
|
{
|
||||||
this.OpenPluginStats();
|
this.OpenPluginStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Print plugin info"))
|
if (ImGui.MenuItem("Print plugin info"u8))
|
||||||
{
|
{
|
||||||
foreach (var plugin in pluginManager.InstalledPlugins)
|
foreach (var plugin in pluginManager.InstalledPlugins)
|
||||||
{
|
{
|
||||||
|
|
@ -1001,51 +998,51 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Scan dev plugins"))
|
if (ImGui.MenuItem("Scan dev plugins"u8))
|
||||||
{
|
{
|
||||||
_ = pluginManager.ScanDevPluginsAsync();
|
_ = pluginManager.ScanDevPluginsAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Load all API levels", (byte*)null, pluginManager.LoadAllApiLevels))
|
if (ImGui.MenuItem("Load all API levels"u8, (byte*)null, pluginManager.LoadAllApiLevels))
|
||||||
{
|
{
|
||||||
pluginManager.LoadAllApiLevels = !pluginManager.LoadAllApiLevels;
|
pluginManager.LoadAllApiLevels ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Load blacklisted plugins", (byte*)null, pluginManager.LoadBannedPlugins))
|
if (ImGui.MenuItem("Load blacklisted plugins"u8, (byte*)null, pluginManager.LoadBannedPlugins))
|
||||||
{
|
{
|
||||||
pluginManager.LoadBannedPlugins = !pluginManager.LoadBannedPlugins;
|
pluginManager.LoadBannedPlugins ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pluginManager.SafeMode && ImGui.MenuItem("Disable Safe Mode"))
|
if (pluginManager.SafeMode && ImGui.MenuItem("Disable Safe Mode"u8))
|
||||||
{
|
{
|
||||||
pluginManager.SafeMode = false;
|
pluginManager.SafeMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.MenuItem("API Level:" + PluginManager.DalamudApiLevel, false, false);
|
ImGui.MenuItem("API Level:" + PluginManager.DalamudApiLevel, false);
|
||||||
ImGui.MenuItem("Loaded plugins:" + pluginManager.InstalledPlugins.Count(), false, false);
|
ImGui.MenuItem("Loaded plugins:" + pluginManager.InstalledPlugins.Count(), false);
|
||||||
ImGui.EndMenu();
|
ImGui.EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Localization"))
|
if (ImGui.BeginMenu("Localization"u8))
|
||||||
{
|
{
|
||||||
var localization = Service<Localization>.Get();
|
var localization = Service<Localization>.Get();
|
||||||
|
|
||||||
if (ImGui.MenuItem("Export localizable"))
|
if (ImGui.MenuItem("Export localizable"u8))
|
||||||
{
|
{
|
||||||
localization.ExportLocalizable(true);
|
localization.ExportLocalizable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginMenu("Load language..."))
|
if (ImGui.BeginMenu("Load language..."u8))
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("From Fallbacks"))
|
if (ImGui.MenuItem("From Fallbacks"u8))
|
||||||
{
|
{
|
||||||
localization.SetupWithFallbacks();
|
localization.SetupWithFallbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("From UICulture"))
|
if (ImGui.MenuItem("From UICulture"u8))
|
||||||
{
|
{
|
||||||
localization.SetupWithUiCulture();
|
localization.SetupWithUiCulture();
|
||||||
}
|
}
|
||||||
|
|
@ -1065,7 +1062,7 @@ internal class DalamudInterface : IInternalDisposableService
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Service<GameGui>.Get().GameUiHidden)
|
if (Service<GameGui>.Get().GameUiHidden)
|
||||||
ImGui.BeginMenu("UI is hidden...", false);
|
ImGui.BeginMenu("UI is hidden..."u8, false);
|
||||||
|
|
||||||
if (this.configuration.ShowDevBarInfo)
|
if (this.configuration.ShowDevBarInfo)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,11 @@ internal static partial class DalamudComponents
|
||||||
var width = ImGuiHelpers.GlobalScale * 300;
|
var width = ImGuiHelpers.GlobalScale * 300;
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(width);
|
ImGui.SetNextItemWidth(width);
|
||||||
ImGui.InputTextWithHint("###pluginPickerSearch", Locs.SearchHint, ref pickerSearch, 255);
|
ImGui.InputTextWithHint("###pluginPickerSearch"u8, Locs.SearchHint, ref pickerSearch, 255);
|
||||||
|
|
||||||
var currentSearchString = pickerSearch;
|
var currentSearchString = pickerSearch;
|
||||||
|
|
||||||
using var listBox = ImRaii.ListBox("###pluginPicker", new Vector2(width, width - 80));
|
using var listBox = ImRaii.ListBox("###pluginPicker"u8, new Vector2(width, width - 80));
|
||||||
if (listBox.Success)
|
if (listBox.Success)
|
||||||
{
|
{
|
||||||
// TODO: Plugin searching should be abstracted... installer and this should use the same search
|
// TODO: Plugin searching should be abstracted... installer and this should use the same search
|
||||||
|
|
|
||||||
|
|
@ -64,17 +64,17 @@ internal unsafe class UiDebug
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, new Vector2(3, 2));
|
ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, new Vector2(3, 2));
|
||||||
ImGui.BeginChild("st_uiDebug_unitBaseSelect", new Vector2(250, -1), true);
|
ImGui.BeginChild("st_uiDebug_unitBaseSelect"u8, new Vector2(250, -1), true);
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(-1);
|
ImGui.SetNextItemWidth(-1);
|
||||||
ImGui.InputTextWithHint("###atkUnitBaseSearch", "Search", ref this.searchInput, 0x20);
|
ImGui.InputTextWithHint("###atkUnitBaseSearch"u8, "Search"u8, ref this.searchInput, 0x20);
|
||||||
|
|
||||||
this.DrawUnitBaseList();
|
this.DrawUnitBaseList();
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
if (this.selectedUnitBase != null)
|
if (this.selectedUnitBase != null)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.BeginChild("st_uiDebug_selectedUnitBase", new Vector2(-1, -1), true);
|
ImGui.BeginChild("st_uiDebug_selectedUnitBase"u8, new Vector2(-1, -1), true);
|
||||||
this.DrawUnitBase(this.selectedUnitBase);
|
this.DrawUnitBase(this.selectedUnitBase);
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
}
|
}
|
||||||
|
|
@ -95,7 +95,7 @@ internal unsafe class UiDebug
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
|
|
||||||
ImGui.SameLine(ImGui.GetWindowContentRegionMax().X - ImGui.GetWindowContentRegionMin().X - 25);
|
ImGui.SameLine(ImGui.GetWindowContentRegionMax().X - ImGui.GetWindowContentRegionMin().X - 25);
|
||||||
if (ImGui.SmallButton("V"))
|
if (ImGui.SmallButton("V"u8))
|
||||||
{
|
{
|
||||||
atkUnitBase->IsVisible = !atkUnitBase->IsVisible;
|
atkUnitBase->IsVisible = !atkUnitBase->IsVisible;
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +106,7 @@ internal unsafe class UiDebug
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
ImGui.Text($"Position: [ {atkUnitBase->X} , {atkUnitBase->Y} ]");
|
ImGui.Text($"Position: [ {atkUnitBase->X} , {atkUnitBase->Y} ]");
|
||||||
ImGui.Text($"Scale: {atkUnitBase->Scale * 100}%%");
|
ImGui.Text($"Scale: {atkUnitBase->Scale * 100}%");
|
||||||
ImGui.Text($"Widget Count {atkUnitBase->UldManager.ObjectCount}");
|
ImGui.Text($"Widget Count {atkUnitBase->UldManager.ObjectCount}");
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
@ -184,7 +184,7 @@ internal unsafe class UiDebug
|
||||||
popped = true;
|
popped = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Node: ");
|
ImGui.Text("Node: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.ClickToCopyText($"{(ulong)node:X}");
|
ImGuiHelpers.ClickToCopyText($"{(ulong)node:X}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -208,7 +208,7 @@ internal unsafe class UiDebug
|
||||||
{
|
{
|
||||||
case NodeType.Text:
|
case NodeType.Text:
|
||||||
var textNode = (AtkTextNode*)node;
|
var textNode = (AtkTextNode*)node;
|
||||||
ImGui.Text("text: ");
|
ImGui.Text("text: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textNode->NodeText);
|
Service<SeStringRenderer>.Get().Draw(textNode->NodeText);
|
||||||
|
|
||||||
|
|
@ -249,7 +249,7 @@ internal unsafe class UiDebug
|
||||||
break;
|
break;
|
||||||
case NodeType.Counter:
|
case NodeType.Counter:
|
||||||
var counterNode = (AtkCounterNode*)node;
|
var counterNode = (AtkCounterNode*)node;
|
||||||
ImGui.Text("text: ");
|
ImGui.Text("text: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(counterNode->NodeText);
|
Service<SeStringRenderer>.Get().Draw(counterNode->NodeText);
|
||||||
break;
|
break;
|
||||||
|
|
@ -283,7 +283,7 @@ internal unsafe class UiDebug
|
||||||
{
|
{
|
||||||
if (partId > partsList->PartCount)
|
if (partId > partsList->PartCount)
|
||||||
{
|
{
|
||||||
ImGui.Text("part id > part count?");
|
ImGui.Text("part id > part count?"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -348,7 +348,7 @@ internal unsafe class UiDebug
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("no texture loaded");
|
ImGui.Text("no texture loaded"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -384,12 +384,12 @@ internal unsafe class UiDebug
|
||||||
popped = true;
|
popped = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Node: ");
|
ImGui.Text("Node: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.ClickToCopyText($"{(ulong)node:X}");
|
ImGuiHelpers.ClickToCopyText($"{(ulong)node:X}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Util.ShowStruct(*compNode, (ulong)compNode);
|
Util.ShowStruct(*compNode, (ulong)compNode);
|
||||||
ImGui.Text("Component: ");
|
ImGui.Text("Component: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.ClickToCopyText($"{(ulong)compNode->Component:X}");
|
ImGuiHelpers.ClickToCopyText($"{(ulong)compNode->Component:X}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -414,31 +414,31 @@ internal unsafe class UiDebug
|
||||||
{
|
{
|
||||||
case ComponentType.TextInput:
|
case ComponentType.TextInput:
|
||||||
var textInputComponent = (AtkComponentTextInput*)compNode->Component;
|
var textInputComponent = (AtkComponentTextInput*)compNode->Component;
|
||||||
ImGui.Text("InputBase Text1: ");
|
ImGui.Text("InputBase Text1: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->AtkComponentInputBase.UnkText1);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->AtkComponentInputBase.UnkText1);
|
||||||
|
|
||||||
ImGui.Text("InputBase Text2: ");
|
ImGui.Text("InputBase Text2: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->AtkComponentInputBase.UnkText2);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->AtkComponentInputBase.UnkText2);
|
||||||
|
|
||||||
ImGui.Text("Text1: ");
|
ImGui.Text("Text1: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->UnkText01);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->UnkText01);
|
||||||
|
|
||||||
ImGui.Text("Text2: ");
|
ImGui.Text("Text2: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->UnkText02);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->UnkText02);
|
||||||
|
|
||||||
ImGui.Text("AvailableLines: ");
|
ImGui.Text("AvailableLines: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->AvailableLines);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->AvailableLines);
|
||||||
|
|
||||||
ImGui.Text("HighlightedAutoTranslateOptionColorPrefix: ");
|
ImGui.Text("HighlightedAutoTranslateOptionColorPrefix: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->HighlightedAutoTranslateOptionColorPrefix);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->HighlightedAutoTranslateOptionColorPrefix);
|
||||||
|
|
||||||
ImGui.Text("HighlightedAutoTranslateOptionColorSuffix: ");
|
ImGui.Text("HighlightedAutoTranslateOptionColorSuffix: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Service<SeStringRenderer>.Get().Draw(textInputComponent->HighlightedAutoTranslateOptionColorSuffix);
|
Service<SeStringRenderer>.Get().Draw(textInputComponent->HighlightedAutoTranslateOptionColorSuffix);
|
||||||
break;
|
break;
|
||||||
|
|
@ -604,7 +604,7 @@ internal unsafe class UiDebug
|
||||||
|
|
||||||
if (noResults)
|
if (noResults)
|
||||||
{
|
{
|
||||||
ImGui.TextDisabled("No Results");
|
ImGui.TextDisabled("No Results"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!foundSelected)
|
if (!foundSelected)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ using System.Numerics;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
using Dalamud.Memory;
|
using Dalamud.Memory;
|
||||||
using Dalamud.Utility;
|
using Dalamud.Utility;
|
||||||
|
|
@ -26,13 +27,13 @@ public unsafe partial class AddonTree
|
||||||
using var tree = ImRaii.TreeNode($"Atk Values [{addon->AtkValuesCount}]###atkValues_{addon->NameString}");
|
using var tree = ImRaii.TreeNode($"Atk Values [{addon->AtkValuesCount}]###atkValues_{addon->NameString}");
|
||||||
if (tree.Success)
|
if (tree.Success)
|
||||||
{
|
{
|
||||||
using var tbl = ImRaii.Table("atkUnitBase_atkValueTable", 3, ImGuiTableFlags.Borders | ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg);
|
using var tbl = ImRaii.Table("atkUnitBase_atkValueTable"u8, 3, ImGuiTableFlags.Borders | ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg);
|
||||||
|
|
||||||
if (tbl.Success)
|
if (tbl.Success)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("Index");
|
ImGui.TableSetupColumn("Index"u8);
|
||||||
ImGui.TableSetupColumn("Type");
|
ImGui.TableSetupColumn("Type"u8);
|
||||||
ImGui.TableSetupColumn("Value");
|
ImGui.TableSetupColumn("Value"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
@ -52,7 +53,7 @@ public unsafe partial class AddonTree
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (atkValue->Type == 0)
|
if (atkValue->Type == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextDisabled("Not Set");
|
ImGui.TextDisabled("Not Set"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -68,7 +69,7 @@ public unsafe partial class AddonTree
|
||||||
case ValueType.Int:
|
case ValueType.Int:
|
||||||
case ValueType.UInt:
|
case ValueType.UInt:
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{atkValue->Int}");
|
ImGui.Text($"{atkValue->Int}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,7 +79,7 @@ public unsafe partial class AddonTree
|
||||||
{
|
{
|
||||||
if (atkValue->String.Value == null)
|
if (atkValue->String.Value == null)
|
||||||
{
|
{
|
||||||
ImGui.TextDisabled("null");
|
ImGui.TextDisabled("null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -90,17 +91,17 @@ public unsafe partial class AddonTree
|
||||||
|
|
||||||
case ValueType.Bool:
|
case ValueType.Bool:
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{atkValue->Byte != 0}");
|
ImGui.Text($"{atkValue->Byte != 0}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ValueType.Pointer:
|
case ValueType.Pointer:
|
||||||
ImGui.TextUnformatted($"{(nint)atkValue->Pointer}");
|
ImGui.Text($"{(nint)atkValue->Pointer}");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
ImGui.TextDisabled("Unhandled Type");
|
ImGui.TextDisabled("Unhandled Type"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
Util.ShowStruct(atkValue);
|
Util.ShowStruct(atkValue);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ using System.Numerics;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Components;
|
using Dalamud.Interface.Components;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
|
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
|
||||||
using static Dalamud.Interface.FontAwesomeIcon;
|
using static Dalamud.Interface.FontAwesomeIcon;
|
||||||
|
|
@ -117,11 +119,11 @@ public unsafe partial class AddonTree : IDisposable
|
||||||
|
|
||||||
var isVisible = addon->IsVisible;
|
var isVisible = addon->IsVisible;
|
||||||
|
|
||||||
ImGui.TextUnformatted($"{this.AddonName}");
|
ImGui.Text($"{this.AddonName}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextColored(isVisible ? new Vector4(0.1f, 1f, 0.1f, 1f) : new(0.6f, 0.6f, 0.6f, 1), isVisible ? "Visible" : "Not Visible");
|
ImGui.TextColored(isVisible ? new Vector4(0.1f, 1f, 0.1f, 1f) : new(0.6f, 0.6f, 0.6f, 1), isVisible ? "Visible"u8 : "Not Visible"u8);
|
||||||
|
|
||||||
ImGui.SameLine(ImGui.GetWindowWidth() - 100);
|
ImGui.SameLine(ImGui.GetWindowWidth() - 100);
|
||||||
|
|
||||||
|
|
@ -132,7 +134,7 @@ public unsafe partial class AddonTree : IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Toggle Visibility");
|
ImGui.SetTooltip("Toggle Visibility"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -143,7 +145,7 @@ public unsafe partial class AddonTree : IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Toggle Popout Window");
|
ImGui.SetTooltip("Toggle Popout Window"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
PaddedSeparator(1);
|
PaddedSeparator(1);
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,13 @@ public static class Events
|
||||||
|
|
||||||
if (tbl.Success)
|
if (tbl.Success)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("#", WidthFixed);
|
ImGui.TableSetupColumn("#"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Type", WidthFixed);
|
ImGui.TableSetupColumn("Type"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Param", WidthFixed);
|
ImGui.TableSetupColumn("Param"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Flags", WidthFixed);
|
ImGui.TableSetupColumn("Flags"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("StateFlags1", WidthFixed);
|
ImGui.TableSetupColumn("StateFlags1"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Target", WidthFixed);
|
ImGui.TableSetupColumn("Target"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Listener", WidthFixed);
|
ImGui.TableSetupColumn("Listener"u8, WidthFixed);
|
||||||
|
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -49,15 +49,15 @@ public static class Events
|
||||||
while (evt != null)
|
while (evt != null)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{i++}");
|
ImGui.Text($"{i++}");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{evt->State.EventType}");
|
ImGui.Text($"{evt->State.EventType}");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{evt->Param}");
|
ImGui.Text($"{evt->Param}");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{evt->State.StateFlags}");
|
ImGui.Text($"{evt->State.StateFlags}");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{evt->State.ReturnFlags}");
|
ImGui.Text($"{evt->State.ReturnFlags}");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGuiHelpers.ClickToCopyText($"{(nint)evt->Target:X}", default, new Vector4(0.6f, 0.6f, 0.6f, 1));
|
ImGuiHelpers.ClickToCopyText($"{(nint)evt->Target:X}", default, new Vector4(0.6f, 0.6f, 0.6f, 1));
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
|
|
|
||||||
|
|
@ -89,25 +89,25 @@ internal unsafe class ComponentNodeTree : ResNodeTree
|
||||||
{
|
{
|
||||||
case TextInput:
|
case TextInput:
|
||||||
var textInputComponent = (AtkComponentTextInput*)this.Component;
|
var textInputComponent = (AtkComponentTextInput*)this.Component;
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"InputBase Text1: {Marshal.PtrToStringAnsi(new(textInputComponent->AtkComponentInputBase.UnkText1.StringPtr))}");
|
$"InputBase Text1: {Marshal.PtrToStringAnsi(new(textInputComponent->AtkComponentInputBase.UnkText1.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"InputBase Text2: {Marshal.PtrToStringAnsi(new(textInputComponent->AtkComponentInputBase.UnkText2.StringPtr))}");
|
$"InputBase Text2: {Marshal.PtrToStringAnsi(new(textInputComponent->AtkComponentInputBase.UnkText2.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"Text1: {Marshal.PtrToStringAnsi(new(textInputComponent->UnkText01.StringPtr))}");
|
$"Text1: {Marshal.PtrToStringAnsi(new(textInputComponent->UnkText01.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"Text2: {Marshal.PtrToStringAnsi(new(textInputComponent->UnkText02.StringPtr))}");
|
$"Text2: {Marshal.PtrToStringAnsi(new(textInputComponent->UnkText02.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"AvailableLines: {Marshal.PtrToStringAnsi(new(textInputComponent->AvailableLines.StringPtr))}");
|
$"AvailableLines: {Marshal.PtrToStringAnsi(new(textInputComponent->AvailableLines.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"HighlightedAutoTranslateOptionColorPrefix: {Marshal.PtrToStringAnsi(new(textInputComponent->HighlightedAutoTranslateOptionColorPrefix.StringPtr))}");
|
$"HighlightedAutoTranslateOptionColorPrefix: {Marshal.PtrToStringAnsi(new(textInputComponent->HighlightedAutoTranslateOptionColorPrefix.StringPtr))}");
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"HighlightedAutoTranslateOptionColorSuffix: {Marshal.PtrToStringAnsi(new(textInputComponent->HighlightedAutoTranslateOptionColorSuffix.StringPtr))}");
|
$"HighlightedAutoTranslateOptionColorSuffix: {Marshal.PtrToStringAnsi(new(textInputComponent->HighlightedAutoTranslateOptionColorSuffix.StringPtr))}");
|
||||||
break;
|
break;
|
||||||
case List:
|
case List:
|
||||||
case TreeList:
|
case TreeList:
|
||||||
var l = (AtkComponentList*)this.Component;
|
var l = (AtkComponentList*)this.Component;
|
||||||
if (ImGui.SmallButton("Inc.Selected"))
|
if (ImGui.SmallButton("Inc.Selected"u8))
|
||||||
{
|
{
|
||||||
l->SelectedItemIndex++;
|
l->SelectedItemIndex++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,12 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
var hov = false;
|
var hov = false;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Labels", WidthFixed);
|
ImGui.TableSetupColumn("Labels"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Editors", WidthFixed);
|
ImGui.TableSetupColumn("Editors"u8, WidthFixed);
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Position:");
|
ImGui.Text("Position:"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
|
|
@ -70,7 +70,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Size:");
|
ImGui.Text("Size:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.DragFloat2($"##{(nint)this.Node:X}size", ref size, 1, 0, default, "%.0f"))
|
if (ImGui.DragFloat2($"##{(nint)this.Node:X}size", ref size, 1, 0, default, "%.0f"))
|
||||||
|
|
@ -84,7 +84,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Scale:");
|
ImGui.Text("Scale:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.DragFloat2($"##{(nint)this.Node:X}scale", ref scale, 0.05f))
|
if (ImGui.DragFloat2($"##{(nint)this.Node:X}scale", ref scale, 0.05f))
|
||||||
|
|
@ -98,7 +98,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Origin:");
|
ImGui.Text("Origin:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.DragFloat2($"##{(nint)this.Node:X}origin", ref origin, 1, default, default, "%.0f"))
|
if (ImGui.DragFloat2($"##{(nint)this.Node:X}origin", ref origin, 1, default, default, "%.0f"))
|
||||||
|
|
@ -112,7 +112,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Rotation:");
|
ImGui.Text("Rotation:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
while (angle > 180)
|
while (angle > 180)
|
||||||
|
|
@ -128,7 +128,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Rotation (deg)");
|
ImGui.SetTooltip("Rotation (deg)"u8);
|
||||||
hov = true;
|
hov = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,7 +143,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("RGBA:");
|
ImGui.Text("RGBA:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}RGBA", ref rgba, DisplayHex))
|
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}RGBA", ref rgba, DisplayHex))
|
||||||
|
|
@ -153,7 +153,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Multiply:");
|
ImGui.Text("Multiply:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.ColorEdit3($"##{(nint)this.Node:X}multiplyRGB", ref mult, DisplayHex))
|
if (ImGui.ColorEdit3($"##{(nint)this.Node:X}multiplyRGB", ref mult, DisplayHex))
|
||||||
|
|
@ -165,7 +165,7 @@ internal unsafe partial class ResNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Add:");
|
ImGui.Text("Add:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(124);
|
ImGui.SetNextItemWidth(124);
|
||||||
|
|
||||||
|
|
@ -203,7 +203,7 @@ internal unsafe partial class CounterNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Counter:");
|
ImGui.Text("Counter:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
|
|
@ -229,7 +229,7 @@ internal unsafe partial class ImageNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Part Id:");
|
ImGui.Text("Part Id:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.InputInt($"##partId{(nint)this.Node:X}", ref partId, 1, 1))
|
if (ImGui.InputInt($"##partId{(nint)this.Node:X}", ref partId, 1, 1))
|
||||||
|
|
@ -262,7 +262,7 @@ internal unsafe partial class NineGridNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Ninegrid Offsets:");
|
ImGui.Text("Ninegrid Offsets:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.DragFloat2($"##{(nint)this.Node:X}ngOffsetLR", ref lr, 1f, 0f))
|
if (ImGui.DragFloat2($"##{(nint)this.Node:X}ngOffsetLR", ref lr, 1f, 0f))
|
||||||
|
|
@ -308,7 +308,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Text:");
|
ImGui.Text("Text:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(Math.Max(ImGui.GetWindowContentRegionMax().X - ImGui.GetCursorPosX() - 50f, 150));
|
ImGui.SetNextItemWidth(Math.Max(ImGui.GetWindowContentRegionMax().X - ImGui.GetCursorPosX() - 50f, 150));
|
||||||
if (ImGui.InputText($"##{(nint)this.Node:X}textEdit", ref text, 512, EnterReturnsTrue))
|
if (ImGui.InputText($"##{(nint)this.Node:X}textEdit", ref text, 512, EnterReturnsTrue))
|
||||||
|
|
@ -318,7 +318,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Font:");
|
ImGui.Text("Font:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.Combo($"##{(nint)this.Node:X}fontType", ref fontIndex, FontNames))
|
if (ImGui.Combo($"##{(nint)this.Node:X}fontType", ref fontIndex, FontNames))
|
||||||
|
|
@ -328,7 +328,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Font Size:");
|
ImGui.Text("Font Size:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.InputInt($"##{(nint)this.Node:X}fontSize", ref fontSize, 1, 10))
|
if (ImGui.InputInt($"##{(nint)this.Node:X}fontSize", ref fontSize, 1, 10))
|
||||||
|
|
@ -338,7 +338,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Alignment:");
|
ImGui.Text("Alignment:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (InputAlignment($"##{(nint)this.Node:X}alignment", ref alignment))
|
if (InputAlignment($"##{(nint)this.Node:X}alignment", ref alignment))
|
||||||
{
|
{
|
||||||
|
|
@ -347,7 +347,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Text Color:");
|
ImGui.Text("Text Color:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}TextRGB", ref textColor, DisplayHex))
|
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}TextRGB", ref textColor, DisplayHex))
|
||||||
|
|
@ -357,7 +357,7 @@ internal unsafe partial class TextNodeTree
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.Text("Edge Color:");
|
ImGui.Text("Edge Color:"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(150);
|
ImGui.SetNextItemWidth(150);
|
||||||
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}EdgeRGB", ref edgeColor, DisplayHex))
|
if (ImGui.ColorEdit4($"##{(nint)this.Node:X}EdgeRGB", ref edgeColor, DisplayHex))
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ using System.Numerics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
|
@ -76,13 +77,13 @@ internal unsafe partial class ImageNodeTree : ResNodeTree
|
||||||
PrintFieldValuePairs(("Texture Path", this.TexData.Path));
|
PrintFieldValuePairs(("Texture Path", this.TexData.Path));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.RadioButton("Full Image##textureDisplayStyle0", TexDisplayStyle == 0))
|
if (ImGui.RadioButton("Full Image##textureDisplayStyle0"u8, TexDisplayStyle == 0))
|
||||||
{
|
{
|
||||||
TexDisplayStyle = 0;
|
TexDisplayStyle = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.RadioButton("Parts List##textureDisplayStyle1", TexDisplayStyle == 1))
|
if (ImGui.RadioButton("Parts List##textureDisplayStyle1"u8, TexDisplayStyle == 1))
|
||||||
{
|
{
|
||||||
TexDisplayStyle = 1;
|
TexDisplayStyle = 1;
|
||||||
}
|
}
|
||||||
|
|
@ -152,7 +153,7 @@ internal unsafe partial class ImageNodeTree : ResNodeTree
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Click to copy as Vector2\nShift-click to copy as Vector4");
|
ImGui.SetTooltip("Click to copy as Vector2\nShift-click to copy as Vector4"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
var suffix = asFloat ? "f" : string.Empty;
|
var suffix = asFloat ? "f" : string.Empty;
|
||||||
|
|
@ -191,9 +192,9 @@ internal unsafe partial class ImageNodeTree : ResNodeTree
|
||||||
using var tbl = ImRaii.Table($"partsTable##{(nint)this.TexData.Texture->D3D11ShaderResourceView:X}", 3, Borders | RowBg | Reorderable);
|
using var tbl = ImRaii.Table($"partsTable##{(nint)this.TexData.Texture->D3D11ShaderResourceView:X}", 3, Borders | RowBg | Reorderable);
|
||||||
if (tbl.Success)
|
if (tbl.Success)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("Part ID", WidthFixed);
|
ImGui.TableSetupColumn("Part ID"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Part Texture", WidthFixed);
|
ImGui.TableSetupColumn("Part Texture"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Coordinates", WidthFixed);
|
ImGui.TableSetupColumn("Coordinates"u8, WidthFixed);
|
||||||
|
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -238,7 +239,7 @@ internal unsafe partial class ImageNodeTree : ResNodeTree
|
||||||
|
|
||||||
PrintPartCoords(u, v, width, height);
|
PrintPartCoords(u, v, width, height);
|
||||||
|
|
||||||
ImGui.Text("UV:\t");
|
ImGui.Text("UV:\t"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetCursorPosX(cursX);
|
ImGui.SetCursorPosX(cursX);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
|
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
|
||||||
using static Dalamud.Interface.ColorHelpers;
|
using static Dalamud.Interface.ColorHelpers;
|
||||||
|
|
@ -79,7 +81,7 @@ internal unsafe partial class NineGridNodeTree : ImageNodeTree
|
||||||
{
|
{
|
||||||
if (!isEditorOpen)
|
if (!isEditorOpen)
|
||||||
{
|
{
|
||||||
ImGui.Text("NineGrid Offsets:\t");
|
ImGui.Text("NineGrid Offsets:\t"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
this.Offsets.Print();
|
this.Offsets.Print();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Runtime.InteropServices;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Components;
|
using Dalamud.Interface.Components;
|
||||||
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
using Dalamud.Interface.Internal.UiDebug2.Utility;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
|
||||||
|
|
@ -167,7 +168,7 @@ internal unsafe partial class ResNodeTree : IDisposable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal void WriteTreeHeading()
|
internal void WriteTreeHeading()
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(this.GetHeaderText());
|
ImGui.Text(this.GetHeaderText());
|
||||||
this.PrintFieldLabels();
|
this.PrintFieldLabels();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -383,7 +384,7 @@ internal unsafe partial class ResNodeTree : IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Toggle Visibility");
|
ImGui.SetTooltip("Toggle Visibility"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -399,7 +400,7 @@ internal unsafe partial class ResNodeTree : IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Toggle Popout Window");
|
ImGui.SetTooltip("Toggle Popout Window"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ internal unsafe partial class TextNodeTree : ResNodeTree
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextColored(new Vector4(1), "Text:");
|
ImGui.TextColored(new Vector4(1), "Text:"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
@ -64,7 +64,7 @@ internal unsafe partial class TextNodeTree : ResNodeTree
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(Marshal.PtrToStringAnsi(new(this.NodeText.StringPtr)) ?? string.Empty);
|
ImGui.Text(Marshal.PtrToStringAnsi(new(this.NodeText.StringPtr)) ?? string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintFieldValuePairs(
|
PrintFieldValuePairs(
|
||||||
|
|
@ -96,7 +96,7 @@ internal unsafe partial class TextNodeTree : ResNodeTree
|
||||||
for (var i = 0; i < seString.Payloads.Count; i++)
|
for (var i = 0; i < seString.Payloads.Count; i++)
|
||||||
{
|
{
|
||||||
var payload = seString.Payloads[i];
|
var payload = seString.Payloads[i];
|
||||||
ImGui.TextUnformatted($"[{i}]");
|
ImGui.Text($"[{i}]");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
switch (payload.Type)
|
switch (payload.Type)
|
||||||
{
|
{
|
||||||
|
|
@ -108,7 +108,7 @@ internal unsafe partial class TextNodeTree : ResNodeTree
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(payload.ToString());
|
ImGui.Text(payload.ToString());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ public readonly partial struct TimelineTree
|
||||||
/// The default print function, if none is specified.
|
/// The default print function, if none is specified.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="value">The value to print.</param>
|
/// <param name="value">The value to print.</param>
|
||||||
public static void PlainTextCell(T value) => ImGui.TextUnformatted($"{value}");
|
public static void PlainTextCell(T value) => ImGui.Text($"{value}");
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds a value to this column.
|
/// Adds a value to this column.
|
||||||
|
|
@ -83,7 +83,7 @@ public readonly partial struct TimelineTree
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextDisabled("...");
|
ImGui.TextDisabled("..."u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ public readonly unsafe partial struct TimelineTree
|
||||||
("Frame Time", $"{this.NodeTimeline->FrameTime:F2} ({this.NodeTimeline->FrameTime * 30:F0})"));
|
("Frame Time", $"{this.NodeTimeline->FrameTime:F2} ({this.NodeTimeline->FrameTime * 30:F0})"));
|
||||||
|
|
||||||
PrintFieldValuePairs(("Active Label Id", $"{this.NodeTimeline->ActiveLabelId}"), ("Duration", $"{this.NodeTimeline->LabelFrameIdxDuration}"), ("End Frame", $"{this.NodeTimeline->LabelEndFrameIdx}"));
|
PrintFieldValuePairs(("Active Label Id", $"{this.NodeTimeline->ActiveLabelId}"), ("Duration", $"{this.NodeTimeline->LabelFrameIdxDuration}"), ("End Frame", $"{this.NodeTimeline->LabelEndFrameIdx}"));
|
||||||
ImGui.TextColored(new Vector4(0.6f, 0.6f, 0.6f, 1), "Animation List");
|
ImGui.TextColored(new Vector4(0.6f, 0.6f, 0.6f, 1), "Animation List"u8);
|
||||||
|
|
||||||
for (var a = 0; a < animationCount; a++)
|
for (var a = 0; a < animationCount; a++)
|
||||||
{
|
{
|
||||||
|
|
@ -151,7 +151,7 @@ public readonly unsafe partial struct TimelineTree
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var rotColumn = new KeyGroupColumn<float>("Rotation", static r => ImGui.TextUnformatted($"{r * (180d / Math.PI):F1}°"));
|
var rotColumn = new KeyGroupColumn<float>("Rotation", static r => ImGui.Text($"{r * (180d / Math.PI):F1}°"));
|
||||||
|
|
||||||
for (var f = 0; f < keyGroup.KeyFrameCount; f++)
|
for (var f = 0; f < keyGroup.KeyFrameCount; f++)
|
||||||
{
|
{
|
||||||
|
|
@ -407,7 +407,7 @@ public readonly unsafe partial struct TimelineTree
|
||||||
("StartFrameIdx", $"{this.NodeTimeline->Resource->LabelSets->StartFrameIdx}"),
|
("StartFrameIdx", $"{this.NodeTimeline->Resource->LabelSets->StartFrameIdx}"),
|
||||||
("EndFrameIdx", $"{this.NodeTimeline->Resource->LabelSets->EndFrameIdx}"));
|
("EndFrameIdx", $"{this.NodeTimeline->Resource->LabelSets->EndFrameIdx}"));
|
||||||
|
|
||||||
using var labelSetTable = ImRaii.TreeNode("Entries");
|
using var labelSetTable = ImRaii.TreeNode("Entries"u8);
|
||||||
if (labelSetTable.Success)
|
if (labelSetTable.Success)
|
||||||
{
|
{
|
||||||
var keyFrameGroup = this.Resource->LabelSets->LabelKeyGroup;
|
var keyFrameGroup = this.Resource->LabelSets->LabelKeyGroup;
|
||||||
|
|
@ -415,13 +415,13 @@ public readonly unsafe partial struct TimelineTree
|
||||||
using var table = ImRaii.Table($"##{(nint)this.node}labelSetKeyFrameTable", 7, Borders | SizingFixedFit | RowBg | NoHostExtendX);
|
using var table = ImRaii.Table($"##{(nint)this.node}labelSetKeyFrameTable", 7, Borders | SizingFixedFit | RowBg | NoHostExtendX);
|
||||||
if (table.Success)
|
if (table.Success)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("Frame ID", WidthFixed);
|
ImGui.TableSetupColumn("Frame ID"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Speed Start", WidthFixed);
|
ImGui.TableSetupColumn("Speed Start"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Speed End", WidthFixed);
|
ImGui.TableSetupColumn("Speed End"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Interpolation", WidthFixed);
|
ImGui.TableSetupColumn("Interpolation"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Label ID", WidthFixed);
|
ImGui.TableSetupColumn("Label ID"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Jump Behavior", WidthFixed);
|
ImGui.TableSetupColumn("Jump Behavior"u8, WidthFixed);
|
||||||
ImGui.TableSetupColumn("Target Label ID", WidthFixed);
|
ImGui.TableSetupColumn("Target Label ID"u8, WidthFixed);
|
||||||
|
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -430,25 +430,25 @@ public readonly unsafe partial struct TimelineTree
|
||||||
var keyFrame = keyFrameGroup.KeyFrames[l];
|
var keyFrame = keyFrameGroup.KeyFrames[l];
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.FrameIdx}");
|
ImGui.Text($"{keyFrame.FrameIdx}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.SpeedCoefficient1:F2}");
|
ImGui.Text($"{keyFrame.SpeedCoefficient1:F2}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.SpeedCoefficient2:F2}");
|
ImGui.Text($"{keyFrame.SpeedCoefficient2:F2}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.Interpolation}");
|
ImGui.Text($"{keyFrame.Interpolation}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.Value.Label.LabelId}");
|
ImGui.Text($"{keyFrame.Value.Label.LabelId}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.Value.Label.JumpBehavior}");
|
ImGui.Text($"{keyFrame.Value.Label.JumpBehavior}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"{keyFrame.Value.Label.JumpLabelId}");
|
ImGui.Text($"{keyFrame.Value.Label.JumpLabelId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ internal unsafe class ElementSelector : IDisposable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal void DrawInterface()
|
internal void DrawInterface()
|
||||||
{
|
{
|
||||||
using var ch = ImRaii.Child("###sidebar_elementSelector", new(250, -1), true);
|
using var ch = ImRaii.Child("###sidebar_elementSelector"u8, new(250, -1), true);
|
||||||
|
|
||||||
if (ch.Success)
|
if (ch.Success)
|
||||||
{
|
{
|
||||||
|
|
@ -105,15 +105,15 @@ internal unsafe class ElementSelector : IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Element Selector");
|
ImGui.SetTooltip("Element Selector"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X - 32);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X - 32);
|
||||||
ImGui.InputTextWithHint(
|
ImGui.InputTextWithHint(
|
||||||
"###addressSearchInput",
|
"###addressSearchInput"u8,
|
||||||
"Address Search",
|
"Address Search"u8,
|
||||||
ref this.addressSearchInput,
|
ref this.addressSearchInput,
|
||||||
18,
|
18,
|
||||||
ImGuiInputTextFlags.AutoSelectAll);
|
ImGuiInputTextFlags.AutoSelectAll);
|
||||||
|
|
@ -144,10 +144,10 @@ internal unsafe class ElementSelector : IDisposable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("ELEMENT SELECTOR");
|
ImGui.Text("ELEMENT SELECTOR"u8);
|
||||||
ImGui.TextDisabled("Use the mouse to hover and identify UI elements, then click to jump to them in the inspector");
|
ImGui.TextDisabled("Use the mouse to hover and identify UI elements, then click to jump to them in the inspector"u8);
|
||||||
ImGui.TextDisabled("Use the scrollwheel to choose between overlapping elements");
|
ImGui.TextDisabled("Use the scrollwheel to choose between overlapping elements"u8);
|
||||||
ImGui.TextDisabled("Press ESCAPE to cancel");
|
ImGui.TextDisabled("Press ESCAPE to cancel"u8);
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
|
|
||||||
var mousePos = ImGui.GetMousePos() - MainViewport.Pos;
|
var mousePos = ImGui.GetMousePos() - MainViewport.Pos;
|
||||||
|
|
@ -155,7 +155,7 @@ internal unsafe class ElementSelector : IDisposable
|
||||||
|
|
||||||
using (ImRaii.PushColor(WindowBg, new Vector4(0.5f)))
|
using (ImRaii.PushColor(WindowBg, new Vector4(0.5f)))
|
||||||
{
|
{
|
||||||
using var ch = ImRaii.Child("noClick", new(800, 2000), false, NoInputs | NoBackground | NoScrollWithMouse);
|
using var ch = ImRaii.Child("noClick"u8, new(800, 2000), false, NoInputs | NoBackground | NoScrollWithMouse);
|
||||||
if (ch.Success)
|
if (ch.Success)
|
||||||
{
|
{
|
||||||
using var gr = ImRaii.Group();
|
using var gr = ImRaii.Group();
|
||||||
|
|
@ -163,13 +163,13 @@ internal unsafe class ElementSelector : IDisposable
|
||||||
{
|
{
|
||||||
Gui.PrintFieldValuePair("Mouse Position", $"{mousePos.X}, {mousePos.Y}");
|
Gui.PrintFieldValuePair("Mouse Position", $"{mousePos.X}, {mousePos.Y}");
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
ImGui.Text("RESULTS:\n");
|
ImGui.Text("RESULTS:\n"u8);
|
||||||
|
|
||||||
var i = 0;
|
var i = 0;
|
||||||
foreach (var a in addonResults)
|
foreach (var a in addonResults)
|
||||||
{
|
{
|
||||||
var name = a.Addon->NameString;
|
var name = a.Addon->NameString;
|
||||||
ImGui.TextUnformatted($"[Addon] {name}");
|
ImGui.Text($"[Addon] {name}");
|
||||||
ImGui.Indent(15);
|
ImGui.Indent(15);
|
||||||
foreach (var n in a.Nodes)
|
foreach (var n in a.Nodes)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ internal unsafe partial class UiDebug2
|
||||||
|
|
||||||
private void DrawNameSearch()
|
private void DrawNameSearch()
|
||||||
{
|
{
|
||||||
using var ch = ImRaii.Child("###sidebar_nameSearch", new(250, 40), true);
|
using var ch = ImRaii.Child("###sidebar_nameSearch"u8, new(250, 40), true);
|
||||||
|
|
||||||
if (ch.Success)
|
if (ch.Success)
|
||||||
{
|
{
|
||||||
|
|
@ -78,13 +78,13 @@ internal unsafe partial class UiDebug2
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Filter by visibility");
|
ImGui.SetTooltip("Filter by visibility"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.InputTextWithHint("###atkUnitBaseSearch", "Filter by name", ref atkUnitBaseSearch, 0x20))
|
if (ImGui.InputTextWithHint("###atkUnitBaseSearch"u8, "Filter by name"u8, ref atkUnitBaseSearch, 0x20))
|
||||||
{
|
{
|
||||||
this.addonNameSearch = atkUnitBaseSearch;
|
this.addonNameSearch = atkUnitBaseSearch;
|
||||||
}
|
}
|
||||||
|
|
@ -93,7 +93,7 @@ internal unsafe partial class UiDebug2
|
||||||
|
|
||||||
private void DrawAddonSelectionList()
|
private void DrawAddonSelectionList()
|
||||||
{
|
{
|
||||||
using var ch = ImRaii.Child("###sideBar_addonList", new(250, -44), true, ImGuiWindowFlags.AlwaysVerticalScrollbar);
|
using var ch = ImRaii.Child("###sideBar_addonList"u8, new(250, -44), true, ImGuiWindowFlags.AlwaysVerticalScrollbar);
|
||||||
if (ch.Success)
|
if (ch.Success)
|
||||||
{
|
{
|
||||||
var unitListBaseAddr = GetUnitListBaseAddr();
|
var unitListBaseAddr = GetUnitListBaseAddr();
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ internal partial class UiDebug2 : IDisposable
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
using var ch = ImRaii.Child("###uiDebugMainPanel", new(-1, -1), true, HorizontalScrollbar);
|
using var ch = ImRaii.Child("###uiDebugMainPanel"u8, new(-1, -1), true, HorizontalScrollbar);
|
||||||
|
|
||||||
if (ch.Success)
|
if (ch.Success)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ internal static class Gui
|
||||||
/// <param name="copy">Whether to enable click-to-copy.</param>
|
/// <param name="copy">Whether to enable click-to-copy.</param>
|
||||||
internal static void PrintFieldValuePair(string fieldName, string value, bool copy = true)
|
internal static void PrintFieldValuePair(string fieldName, string value, bool copy = true)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{fieldName}:");
|
ImGui.Text($"{fieldName}:");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var grey60 = new Vector4(0.6f, 0.6f, 0.6f, 1);
|
var grey60 = new Vector4(0.6f, 0.6f, 0.6f, 1);
|
||||||
if (copy)
|
if (copy)
|
||||||
|
|
@ -108,7 +108,7 @@ internal static class Gui
|
||||||
|
|
||||||
if (tt.Success)
|
if (tt.Success)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(tooltips[index]);
|
ImGui.Text(tooltips[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ public class BranchSwitcherWindow : Window
|
||||||
{
|
{
|
||||||
if (this.branches == null)
|
if (this.branches == null)
|
||||||
{
|
{
|
||||||
ImGui.TextColored(ImGuiColors.DalamudGrey, "Loading branches...");
|
ImGui.TextColored(ImGuiColors.DalamudGrey, "Loading branches..."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,7 +74,7 @@ public class BranchSwitcherWindow : Window
|
||||||
|
|
||||||
if (pickedBranch.Value.SupportedGameVer != si.GameVersion)
|
if (pickedBranch.Value.SupportedGameVer != si.GameVersion)
|
||||||
{
|
{
|
||||||
ImGui.TextColored(ImGuiColors.DalamudRed, "Can't pick this branch. GameVer != SupportedGameVer.");
|
ImGui.TextColored(ImGuiColors.DalamudRed, "Can't pick this branch. GameVer != SupportedGameVer."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -91,7 +91,7 @@ public class BranchSwitcherWindow : Window
|
||||||
config.QueueSave();
|
config.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Pick"))
|
if (ImGui.Button("Pick"u8))
|
||||||
{
|
{
|
||||||
Pick();
|
Pick();
|
||||||
this.IsOpen = false;
|
this.IsOpen = false;
|
||||||
|
|
@ -99,7 +99,7 @@ public class BranchSwitcherWindow : Window
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Pick & Restart"))
|
if (ImGui.Button("Pick & Restart"u8))
|
||||||
{
|
{
|
||||||
Pick();
|
Pick();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
var logoContainerSize = new Vector2(windowSize.X * 0.2f - dummySize, windowSize.Y);
|
var logoContainerSize = new Vector2(windowSize.X * 0.2f - dummySize, windowSize.Y);
|
||||||
using (var child = ImRaii.Child("###logoContainer", logoContainerSize, false))
|
using (var child = ImRaii.Child("###logoContainer"u8, logoContainerSize, false))
|
||||||
{
|
{
|
||||||
if (!child)
|
if (!child)
|
||||||
return;
|
return;
|
||||||
|
|
@ -271,7 +271,7 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
ImGui.Dummy(new Vector2(dummySize));
|
ImGui.Dummy(new Vector2(dummySize));
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
using (var child = ImRaii.Child("###textContainer", new Vector2((windowSize.X * 0.8f) - dummySize * 4, windowSize.Y), false))
|
using (var child = ImRaii.Child("###textContainer"u8, new Vector2((windowSize.X * 0.8f) - dummySize * 4, windowSize.Y), false))
|
||||||
{
|
{
|
||||||
if (!child)
|
if (!child)
|
||||||
return;
|
return;
|
||||||
|
|
@ -361,20 +361,20 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGui.TextWrapped(ChangeLog);
|
ImGui.TextWrapped(ChangeLog);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGui.TextWrapped("This changelog is a quick overview of the most important changes in this version.");
|
ImGui.TextWrapped("This changelog is a quick overview of the most important changes in this version."u8);
|
||||||
ImGui.TextWrapped("Please click next to see a quick guide to updating your plugins.");
|
ImGui.TextWrapped("Please click next to see a quick guide to updating your plugins."u8);
|
||||||
|
|
||||||
DrawNextButton(State.ExplainerApiBump);
|
DrawNextButton(State.ExplainerApiBump);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case State.ExplainerApiBump:
|
case State.ExplainerApiBump:
|
||||||
ImGui.TextWrapped("Take care! Due to changes in this patch, all of your plugins need to be updated and were disabled automatically.");
|
ImGui.TextWrapped("Take care! Due to changes in this patch, all of your plugins need to be updated and were disabled automatically."u8);
|
||||||
ImGui.TextWrapped("This is normal and required for major game updates.");
|
ImGui.TextWrapped("This is normal and required for major game updates."u8);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGui.TextWrapped("To update your plugins, open the plugin installer and click 'update plugins'. Updated plugins should update and then re-enable themselves.");
|
ImGui.TextWrapped("To update your plugins, open the plugin installer and click 'update plugins'. Updated plugins should update and then re-enable themselves."u8);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGui.TextWrapped("Please keep in mind that not all of your plugins may already be updated for the new version.");
|
ImGui.TextWrapped("Please keep in mind that not all of your plugins may already be updated for the new version."u8);
|
||||||
ImGui.TextWrapped("If some plugins are displayed with a red cross in the 'Installed Plugins' tab, they may not yet be available.");
|
ImGui.TextWrapped("If some plugins are displayed with a red cross in the 'Installed Plugins' tab, they may not yet be available."u8);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(15);
|
ImGuiHelpers.ScaledDummy(15);
|
||||||
|
|
||||||
|
|
@ -398,15 +398,15 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case State.AskAutoUpdate:
|
case State.AskAutoUpdate:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudWhite, Loc.Localize("DalamudSettingsAutoUpdateHint",
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudWhite, Loc.Localize("DalamudSettingsAutoUpdateHint",
|
||||||
"Dalamud can update your plugins automatically, making sure that you always " +
|
"Dalamud can update your plugins automatically, making sure that you always " +
|
||||||
"have the newest features and bug fixes. You can choose when and how auto-updates are run here."));
|
"have the newest features and bug fixes. You can choose when and how auto-updates are run here."));
|
||||||
ImGuiHelpers.ScaledDummy(2);
|
ImGuiHelpers.ScaledDummy(2);
|
||||||
|
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, Loc.Localize("DalamudSettingsAutoUpdateDisclaimer1",
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudGrey, Loc.Localize("DalamudSettingsAutoUpdateDisclaimer1",
|
||||||
"You can always update your plugins manually by clicking the update button in the plugin list. " +
|
"You can always update your plugins manually by clicking the update button in the plugin list. " +
|
||||||
"You can also opt into updates for specific plugins by right-clicking them and selecting \"Always auto-update\"."));
|
"You can also opt into updates for specific plugins by right-clicking them and selecting \"Always auto-update\"."));
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, Loc.Localize("DalamudSettingsAutoUpdateDisclaimer2",
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudGrey, Loc.Localize("DalamudSettingsAutoUpdateDisclaimer2",
|
||||||
"Dalamud will only notify you about updates while you are idle."));
|
"Dalamud will only notify you about updates while you are idle."));
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(15);
|
ImGuiHelpers.ScaledDummy(15);
|
||||||
|
|
@ -446,8 +446,8 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case State.Links:
|
case State.Links:
|
||||||
ImGui.TextWrapped("If you note any issues or need help, please check the FAQ, and reach out on our Discord if you need help.");
|
ImGui.TextWrapped("If you note any issues or need help, please check the FAQ, and reach out on our Discord if you need help."u8);
|
||||||
ImGui.TextWrapped("Enjoy your time with the game and Dalamud!");
|
ImGui.TextWrapped("Enjoy your time with the game and Dalamud!"u8);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(45);
|
ImGuiHelpers.ScaledDummy(45);
|
||||||
|
|
||||||
|
|
@ -529,7 +529,7 @@ internal sealed class ChangelogWindow : Window, IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("I don't care about this");
|
ImGui.SetTooltip("I don't care about this"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Reflection;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Colors;
|
using Dalamud.Interface.Colors;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Windowing;
|
using Dalamud.Interface.Windowing;
|
||||||
|
|
||||||
namespace Dalamud.Interface.Internal.Windows;
|
namespace Dalamud.Interface.Internal.Windows;
|
||||||
|
|
@ -52,7 +53,7 @@ internal sealed class ColorDemoWindow : Window
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
ImGui.Text("This is a collection of UI colors you can use in your plugin.");
|
ImGui.Text("This is a collection of UI colors you can use in your plugin."u8);
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ internal sealed class ComponentDemoWindow : Window
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
ImGui.Text("This is a collection of UI components you can use in your plugin.");
|
ImGui.Text("This is a collection of UI components you can use in your plugin."u8);
|
||||||
|
|
||||||
for (var i = 0; i < this.componentDemos.Count; i++)
|
for (var i = 0; i < this.componentDemos.Count; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -85,7 +85,7 @@ internal sealed class ComponentDemoWindow : Window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Easing animations"))
|
if (ImGui.CollapsingHeader("Easing animations"u8))
|
||||||
{
|
{
|
||||||
this.EasingsDemo();
|
this.EasingsDemo();
|
||||||
}
|
}
|
||||||
|
|
@ -93,22 +93,22 @@ internal sealed class ComponentDemoWindow : Window
|
||||||
|
|
||||||
private static void HelpMarkerDemo()
|
private static void HelpMarkerDemo()
|
||||||
{
|
{
|
||||||
ImGui.Text("Hover over the icon to learn more.");
|
ImGui.Text("Hover over the icon to learn more."u8);
|
||||||
ImGuiComponents.HelpMarker("help me!");
|
ImGuiComponents.HelpMarker("help me!");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void IconButtonDemo()
|
private static void IconButtonDemo()
|
||||||
{
|
{
|
||||||
ImGui.Text("Click on the icon to use as a button.");
|
ImGui.Text("Click on the icon to use as a button."u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGuiComponents.IconButton(1, FontAwesomeIcon.Carrot))
|
if (ImGuiComponents.IconButton(1, FontAwesomeIcon.Carrot))
|
||||||
{
|
{
|
||||||
ImGui.OpenPopup("IconButtonDemoPopup");
|
ImGui.OpenPopup("IconButtonDemoPopup"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginPopup("IconButtonDemoPopup"))
|
if (ImGui.BeginPopup("IconButtonDemoPopup"u8))
|
||||||
{
|
{
|
||||||
ImGui.Text("You clicked!");
|
ImGui.Text("You clicked!"u8);
|
||||||
ImGui.EndPopup();
|
ImGui.EndPopup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -120,7 +120,7 @@ internal sealed class ComponentDemoWindow : Window
|
||||||
|
|
||||||
private void EasingsDemo()
|
private void EasingsDemo()
|
||||||
{
|
{
|
||||||
ImGui.SliderInt("Speed in MS", ref this.animationTimeMs, 200, 5000);
|
ImGui.SliderInt("Speed in MS"u8, ref this.animationTimeMs, 200, 5000);
|
||||||
|
|
||||||
foreach (var easing in this.easings)
|
foreach (var easing in this.easings)
|
||||||
{
|
{
|
||||||
|
|
@ -154,7 +154,7 @@ internal sealed class ComponentDemoWindow : Window
|
||||||
|
|
||||||
private void ColorPickerWithPaletteDemo()
|
private void ColorPickerWithPaletteDemo()
|
||||||
{
|
{
|
||||||
ImGui.Text("Click on the color button to use the picker.");
|
ImGui.Text("Click on the color button to use the picker."u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
this.defaultColor = ImGuiComponents.ColorPickerWithPalette(1, "ColorPickerWithPalette Demo", this.defaultColor);
|
this.defaultColor = ImGuiComponents.ColorPickerWithPalette(1, "ColorPickerWithPalette Demo", this.defaultColor);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
ImGui.TextColored(
|
ImGui.TextColored(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Regex Filter Error: {this.exceptionLogFilter.GetType().Name}");
|
$"Regex Filter Error: {this.exceptionLogFilter.GetType().Name}");
|
||||||
ImGui.TextUnformatted(this.exceptionLogFilter.Message);
|
ImGui.Text(this.exceptionLogFilter.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.exceptionLogHighlight is not null)
|
if (this.exceptionLogHighlight is not null)
|
||||||
|
|
@ -169,14 +169,14 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
ImGui.TextColored(
|
ImGui.TextColored(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Regex Highlight Error: {this.exceptionLogHighlight.GetType().Name}");
|
$"Regex Highlight Error: {this.exceptionLogHighlight.GetType().Name}");
|
||||||
ImGui.TextUnformatted(this.exceptionLogHighlight.Message);
|
ImGui.Text(this.exceptionLogHighlight.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
var sendButtonSize = ImGui.CalcTextSize("Send") +
|
var sendButtonSize = ImGui.CalcTextSize("Send"u8) +
|
||||||
((new Vector2(16, 0) + (ImGui.GetStyle().FramePadding * 2)) * ImGuiHelpers.GlobalScale);
|
((new Vector2(16, 0) + (ImGui.GetStyle().FramePadding * 2)) * ImGuiHelpers.GlobalScale);
|
||||||
var scrollingHeight = ImGui.GetContentRegionAvail().Y - sendButtonSize.Y;
|
var scrollingHeight = ImGui.GetContentRegionAvail().Y - sendButtonSize.Y;
|
||||||
ImGui.BeginChild(
|
ImGui.BeginChild(
|
||||||
"scrolling",
|
"scrolling"u8,
|
||||||
new Vector2(0, scrollingHeight),
|
new Vector2(0, scrollingHeight),
|
||||||
false,
|
false,
|
||||||
ImGuiWindowFlags.AlwaysHorizontalScrollbar | ImGuiWindowFlags.AlwaysVerticalScrollbar);
|
ImGuiWindowFlags.AlwaysHorizontalScrollbar | ImGuiWindowFlags.AlwaysVerticalScrollbar);
|
||||||
|
|
@ -189,9 +189,9 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
var childDrawList = ImGui.GetWindowDrawList();
|
var childDrawList = ImGui.GetWindowDrawList();
|
||||||
var childSize = ImGui.GetWindowSize();
|
var childSize = ImGui.GetWindowSize();
|
||||||
|
|
||||||
var timestampWidth = ImGui.CalcTextSize("00:00:00.000").X;
|
var timestampWidth = ImGui.CalcTextSize("00:00:00.000"u8).X;
|
||||||
var levelWidth = ImGui.CalcTextSize("AAA").X;
|
var levelWidth = ImGui.CalcTextSize("AAA"u8).X;
|
||||||
var separatorWidth = ImGui.CalcTextSize(" | ").X;
|
var separatorWidth = ImGui.CalcTextSize(" | "u8).X;
|
||||||
var cursorLogLevel = timestampWidth + separatorWidth;
|
var cursorLogLevel = timestampWidth + separatorWidth;
|
||||||
var cursorLogLine = cursorLogLevel + levelWidth + separatorWidth;
|
var cursorLogLine = cursorLogLevel + levelWidth + separatorWidth;
|
||||||
|
|
||||||
|
|
@ -225,7 +225,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Selectable(
|
ImGui.Selectable(
|
||||||
"###console_null",
|
"###console_null"u8,
|
||||||
true,
|
true,
|
||||||
ImGuiSelectableFlags.AllowItemOverlap | ImGuiSelectableFlags.SpanAllColumns);
|
ImGuiSelectableFlags.AllowItemOverlap | ImGuiSelectableFlags.SpanAllColumns);
|
||||||
|
|
||||||
|
|
@ -238,11 +238,11 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
if (!line.IsMultiline)
|
if (!line.IsMultiline)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(line.TimestampString);
|
ImGui.Text(line.TimestampString);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.SetCursorPosX(cursorLogLevel);
|
ImGui.SetCursorPosX(cursorLogLevel);
|
||||||
ImGui.TextUnformatted(GetTextForLogEventLevel(line.Level));
|
ImGui.Text(GetTextForLogEventLevel(line.Level));
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -258,7 +258,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(line.Line);
|
ImGui.Text(line.Line);
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentLinePosY = ImGui.GetCursorPosY();
|
var currentLinePosY = ImGui.GetCursorPosY();
|
||||||
|
|
@ -321,7 +321,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
if (ImGui.InputText(
|
if (ImGui.InputText(
|
||||||
"##command_box",
|
"##command_box"u8,
|
||||||
ref this.commandText,
|
ref this.commandText,
|
||||||
255,
|
255,
|
||||||
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.CallbackCompletion |
|
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.CallbackCompletion |
|
||||||
|
|
@ -341,7 +341,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
if (hadColor) ImGui.PopStyleColor();
|
if (hadColor) ImGui.PopStyleColor();
|
||||||
|
|
||||||
if (ImGui.Button("Send", sendButtonSize))
|
if (ImGui.Button("Send"u8, sendButtonSize))
|
||||||
{
|
{
|
||||||
this.ProcessCommand();
|
this.ProcessCommand();
|
||||||
}
|
}
|
||||||
|
|
@ -473,7 +473,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
private void DrawOptionsToolbar()
|
private void DrawOptionsToolbar()
|
||||||
{
|
{
|
||||||
ImGui.PushItemWidth(150.0f * ImGuiHelpers.GlobalScale);
|
ImGui.PushItemWidth(150.0f * ImGuiHelpers.GlobalScale);
|
||||||
if (ImGui.BeginCombo("##log_level", $"{EntryPoint.LogLevelSwitch.MinimumLevel}+"))
|
if (ImGui.BeginCombo("##log_level"u8, $"{EntryPoint.LogLevelSwitch.MinimumLevel}+"))
|
||||||
{
|
{
|
||||||
foreach (var value in Enum.GetValues<LogEventLevel>())
|
foreach (var value in Enum.GetValues<LogEventLevel>())
|
||||||
{
|
{
|
||||||
|
|
@ -491,7 +491,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
var settingsPopup = ImGui.BeginPopup("##console_settings");
|
var settingsPopup = ImGui.BeginPopup("##console_settings"u8);
|
||||||
if (settingsPopup)
|
if (settingsPopup)
|
||||||
{
|
{
|
||||||
this.DrawSettingsPopup();
|
this.DrawSettingsPopup();
|
||||||
|
|
@ -506,7 +506,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
this.settingsPopupWasOpen = settingsPopup;
|
this.settingsPopupWasOpen = settingsPopup;
|
||||||
|
|
||||||
if (this.DrawToggleButtonWithTooltip("show_settings", "Show settings", FontAwesomeIcon.List, ref settingsPopup))
|
if (this.DrawToggleButtonWithTooltip("show_settings", "Show settings", FontAwesomeIcon.List, ref settingsPopup))
|
||||||
ImGui.OpenPopup("##console_settings");
|
ImGui.OpenPopup("##console_settings"u8);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
|
@ -537,7 +537,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
this.QueueClear();
|
this.QueueClear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.IsItemHovered()) ImGui.SetTooltip("Clear Log");
|
if (ImGui.IsItemHovered()) ImGui.SetTooltip("Clear Log"u8);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
|
@ -573,7 +573,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
this.killGameArmed = true;
|
this.killGameArmed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.IsItemHovered()) ImGui.SetTooltip("Kill game");
|
if (ImGui.IsItemHovered()) ImGui.SetTooltip("Kill game"u8);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
|
@ -595,8 +595,8 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.PushItemWidth(inputWidth);
|
ImGui.PushItemWidth(inputWidth);
|
||||||
if (ImGui.InputTextWithHint(
|
if (ImGui.InputTextWithHint(
|
||||||
"##textHighlight",
|
"##textHighlight"u8,
|
||||||
"regex highlight",
|
"regex highlight"u8,
|
||||||
ref this.textHighlight,
|
ref this.textHighlight,
|
||||||
2048,
|
2048,
|
||||||
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.AutoSelectAll)
|
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.AutoSelectAll)
|
||||||
|
|
@ -623,8 +623,8 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.PushItemWidth(inputWidth);
|
ImGui.PushItemWidth(inputWidth);
|
||||||
if (ImGui.InputTextWithHint(
|
if (ImGui.InputTextWithHint(
|
||||||
"##textFilter",
|
"##textFilter"u8,
|
||||||
"regex global filter",
|
"regex global filter"u8,
|
||||||
ref this.textFilter,
|
ref this.textFilter,
|
||||||
2048,
|
2048,
|
||||||
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.AutoSelectAll)
|
ImGuiInputTextFlags.EnterReturnsTrue | ImGuiInputTextFlags.AutoSelectAll)
|
||||||
|
|
@ -655,21 +655,21 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
private void DrawSettingsPopup()
|
private void DrawSettingsPopup()
|
||||||
{
|
{
|
||||||
if (ImGui.Checkbox("Open at startup", ref this.autoOpen))
|
if (ImGui.Checkbox("Open at startup"u8, ref this.autoOpen))
|
||||||
{
|
{
|
||||||
this.configuration.LogOpenAtStartup = this.autoOpen;
|
this.configuration.LogOpenAtStartup = this.autoOpen;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Checkbox("Auto-scroll", ref this.autoScroll))
|
if (ImGui.Checkbox("Auto-scroll"u8, ref this.autoScroll))
|
||||||
{
|
{
|
||||||
this.configuration.LogAutoScroll = this.autoScroll;
|
this.configuration.LogAutoScroll = this.autoScroll;
|
||||||
this.configuration.QueueSave();
|
this.configuration.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextUnformatted("Logs buffer");
|
ImGui.Text("Logs buffer"u8);
|
||||||
ImGui.SliderInt("lines", ref this.logLinesLimit, LogLinesMinimum, LogLinesMaximum);
|
ImGui.SliderInt("lines"u8, ref this.logLinesLimit, LogLinesMinimum, LogLinesMaximum);
|
||||||
if (ImGui.Button("Apply"))
|
if (ImGui.Button("Apply"u8))
|
||||||
{
|
{
|
||||||
this.logLinesLimit = Math.Max(LogLinesMinimum, this.logLinesLimit);
|
this.logLinesLimit = Math.Max(LogLinesMinimum, this.logLinesLimit);
|
||||||
|
|
||||||
|
|
@ -686,15 +686,15 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
PluginFilterEntry? removalEntry = null;
|
PluginFilterEntry? removalEntry = null;
|
||||||
using var table = ImRaii.Table(
|
using var table = ImRaii.Table(
|
||||||
"plugin_filter_entries",
|
"plugin_filter_entries"u8,
|
||||||
4,
|
4,
|
||||||
ImGuiTableFlags.Resizable | ImGuiTableFlags.BordersInnerV);
|
ImGuiTableFlags.Resizable | ImGuiTableFlags.BordersInnerV);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("##remove_button", ImGuiTableColumnFlags.WidthFixed, 25.0f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("##remove_button"u8, ImGuiTableColumnFlags.WidthFixed, 25.0f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("##source_name", ImGuiTableColumnFlags.WidthFixed, 150.0f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("##source_name"u8, ImGuiTableColumnFlags.WidthFixed, 150.0f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("##log_level", ImGuiTableColumnFlags.WidthFixed, 150.0f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("##log_level"u8, ImGuiTableColumnFlags.WidthFixed, 150.0f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("##filter_text", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("##filter_text"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (ImGuiComponents.IconButton("add_entry", FontAwesomeIcon.Plus))
|
if (ImGuiComponents.IconButton("add_entry", FontAwesomeIcon.Plus))
|
||||||
|
|
@ -715,7 +715,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.BeginCombo("##Sources", this.selectedSource, ImGuiComboFlags.HeightLarge))
|
if (ImGui.BeginCombo("##Sources"u8, this.selectedSource, ImGuiComboFlags.HeightLarge))
|
||||||
{
|
{
|
||||||
var sourceNames = Service<PluginManager>.Get().InstalledPlugins
|
var sourceNames = Service<PluginManager>.Get().InstalledPlugins
|
||||||
.Select(p => p.Manifest.InternalName)
|
.Select(p => p.Manifest.InternalName)
|
||||||
|
|
@ -729,12 +729,12 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
ImGui.InputTextWithHint("##PluginSearchFilter", "Filter Plugin List", ref this.pluginFilter, 2048);
|
ImGui.InputTextWithHint("##PluginSearchFilter"u8, "Filter Plugin List"u8, ref this.pluginFilter, 2048);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (!sourceNames.Any())
|
if (sourceNames.Count == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextColored(ImGuiColors.DalamudRed, "No Results");
|
ImGui.TextColored(ImGuiColors.DalamudRed, "No Results"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var selectable in sourceNames)
|
foreach (var selectable in sourceNames)
|
||||||
|
|
@ -766,7 +766,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.BeginCombo("##levels", $"{entry.Level}+"))
|
if (ImGui.BeginCombo("##levels"u8, $"{entry.Level}+"))
|
||||||
{
|
{
|
||||||
foreach (var value in Enum.GetValues<LogEventLevel>())
|
foreach (var value in Enum.GetValues<LogEventLevel>())
|
||||||
{
|
{
|
||||||
|
|
@ -784,7 +784,7 @@ internal class ConsoleWindow : Window, IDisposable
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
var entryFilter = entry.Filter;
|
var entryFilter = entry.Filter;
|
||||||
if (ImGui.InputTextWithHint(
|
if (ImGui.InputTextWithHint(
|
||||||
"##filter",
|
"##filter"u8,
|
||||||
$"{entry.Source} regex filter",
|
$"{entry.Source} regex filter",
|
||||||
ref entryFilter,
|
ref entryFilter,
|
||||||
2048,
|
2048,
|
||||||
|
|
|
||||||
|
|
@ -130,10 +130,10 @@ internal class DataWindow : Window, IDisposable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginTable("XlData_Table", 2, ImGuiTableFlags.BordersInnerV | ImGuiTableFlags.Resizable))
|
if (ImGui.BeginTable("XlData_Table"u8, 2, ImGuiTableFlags.BordersInnerV | ImGuiTableFlags.Resizable))
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("##SelectionColumn", ImGuiTableColumnFlags.WidthFixed, 200.0f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("##SelectionColumn"u8, ImGuiTableColumnFlags.WidthFixed, 200.0f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("##ContentsColumn", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("##ContentsColumn"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
this.DrawSelection();
|
this.DrawSelection();
|
||||||
|
|
@ -147,9 +147,9 @@ internal class DataWindow : Window, IDisposable
|
||||||
|
|
||||||
private void DrawSelection()
|
private void DrawSelection()
|
||||||
{
|
{
|
||||||
if (ImGui.BeginChild("XlData_SelectionPane", ImGui.GetContentRegionAvail()))
|
if (ImGui.BeginChild("XlData_SelectionPane"u8, ImGui.GetContentRegionAvail()))
|
||||||
{
|
{
|
||||||
if (ImGui.BeginListBox("WidgetSelectionListbox", ImGui.GetContentRegionAvail()))
|
if (ImGui.BeginListBox("WidgetSelectionListbox"u8, ImGui.GetContentRegionAvail()))
|
||||||
{
|
{
|
||||||
foreach (var widget in this.orderedModules)
|
foreach (var widget in this.orderedModules)
|
||||||
{
|
{
|
||||||
|
|
@ -168,7 +168,7 @@ internal class DataWindow : Window, IDisposable
|
||||||
|
|
||||||
private void DrawContents()
|
private void DrawContents()
|
||||||
{
|
{
|
||||||
if (ImGui.BeginChild("XlData_ContentsPane", ImGui.GetContentRegionAvail()))
|
if (ImGui.BeginChild("XlData_ContentsPane"u8, ImGui.GetContentRegionAvail()))
|
||||||
{
|
{
|
||||||
if (ImGuiComponents.IconButton("collapse-expand", this.selectionCollapsed ? FontAwesomeIcon.ArrowRight : FontAwesomeIcon.ArrowLeft))
|
if (ImGuiComponents.IconButton("collapse-expand", this.selectionCollapsed ? FontAwesomeIcon.ArrowRight : FontAwesomeIcon.ArrowLeft))
|
||||||
{
|
{
|
||||||
|
|
@ -190,7 +190,7 @@ internal class DataWindow : Window, IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Force Reload");
|
ImGui.SetTooltip("Force Reload"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
@ -199,7 +199,7 @@ internal class DataWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10.0f);
|
ImGuiHelpers.ScaledDummy(10.0f);
|
||||||
|
|
||||||
if (ImGui.BeginChild("XlData_WidgetContents", ImGui.GetContentRegionAvail()))
|
if (ImGui.BeginChild("XlData_WidgetContents"u8, ImGui.GetContentRegionAvail()))
|
||||||
{
|
{
|
||||||
if (copy)
|
if (copy)
|
||||||
ImGui.LogToClipboard();
|
ImGui.LogToClipboard();
|
||||||
|
|
@ -212,7 +212,7 @@ internal class DataWindow : Window, IDisposable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Data not ready.");
|
ImGui.Text("Data not ready."u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isExcept = false;
|
this.isExcept = false;
|
||||||
|
|
@ -226,7 +226,7 @@ internal class DataWindow : Window, IDisposable
|
||||||
|
|
||||||
this.isExcept = true;
|
this.isExcept = true;
|
||||||
|
|
||||||
ImGui.TextUnformatted(ex.ToString());
|
ImGui.Text(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ using System.Numerics;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.ImGuiNotification;
|
using Dalamud.Interface.ImGuiNotification;
|
||||||
using Dalamud.Interface.ImGuiNotification.Internal;
|
using Dalamud.Interface.ImGuiNotification.Internal;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
|
|
||||||
namespace Dalamud.Interface.Internal.Windows.Data;
|
namespace Dalamud.Interface.Internal.Windows.Data;
|
||||||
|
|
||||||
|
|
@ -25,11 +26,11 @@ internal static class DataWindowWidgetExtensions
|
||||||
var xoff = ImGui.GetColumnWidth() - width;
|
var xoff = ImGui.GetColumnWidth() - width;
|
||||||
offset.X += xoff;
|
offset.X += xoff;
|
||||||
ImGui.SetCursorPosX(ImGui.GetCursorPosX() + xoff);
|
ImGui.SetCursorPosX(ImGui.GetCursorPosX() + xoff);
|
||||||
ImGui.TextUnformatted(s);
|
ImGui.Text(s);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(s);
|
ImGui.Text(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
|
|
@ -40,7 +41,7 @@ internal static class DataWindowWidgetExtensions
|
||||||
ImGui.SetNextWindowSizeConstraints(Vector2.One, new(wrx, float.MaxValue));
|
ImGui.SetNextWindowSizeConstraints(Vector2.One, new(wrx, float.MaxValue));
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.PushTextWrapPos(wrx);
|
ImGui.PushTextWrapPos(wrx);
|
||||||
ImGui.TextWrapped(s.Replace("%", "%%"));
|
ImGui.TextWrapped(s);
|
||||||
ImGui.PopTextWrapPos();
|
ImGui.PopTextWrapPos();
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,9 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (Service<DalamudConfiguration>.Get().LogLevel > LogEventLevel.Information)
|
if (Service<DalamudConfiguration>.Get().LogLevel > LogEventLevel.Information)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(
|
ImGui.TextColoredWrapped(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
"Enable LogLevel=Information display to see the logs.");
|
"Enable LogLevel=Information display to see the logs."u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
using var table = ImRaii.Table(this.DisplayName, 3, ImGuiTableFlags.SizingFixedFit);
|
using var table = ImRaii.Table(this.DisplayName, 3, ImGuiTableFlags.SizingFixedFit);
|
||||||
|
|
@ -50,12 +50,12 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted("Standard Logging");
|
ImGui.Text("Standard Logging"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(this.standardEnabled))
|
using (ImRaii.Disabled(this.standardEnabled))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Enable##standard-enable") && !this.standardEnabled)
|
if (ImGui.Button("Enable##standard-enable"u8) && !this.standardEnabled)
|
||||||
{
|
{
|
||||||
this.scoped ??= new();
|
this.scoped ??= new();
|
||||||
this.scoped.InventoryChanged += ScopedOnInventoryChanged;
|
this.scoped.InventoryChanged += ScopedOnInventoryChanged;
|
||||||
|
|
@ -66,7 +66,7 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(!this.standardEnabled))
|
using (ImRaii.Disabled(!this.standardEnabled))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Disable##standard-disable") && this.scoped is not null && this.standardEnabled)
|
if (ImGui.Button("Disable##standard-disable"u8) && this.scoped is not null && this.standardEnabled)
|
||||||
{
|
{
|
||||||
this.scoped.InventoryChanged -= ScopedOnInventoryChanged;
|
this.scoped.InventoryChanged -= ScopedOnInventoryChanged;
|
||||||
this.standardEnabled = false;
|
this.standardEnabled = false;
|
||||||
|
|
@ -81,12 +81,12 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted("Raw Logging");
|
ImGui.Text("Raw Logging"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(this.rawEnabled))
|
using (ImRaii.Disabled(this.rawEnabled))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Enable##raw-enable") && !this.rawEnabled)
|
if (ImGui.Button("Enable##raw-enable"u8) && !this.rawEnabled)
|
||||||
{
|
{
|
||||||
this.scoped ??= new();
|
this.scoped ??= new();
|
||||||
this.scoped.InventoryChangedRaw += ScopedOnInventoryChangedRaw;
|
this.scoped.InventoryChangedRaw += ScopedOnInventoryChangedRaw;
|
||||||
|
|
@ -97,7 +97,7 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(!this.rawEnabled))
|
using (ImRaii.Disabled(!this.rawEnabled))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Disable##raw-disable") && this.scoped is not null && this.rawEnabled)
|
if (ImGui.Button("Disable##raw-disable"u8) && this.scoped is not null && this.rawEnabled)
|
||||||
{
|
{
|
||||||
this.scoped.InventoryChangedRaw -= ScopedOnInventoryChangedRaw;
|
this.scoped.InventoryChangedRaw -= ScopedOnInventoryChangedRaw;
|
||||||
this.rawEnabled = false;
|
this.rawEnabled = false;
|
||||||
|
|
@ -112,12 +112,12 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted("All");
|
ImGui.Text("All"u8);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(this.standardEnabled && this.rawEnabled))
|
using (ImRaii.Disabled(this.standardEnabled && this.rawEnabled))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Enable##all-enable"))
|
if (ImGui.Button("Enable##all-enable"u8))
|
||||||
{
|
{
|
||||||
this.scoped ??= new();
|
this.scoped ??= new();
|
||||||
if (!this.standardEnabled)
|
if (!this.standardEnabled)
|
||||||
|
|
@ -131,7 +131,7 @@ internal class GameInventoryTestWidget : IDataWindowWidget
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
using (ImRaii.Disabled(this.scoped is null))
|
using (ImRaii.Disabled(this.scoped is null))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Disable##all-disable"))
|
if (ImGui.Button("Disable##all-disable"u8))
|
||||||
{
|
{
|
||||||
((IInternalDisposableService)this.scoped)?.DisposeService();
|
((IInternalDisposableService)this.scoped)?.DisposeService();
|
||||||
this.scoped = null;
|
this.scoped = null;
|
||||||
|
|
|
||||||
|
|
@ -15,13 +15,13 @@ internal class WidgetUtil
|
||||||
/// <param name="tooltipText">The text in the tooltip.</param>
|
/// <param name="tooltipText">The text in the tooltip.</param>
|
||||||
internal static void DrawCopyableText(string text, string tooltipText = "Copy")
|
internal static void DrawCopyableText(string text, string tooltipText = "Copy")
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(text);
|
ImGui.TextWrapped(text);
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted(tooltipText);
|
ImGui.Text(tooltipText);
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
|
|
@ -43,18 +43,18 @@ public class AddonLifecycleWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (!this.Ready)
|
if (!this.Ready)
|
||||||
{
|
{
|
||||||
ImGui.Text("AddonLifecycle Reference is null, reload module.");
|
ImGui.Text("AddonLifecycle Reference is null, reload module."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Listeners"))
|
if (ImGui.CollapsingHeader("Listeners"u8))
|
||||||
{
|
{
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
this.DrawEventListeners();
|
this.DrawEventListeners();
|
||||||
ImGui.Unindent();
|
ImGui.Unindent();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("ReceiveEvent Hooks"))
|
if (ImGui.CollapsingHeader("ReceiveEvent Hooks"u8))
|
||||||
{
|
{
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
this.DrawReceiveEventHooks();
|
this.DrawReceiveEventHooks();
|
||||||
|
|
@ -75,13 +75,13 @@ public class AddonLifecycleWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (listeners.Count == 0)
|
if (listeners.Count == 0)
|
||||||
{
|
{
|
||||||
ImGui.Text("No Listeners Registered for Event");
|
ImGui.Text("No Listeners Registered for Event"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.BeginTable("AddonLifecycleListenersTable", 2))
|
if (ImGui.BeginTable("AddonLifecycleListenersTable"u8, 2))
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("##AddonName", ImGuiTableColumnFlags.WidthFixed, 100.0f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("##AddonName"u8, ImGuiTableColumnFlags.WidthFixed, 100.0f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("##MethodInvoke", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("##MethodInvoke"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
|
||||||
foreach (var listener in listeners)
|
foreach (var listener in listeners)
|
||||||
{
|
{
|
||||||
|
|
@ -108,7 +108,7 @@ public class AddonLifecycleWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (listeners.Count == 0)
|
if (listeners.Count == 0)
|
||||||
{
|
{
|
||||||
ImGui.Text("No ReceiveEvent Hooks are Registered");
|
ImGui.Text("No ReceiveEvent Hooks are Registered"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var receiveEventListener in this.AddonLifecycle.ReceiveEventListeners)
|
foreach (var receiveEventListener in this.AddonLifecycle.ReceiveEventListeners)
|
||||||
|
|
@ -117,21 +117,21 @@ public class AddonLifecycleWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.Columns(2);
|
ImGui.Columns(2);
|
||||||
|
|
||||||
ImGui.Text("Hook Address");
|
ImGui.Text("Hook Address"u8);
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
ImGui.Text(receiveEventListener.FunctionAddress.ToString("X"));
|
ImGui.Text(receiveEventListener.FunctionAddress.ToString("X"));
|
||||||
|
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
ImGui.Text("Hook Status");
|
ImGui.Text("Hook Status"u8);
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
if (receiveEventListener.Hook is null)
|
if (receiveEventListener.Hook is null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Hook is null");
|
ImGui.Text("Hook is null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var color = receiveEventListener.Hook.IsEnabled ? ImGuiColors.HealerGreen : ImGuiColors.DalamudRed;
|
var color = receiveEventListener.Hook.IsEnabled ? ImGuiColors.HealerGreen : ImGuiColors.DalamudRed;
|
||||||
var text = receiveEventListener.Hook.IsEnabled ? "Enabled" : "Disabled";
|
var text = receiveEventListener.Hook.IsEnabled ? "Enabled"u8 : "Disabled"u8;
|
||||||
ImGui.TextColored(color, text);
|
ImGui.TextColored(color, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ internal unsafe class AddonWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var gameGui = Service<GameGui>.Get();
|
var gameGui = Service<GameGui>.Get();
|
||||||
|
|
||||||
ImGui.InputText("Addon Name", ref this.inputAddonName, 256);
|
ImGui.InputText("Addon Name"u8, ref this.inputAddonName, 256);
|
||||||
ImGui.InputInt("Addon Index", ref this.inputAddonIndex);
|
ImGui.InputInt("Addon Index"u8, ref this.inputAddonIndex);
|
||||||
|
|
||||||
if (this.inputAddonName.IsNullOrEmpty())
|
if (this.inputAddonName.IsNullOrEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
@ -43,23 +43,23 @@ internal unsafe class AddonWidget : IDataWindowWidget
|
||||||
var addon = gameGui.GetAddonByName(this.inputAddonName, this.inputAddonIndex);
|
var addon = gameGui.GetAddonByName(this.inputAddonName, this.inputAddonIndex);
|
||||||
if (addon.IsNull)
|
if (addon.IsNull)
|
||||||
{
|
{
|
||||||
ImGui.Text("Null");
|
ImGui.Text("Null"u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextUnformatted($"{addon.Name} - {Util.DescribeAddress(addon)}\n v:{addon.IsVisible} x:{addon.X} y:{addon.Y} s:{addon.Scale}, w:{addon.Width}, h:{addon.Height}");
|
ImGui.Text($"{addon.Name} - {Util.DescribeAddress(addon)}\n v:{addon.IsVisible} x:{addon.X} y:{addon.Y} s:{addon.Scale}, w:{addon.Width}, h:{addon.Height}");
|
||||||
|
|
||||||
if (ImGui.Button("Find Agent"))
|
if (ImGui.Button("Find Agent"u8))
|
||||||
{
|
{
|
||||||
this.agentInterfacePtr = gameGui.FindAgentInterface(addon);
|
this.agentInterfacePtr = gameGui.FindAgentInterface(addon);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.agentInterfacePtr.IsNull)
|
if (!this.agentInterfacePtr.IsNull)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"Agent: {Util.DescribeAddress(this.agentInterfacePtr)}");
|
ImGui.Text($"Agent: {Util.DescribeAddress(this.agentInterfacePtr)}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("C"))
|
if (ImGui.Button("C"u8))
|
||||||
ImGui.SetClipboardText(this.agentInterfacePtr.Address.ToString("X"));
|
ImGui.SetClipboardText(this.agentInterfacePtr.Address.ToString("X"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ internal class AddressesWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
ImGui.InputText(".text sig", ref this.inputSig, 400);
|
ImGui.InputText(".text sig"u8, ref this.inputSig, 400);
|
||||||
if (ImGui.Button("Resolve"))
|
if (ImGui.Button("Resolve"u8))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -53,10 +53,10 @@ internal class AddressesWidget : IDataWindowWidget
|
||||||
|
|
||||||
foreach (var debugScannedValue in BaseAddressResolver.DebugScannedValues)
|
foreach (var debugScannedValue in BaseAddressResolver.DebugScannedValues)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{debugScannedValue.Key}");
|
ImGui.Text($"{debugScannedValue.Key}");
|
||||||
foreach (var valueTuple in debugScannedValue.Value)
|
foreach (var valueTuple in debugScannedValue.Value)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" {valueTuple.ClassName} - {Util.DescribeAddress(valueTuple.Address)}");
|
$" {valueTuple.ClassName} - {Util.DescribeAddress(valueTuple.Address)}");
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,21 +26,21 @@ internal class AetherytesWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
if (!ImGui.BeginTable("##aetheryteTable", 11, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders))
|
if (!ImGui.BeginTable("##aetheryteTable"u8, 11, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("Idx", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Idx"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Name"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("ID", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("ID"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Zone", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Zone"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Ward", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Ward"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Plot", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Plot"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Sub", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Sub"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Gil", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Gil"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Fav", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Fav"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Shared", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Shared"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableSetupColumn("Apartment", ImGuiTableColumnFlags.WidthFixed);
|
ImGui.TableSetupColumn("Apartment"u8, ImGuiTableColumnFlags.WidthFixed);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var tpList = Service<AetheryteList>.Get();
|
var tpList = Service<AetheryteList>.Get();
|
||||||
|
|
@ -52,37 +52,37 @@ internal class AetherytesWidget : IDataWindowWidget
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Idx
|
ImGui.TableNextColumn(); // Idx
|
||||||
ImGui.TextUnformatted($"{i}");
|
ImGui.Text($"{i}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Name
|
ImGui.TableNextColumn(); // Name
|
||||||
ImGui.TextUnformatted($"{info.AetheryteData.ValueNullable?.PlaceName.ValueNullable?.Name}");
|
ImGui.Text($"{info.AetheryteData.ValueNullable?.PlaceName.ValueNullable?.Name}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // ID
|
ImGui.TableNextColumn(); // ID
|
||||||
ImGui.TextUnformatted($"{info.AetheryteId}");
|
ImGui.Text($"{info.AetheryteId}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Zone
|
ImGui.TableNextColumn(); // Zone
|
||||||
ImGui.TextUnformatted($"{info.TerritoryId}");
|
ImGui.Text($"{info.TerritoryId}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Ward
|
ImGui.TableNextColumn(); // Ward
|
||||||
ImGui.TextUnformatted($"{info.Ward}");
|
ImGui.Text($"{info.Ward}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Plot
|
ImGui.TableNextColumn(); // Plot
|
||||||
ImGui.TextUnformatted($"{info.Plot}");
|
ImGui.Text($"{info.Plot}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Sub
|
ImGui.TableNextColumn(); // Sub
|
||||||
ImGui.TextUnformatted($"{info.SubIndex}");
|
ImGui.Text($"{info.SubIndex}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Gil
|
ImGui.TableNextColumn(); // Gil
|
||||||
ImGui.TextUnformatted($"{info.GilCost}");
|
ImGui.Text($"{info.GilCost}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Favourite
|
ImGui.TableNextColumn(); // Favourite
|
||||||
ImGui.TextUnformatted($"{info.IsFavourite}");
|
ImGui.Text($"{info.IsFavourite}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Shared
|
ImGui.TableNextColumn(); // Shared
|
||||||
ImGui.TextUnformatted($"{info.IsSharedHouse}");
|
ImGui.Text($"{info.IsSharedHouse}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Apartment
|
ImGui.TableNextColumn(); // Apartment
|
||||||
ImGui.TextUnformatted($"{info.IsApartment}");
|
ImGui.Text($"{info.IsApartment}");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.EndTable();
|
ImGui.EndTable();
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
using var tabs = ImRaii.TabBar("AtkArrayDataTabs");
|
using var tabs = ImRaii.TabBar("AtkArrayDataTabs"u8);
|
||||||
if (!tabs) return;
|
if (!tabs) return;
|
||||||
|
|
||||||
this.DrawNumberArrayTab();
|
this.DrawNumberArrayTab();
|
||||||
|
|
@ -56,12 +56,12 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawArrayList(Type? arrayType, int arrayCount, short* arrayKeys, AtkArrayData** arrays, ref int selectedIndex)
|
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));
|
using var table = ImRaii.Table("ArkArrayTable"u8, 3, ImGuiTableFlags.ScrollY | ImGuiTableFlags.Borders, new Vector2(300, -1));
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Index", ImGuiTableColumnFlags.WidthFixed, 30);
|
ImGui.TableSetupColumn("Index"u8, ImGuiTableColumnFlags.WidthFixed, 30);
|
||||||
ImGui.TableSetupColumn("Type", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Type"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("Size", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Size"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupScrollFreeze(3, 1);
|
ImGui.TableSetupScrollFreeze(3, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
ImGui.TableNextColumn(); // Type
|
ImGui.TableNextColumn(); // Type
|
||||||
if (arrayType != null && Enum.IsDefined(arrayType, arrayIndex))
|
if (arrayType != null && Enum.IsDefined(arrayType, arrayIndex))
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(Enum.GetName(arrayType, arrayIndex));
|
ImGui.Text(Enum.GetName(arrayType, arrayIndex));
|
||||||
}
|
}
|
||||||
else if (inUse && arrays[arrayIndex]->SubscribedAddonsCount > 0)
|
else if (inUse && arrays[arrayIndex]->SubscribedAddonsCount > 0)
|
||||||
{
|
{
|
||||||
|
|
@ -115,41 +115,41 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
using (ImRaii.PushColor(ImGuiCol.Text, 0xFF00FFFF))
|
using (ImRaii.PushColor(ImGuiCol.Text, 0xFF00FFFF))
|
||||||
ImGui.TextUnformatted(raptureAtkUnitManager->GetAddonById(arrays[arrayIndex]->SubscribedAddons[j])->NameString);
|
ImGui.Text(raptureAtkUnitManager->GetAddonById(arrays[arrayIndex]->SubscribedAddons[j])->NameString);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Size
|
ImGui.TableNextColumn(); // Size
|
||||||
if (inUse)
|
if (inUse)
|
||||||
ImGui.TextUnformatted((rowsFound > 0 ? rowsFound : arrays[arrayIndex]->Size).ToString());
|
ImGui.Text((rowsFound > 0 ? rowsFound : arrays[arrayIndex]->Size).ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawArrayHeader(Type? arrayType, string type, int index, AtkArrayData* array)
|
private void DrawArrayHeader(Type? arrayType, string type, int index, AtkArrayData* array)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{type} Array #{index}");
|
ImGui.Text($"{type} Array #{index}");
|
||||||
|
|
||||||
if (arrayType != null && Enum.IsDefined(arrayType, index))
|
if (arrayType != null && Enum.IsDefined(arrayType, index))
|
||||||
{
|
{
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" ({Enum.GetName(arrayType, index)})");
|
ImGui.Text($" ({Enum.GetName(arrayType, index)})");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("–");
|
ImGui.Text("–"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("Address: ");
|
ImGui.Text("Address: "u8);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
WidgetUtil.DrawCopyableText($"0x{(nint)array:X}", "Copy address");
|
WidgetUtil.DrawCopyableText($"0x{(nint)array:X}", "Copy address");
|
||||||
|
|
||||||
if (array->SubscribedAddonsCount > 0)
|
if (array->SubscribedAddonsCount > 0)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("–");
|
ImGui.Text("–"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
using (ImRaii.PushColor(ImGuiCol.Text, 0xFF00FFFF))
|
using (ImRaii.PushColor(ImGuiCol.Text, 0xFF00FFFF))
|
||||||
ImGui.TextUnformatted($"{array->SubscribedAddonsCount} Subscribed Addon" + (array->SubscribedAddonsCount > 1 ? 's' : string.Empty));
|
ImGui.Text($"{array->SubscribedAddonsCount} Subscribed Addon" + (array->SubscribedAddonsCount > 1 ? 's' : string.Empty));
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
|
|
@ -163,7 +163,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
if (array->SubscribedAddons[j] == 0)
|
if (array->SubscribedAddons[j] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ImGui.TextUnformatted(raptureAtkUnitManager->GetAddonById(array->SubscribedAddons[j])->NameString);
|
ImGui.Text(raptureAtkUnitManager->GetAddonById(array->SubscribedAddons[j])->NameString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -174,7 +174,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
||||||
|
|
||||||
using var tab = ImRaii.TabItem("Number Arrays");
|
using var tab = ImRaii.TabItem("Number Arrays"u8);
|
||||||
if (!tab) return;
|
if (!tab) return;
|
||||||
|
|
||||||
this.DrawArrayList(
|
this.DrawArrayList(
|
||||||
|
|
@ -189,22 +189,22 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
||||||
|
|
||||||
using var child = ImRaii.Child("AtkArrayContent", new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
using var child = ImRaii.Child("AtkArrayContent"u8, new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
||||||
if (!child) return;
|
if (!child) return;
|
||||||
|
|
||||||
var array = atkArrayDataHolder.NumberArrays[this.selectedNumberArray];
|
var array = atkArrayDataHolder.NumberArrays[this.selectedNumberArray];
|
||||||
this.DrawArrayHeader(this.numberType, "Number", this.selectedNumberArray, (AtkArrayData*)array);
|
this.DrawArrayHeader(this.numberType, "Number", this.selectedNumberArray, (AtkArrayData*)array);
|
||||||
|
|
||||||
using var table = ImRaii.Table("NumberArrayDataTable", 7, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
using var table = ImRaii.Table("NumberArrayDataTable"u8, 7, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Index", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Index"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("Entry Address", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn("Entry Address"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("Integer", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Integer"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("Short", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Short"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("Byte", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Byte"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("Float", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Float"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("Hex", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Hex"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupScrollFreeze(7, 1);
|
ImGui.TableSetupScrollFreeze(7, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -212,7 +212,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Index
|
ImGui.TableNextColumn(); // Index
|
||||||
ImGui.TextUnformatted($"#{i}");
|
ImGui.Text($"#{i}");
|
||||||
|
|
||||||
var ptr = &array->IntArray[i];
|
var ptr = &array->IntArray[i];
|
||||||
|
|
||||||
|
|
@ -238,17 +238,17 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawStringArrayTab()
|
private void DrawStringArrayTab()
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem("String Arrays");
|
using var tab = ImRaii.TabItem("String Arrays"u8);
|
||||||
if (!tab) return;
|
if (!tab) return;
|
||||||
|
|
||||||
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
||||||
|
|
||||||
using (var sidebarchild = ImRaii.Child("StringArraySidebar", new Vector2(300, -1), false, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings))
|
using (var sidebarchild = ImRaii.Child("StringArraySidebar"u8, new Vector2(300, -1), false, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings))
|
||||||
{
|
{
|
||||||
if (sidebarchild)
|
if (sidebarchild)
|
||||||
{
|
{
|
||||||
ImGui.SetNextItemWidth(-1);
|
ImGui.SetNextItemWidth(-1);
|
||||||
ImGui.InputTextWithHint("##TextSearch", "Search...", ref this.searchTerm, 256, ImGuiInputTextFlags.AutoSelectAll);
|
ImGui.InputTextWithHint("##TextSearch"u8, "Search..."u8, ref this.searchTerm, 256, ImGuiInputTextFlags.AutoSelectAll);
|
||||||
|
|
||||||
this.DrawArrayList(
|
this.DrawArrayList(
|
||||||
this.stringType,
|
this.stringType,
|
||||||
|
|
@ -264,24 +264,24 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
||||||
|
|
||||||
using var child = ImRaii.Child("AtkArrayContent", new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
using var child = ImRaii.Child("AtkArrayContent"u8, new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
||||||
if (!child) return;
|
if (!child) return;
|
||||||
|
|
||||||
var array = atkArrayDataHolder.StringArrays[this.selectedStringArray];
|
var array = atkArrayDataHolder.StringArrays[this.selectedStringArray];
|
||||||
this.DrawArrayHeader(this.stringType, "String", this.selectedStringArray, (AtkArrayData*)array);
|
this.DrawArrayHeader(this.stringType, "String", this.selectedStringArray, (AtkArrayData*)array);
|
||||||
ImGui.Checkbox("Hide unset entries##HideUnsetStringArrayEntriesCheckbox", ref this.hideUnsetStringArrayEntries);
|
ImGui.Checkbox("Hide unset entries##HideUnsetStringArrayEntriesCheckbox"u8, ref this.hideUnsetStringArrayEntries);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.Checkbox("Show text address##WordWrapCheckbox", ref this.showTextAddress);
|
ImGui.Checkbox("Show text address##WordWrapCheckbox"u8, ref this.showTextAddress);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.Checkbox("Show macro string##RenderStringsCheckbox", ref this.showMacroString);
|
ImGui.Checkbox("Show macro string##RenderStringsCheckbox"u8, ref this.showMacroString);
|
||||||
|
|
||||||
using var table = ImRaii.Table("StringArrayDataTable", 4, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
using var table = ImRaii.Table("StringArrayDataTable"u8, 4, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Index", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Index"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn(this.showTextAddress ? "Text Address" : "Entry Address", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn(this.showTextAddress ? "Text Address"u8 : "Entry Address"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("Managed", ImGuiTableColumnFlags.WidthFixed, 60);
|
ImGui.TableSetupColumn("Managed"u8, ImGuiTableColumnFlags.WidthFixed, 60);
|
||||||
ImGui.TableSetupColumn("Text", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Text"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupScrollFreeze(4, 1);
|
ImGui.TableSetupScrollFreeze(4, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -306,7 +306,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Index
|
ImGui.TableNextColumn(); // Index
|
||||||
ImGui.TextUnformatted($"#{i}");
|
ImGui.Text($"#{i}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Address
|
ImGui.TableNextColumn(); // Address
|
||||||
if (this.showTextAddress)
|
if (this.showTextAddress)
|
||||||
|
|
@ -322,7 +322,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
ImGui.TableNextColumn(); // Managed
|
ImGui.TableNextColumn(); // Managed
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(((nint)array->StringArray[i] != 0 && array->ManagedStringArray[i] == array->StringArray[i]).ToString());
|
ImGui.Text(((nint)array->StringArray[i] != 0 && array->ManagedStringArray[i] == array->StringArray[i]).ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Text
|
ImGui.TableNextColumn(); // Text
|
||||||
|
|
@ -342,7 +342,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawExtendArrayTab()
|
private void DrawExtendArrayTab()
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem("Extend Arrays");
|
using var tab = ImRaii.TabItem("Extend Arrays"u8);
|
||||||
if (!tab) return;
|
if (!tab) return;
|
||||||
|
|
||||||
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
var atkArrayDataHolder = RaptureAtkModule.Instance()->AtkArrayDataHolder;
|
||||||
|
|
@ -359,18 +359,18 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
||||||
|
|
||||||
using var child = ImRaii.Child("AtkArrayContent", new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
using var child = ImRaii.Child("AtkArrayContent"u8, new Vector2(-1), true, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoSavedSettings);
|
||||||
|
|
||||||
var array = atkArrayDataHolder.ExtendArrays[this.selectedExtendArray];
|
var array = atkArrayDataHolder.ExtendArrays[this.selectedExtendArray];
|
||||||
this.DrawArrayHeader(null, "Extend", this.selectedExtendArray, (AtkArrayData*)array);
|
this.DrawArrayHeader(null, "Extend", this.selectedExtendArray, (AtkArrayData*)array);
|
||||||
ImGui.Checkbox("Hide unset entries##HideUnsetExtendArrayEntriesCheckbox", ref this.hideUnsetExtendArrayEntries);
|
ImGui.Checkbox("Hide unset entries##HideUnsetExtendArrayEntriesCheckbox"u8, ref this.hideUnsetExtendArrayEntries);
|
||||||
|
|
||||||
using var table = ImRaii.Table("ExtendArrayDataTable", 3, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
using var table = ImRaii.Table("ExtendArrayDataTable"u8, 3, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Index", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Index"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("Entry Address", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn("Entry Address"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("Pointer", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Pointer"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupScrollFreeze(3, 1);
|
ImGui.TableSetupScrollFreeze(3, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -384,7 +384,7 @@ internal unsafe class AtkArrayDataBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Index
|
ImGui.TableNextColumn(); // Index
|
||||||
ImGui.TextUnformatted($"#{i}");
|
ImGui.Text($"#{i}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Address
|
ImGui.TableNextColumn(); // Address
|
||||||
WidgetUtil.DrawCopyableText($"0x{(nint)(&array->DataArray[i]):X}", "Copy entry address");
|
WidgetUtil.DrawCopyableText($"0x{(nint)(&array->DataArray[i]):X}", "Copy entry address");
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,12 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var buddyList = Service<BuddyList>.Get();
|
var buddyList = Service<BuddyList>.Get();
|
||||||
|
|
||||||
ImGui.Checkbox("Resolve GameData", ref this.resolveGameData);
|
ImGui.Checkbox("Resolve GameData"u8, ref this.resolveGameData);
|
||||||
{
|
{
|
||||||
var member = buddyList.CompanionBuddy;
|
var member = buddyList.CompanionBuddy;
|
||||||
if (member == null)
|
if (member == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("[Companion] null");
|
ImGui.Text("[Companion] null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -46,7 +46,7 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
var gameObject = member.GameObject;
|
var gameObject = member.GameObject;
|
||||||
if (gameObject == null)
|
if (gameObject == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("GameObject was null");
|
ImGui.Text("GameObject was null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -60,7 +60,7 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
var member = buddyList.PetBuddy;
|
var member = buddyList.PetBuddy;
|
||||||
if (member == null)
|
if (member == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("[Pet] null");
|
ImGui.Text("[Pet] null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -70,7 +70,7 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
var gameObject = member.GameObject;
|
var gameObject = member.GameObject;
|
||||||
if (gameObject == null)
|
if (gameObject == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("GameObject was null");
|
ImGui.Text("GameObject was null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -84,7 +84,7 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
var count = buddyList.Length;
|
var count = buddyList.Length;
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
ImGui.Text("[BattleBuddy] None present");
|
ImGui.Text("[BattleBuddy] None present"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -97,7 +97,7 @@ internal class BuddyListWidget : IDataWindowWidget
|
||||||
var gameObject = member?.GameObject;
|
var gameObject = member?.GameObject;
|
||||||
if (gameObject == null)
|
if (gameObject == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("GameObject was null");
|
ImGui.Text("GameObject was null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Game.Command;
|
using Dalamud.Game.Command;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
|
|
||||||
namespace Dalamud.Interface.Internal.Windows.Data.Widgets;
|
namespace Dalamud.Interface.Internal.Windows.Data.Widgets;
|
||||||
|
|
@ -33,15 +34,15 @@ internal class CommandWidget : IDataWindowWidget
|
||||||
|
|
||||||
var tableFlags = ImGuiTableFlags.ScrollY | ImGuiTableFlags.Borders | ImGuiTableFlags.SizingStretchProp |
|
var tableFlags = ImGuiTableFlags.ScrollY | ImGuiTableFlags.Borders | ImGuiTableFlags.SizingStretchProp |
|
||||||
ImGuiTableFlags.Sortable | ImGuiTableFlags.SortTristate;
|
ImGuiTableFlags.Sortable | ImGuiTableFlags.SortTristate;
|
||||||
using var table = ImRaii.Table("CommandList", 4, tableFlags);
|
using var table = ImRaii.Table("CommandList"u8, 4, tableFlags);
|
||||||
if (table)
|
if (table)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Command");
|
ImGui.TableSetupColumn("Command"u8);
|
||||||
ImGui.TableSetupColumn("Plugin");
|
ImGui.TableSetupColumn("Plugin"u8);
|
||||||
ImGui.TableSetupColumn("HelpMessage", ImGuiTableColumnFlags.NoSort);
|
ImGui.TableSetupColumn("HelpMessage"u8, ImGuiTableColumnFlags.NoSort);
|
||||||
ImGui.TableSetupColumn("In Help?", ImGuiTableColumnFlags.NoSort);
|
ImGui.TableSetupColumn("In Help?"u8, ImGuiTableColumnFlags.NoSort);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var sortSpecs = ImGui.TableGetSortSpecs();
|
var sortSpecs = ImGui.TableGetSortSpecs();
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ internal class ConditionWidget : IDataWindowWidget
|
||||||
ImGui.Text($"ptr: {Util.DescribeAddress(condition.Address)}");
|
ImGui.Text($"ptr: {Util.DescribeAddress(condition.Address)}");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ImGui.Text("Current Conditions:");
|
ImGui.Text("Current Conditions:"u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
var didAny = false;
|
var didAny = false;
|
||||||
|
|
@ -51,6 +51,6 @@ internal class ConditionWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!didAny)
|
if (!didAny)
|
||||||
ImGui.Text("None. Talk to a shop NPC or visit a market board to find out more!");
|
ImGui.Text("None. Talk to a shop NPC or visit a market board to find out more!"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
@ -51,13 +51,13 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public unsafe void Draw()
|
public unsafe void Draw()
|
||||||
{
|
{
|
||||||
using var tabbar = ImRaii.TabBar("##tabbar");
|
using var tabbar = ImRaii.TabBar("##tabbar"u8);
|
||||||
if (!tabbar.Success)
|
if (!tabbar.Success)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var d = true;
|
var d = true;
|
||||||
using (var tabitem = ImRaii.TabItem(
|
using (var tabitem = ImRaii.TabItem(
|
||||||
"Data Share##tabbar-datashare",
|
"Data Share##tabbar-datashare"u8,
|
||||||
ref d,
|
ref d,
|
||||||
NoCloseButton | (this.nextTab == 0 ? ImGuiTabItemFlags.SetSelected : 0)))
|
NoCloseButton | (this.nextTab == 0 ? ImGuiTabItemFlags.SetSelected : 0)))
|
||||||
{
|
{
|
||||||
|
|
@ -66,7 +66,7 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabitem = ImRaii.TabItem(
|
using (var tabitem = ImRaii.TabItem(
|
||||||
"Call Gate##tabbar-callgate",
|
"Call Gate##tabbar-callgate"u8,
|
||||||
ref d,
|
ref d,
|
||||||
NoCloseButton | (this.nextTab == 1 ? ImGuiTabItemFlags.SetSelected : 0)))
|
NoCloseButton | (this.nextTab == 1 ? ImGuiTabItemFlags.SetSelected : 0)))
|
||||||
{
|
{
|
||||||
|
|
@ -88,7 +88,7 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
if (!tabitem.Success)
|
if (!tabitem.Success)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ImGui.Button("Refresh"))
|
if (ImGui.Button("Refresh"u8))
|
||||||
data = null;
|
data = null;
|
||||||
|
|
||||||
if (data is null)
|
if (data is null)
|
||||||
|
|
@ -119,7 +119,7 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Copy"))
|
if (ImGui.Button("Copy"u8))
|
||||||
ImGui.SetClipboardText(data);
|
ImGui.SetClipboardText(data);
|
||||||
|
|
||||||
ImGui.InputTextMultiline(
|
ImGui.InputTextMultiline(
|
||||||
|
|
@ -214,7 +214,7 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
var offset = ImGui.GetCursorScreenPos() + new Vector2(0, framepad ? ImGui.GetStyle().FramePadding.Y : 0);
|
var offset = ImGui.GetCursorScreenPos() + new Vector2(0, framepad ? ImGui.GetStyle().FramePadding.Y : 0);
|
||||||
if (framepad)
|
if (framepad)
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted(s);
|
ImGui.Text(s);
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetNextWindowPos(offset - ImGui.GetStyle().WindowPadding);
|
ImGui.SetNextWindowPos(offset - ImGui.GetStyle().WindowPadding);
|
||||||
|
|
@ -224,7 +224,7 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
using (ImRaii.Tooltip())
|
using (ImRaii.Tooltip())
|
||||||
{
|
{
|
||||||
ImGui.PushTextWrapPos(wrx);
|
ImGui.PushTextWrapPos(wrx);
|
||||||
ImGui.TextWrapped((tooltip?.Invoke() ?? s).Replace("%", "%%"));
|
ImGui.TextWrapped(tooltip?.Invoke() ?? s);
|
||||||
ImGui.PopTextWrapPos();
|
ImGui.PopTextWrapPos();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -242,15 +242,15 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
private void DrawCallGate()
|
private void DrawCallGate()
|
||||||
{
|
{
|
||||||
var callGate = Service<CallGate>.Get();
|
var callGate = Service<CallGate>.Get();
|
||||||
if (ImGui.Button("Purge empty call gates"))
|
if (ImGui.Button("Purge empty call gates"u8))
|
||||||
callGate.PurgeEmptyGates();
|
callGate.PurgeEmptyGates();
|
||||||
|
|
||||||
using var table = ImRaii.Table("##callgate-table", 5);
|
using var table = ImRaii.Table("##callgate-table"u8, 5);
|
||||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.DefaultSort);
|
ImGui.TableSetupColumn("Name"u8, ImGuiTableColumnFlags.DefaultSort);
|
||||||
ImGui.TableSetupColumn("Action");
|
ImGui.TableSetupColumn("Action"u8);
|
||||||
ImGui.TableSetupColumn("Func");
|
ImGui.TableSetupColumn("Func"u8);
|
||||||
ImGui.TableSetupColumn("#", ImGuiTableColumnFlags.WidthFixed, 30 * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("#"u8, ImGuiTableColumnFlags.WidthFixed, 30 * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("Subscriber");
|
ImGui.TableSetupColumn("Subscriber"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var gates2 = callGate.Gates;
|
var gates2 = callGate.Gates;
|
||||||
|
|
@ -287,16 +287,16 @@ internal class DataShareWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawDataShare()
|
private void DrawDataShare()
|
||||||
{
|
{
|
||||||
if (!ImGui.BeginTable("###DataShareTable", 5, ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg))
|
if (!ImGui.BeginTable("###DataShareTable"u8, 5, ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.RowBg))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("Shared Tag");
|
ImGui.TableSetupColumn("Shared Tag"u8);
|
||||||
ImGui.TableSetupColumn("Show");
|
ImGui.TableSetupColumn("Show"u8);
|
||||||
ImGui.TableSetupColumn("Creator Assembly");
|
ImGui.TableSetupColumn("Creator Assembly"u8);
|
||||||
ImGui.TableSetupColumn("#", ImGuiTableColumnFlags.WidthFixed, 30 * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("#"u8, ImGuiTableColumnFlags.WidthFixed, 30 * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("Consumers");
|
ImGui.TableSetupColumn("Consumers"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
foreach (var share in Service<DataShare>.Get().GetAllShares())
|
foreach (var share in Service<DataShare>.Get().GetAllShares())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ internal class DtrBarWidget : IDataWindowWidget, IDisposable
|
||||||
{
|
{
|
||||||
if (this.loadTestThread?.IsAlive is not true)
|
if (this.loadTestThread?.IsAlive is not true)
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Do multithreaded add/remove operation"))
|
if (ImGui.Button("Do multithreaded add/remove operation"u8))
|
||||||
{
|
{
|
||||||
var ct = this.loadTestThreadCt = new();
|
var ct = this.loadTestThreadCt = new();
|
||||||
var dbar = Service<DtrBar>.Get();
|
var dbar = Service<DtrBar>.Get();
|
||||||
|
|
@ -135,7 +135,7 @@ internal class DtrBarWidget : IDataWindowWidget, IDisposable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Stop multithreaded add/remove operation"))
|
if (ImGui.Button("Stop multithreaded add/remove operation"u8))
|
||||||
this.ClearState();
|
this.ClearState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,7 +149,7 @@ internal class DtrBarWidget : IDataWindowWidget, IDisposable
|
||||||
this.DrawDtrTestEntry(ref this.dtrTest3, "DTR Test #3");
|
this.DrawDtrTestEntry(ref this.dtrTest3, "DTR Test #3");
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text("IDtrBar.Entries:");
|
ImGui.Text("IDtrBar.Entries:"u8);
|
||||||
foreach (var e in Service<DtrBar>.Get().Entries)
|
foreach (var e in Service<DtrBar>.Get().Entries)
|
||||||
ImGui.Text(e.Title);
|
ImGui.Text(e.Title);
|
||||||
|
|
||||||
|
|
@ -157,7 +157,7 @@ internal class DtrBarWidget : IDataWindowWidget, IDisposable
|
||||||
if (configuration.DtrOrder != null)
|
if (configuration.DtrOrder != null)
|
||||||
{
|
{
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text("DtrOrder:");
|
ImGui.Text("DtrOrder:"u8);
|
||||||
foreach (var order in configuration.DtrOrder)
|
foreach (var order in configuration.DtrOrder)
|
||||||
ImGui.Text(order);
|
ImGui.Text(order);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,26 +34,26 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (fateTable.Length == 0)
|
if (fateTable.Length == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("No fates or data not ready.");
|
ImGui.Text("No fates or data not ready."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using var table = ImRaii.Table("FateTable", 13, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
using var table = ImRaii.Table("FateTable"u8, 13, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Index", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Index"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("Address", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn("Address"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("FateId", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("FateId"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("State", ImGuiTableColumnFlags.WidthFixed, 80);
|
ImGui.TableSetupColumn("State"u8, ImGuiTableColumnFlags.WidthFixed, 80);
|
||||||
ImGui.TableSetupColumn("Level", ImGuiTableColumnFlags.WidthFixed, 50);
|
ImGui.TableSetupColumn("Level"u8, ImGuiTableColumnFlags.WidthFixed, 50);
|
||||||
ImGui.TableSetupColumn("Icon", ImGuiTableColumnFlags.WidthFixed, 30);
|
ImGui.TableSetupColumn("Icon"u8, ImGuiTableColumnFlags.WidthFixed, 30);
|
||||||
ImGui.TableSetupColumn("MapIcon", ImGuiTableColumnFlags.WidthFixed, 30);
|
ImGui.TableSetupColumn("MapIcon"u8, ImGuiTableColumnFlags.WidthFixed, 30);
|
||||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Name"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("Progress", ImGuiTableColumnFlags.WidthFixed, 55);
|
ImGui.TableSetupColumn("Progress"u8, ImGuiTableColumnFlags.WidthFixed, 55);
|
||||||
ImGui.TableSetupColumn("Duration", ImGuiTableColumnFlags.WidthFixed, 80);
|
ImGui.TableSetupColumn("Duration"u8, ImGuiTableColumnFlags.WidthFixed, 80);
|
||||||
ImGui.TableSetupColumn("Bonus", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Bonus"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("Position", ImGuiTableColumnFlags.WidthFixed, 240);
|
ImGui.TableSetupColumn("Position"u8, ImGuiTableColumnFlags.WidthFixed, 240);
|
||||||
ImGui.TableSetupColumn("Radius", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Radius"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupScrollFreeze(7, 1);
|
ImGui.TableSetupScrollFreeze(7, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Index
|
ImGui.TableNextColumn(); // Index
|
||||||
ImGui.TextUnformatted($"#{i}");
|
ImGui.Text($"#{i}");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Address
|
ImGui.TableNextColumn(); // Address
|
||||||
WidgetUtil.DrawCopyableText($"0x{fate.Address:X}", "Click to copy Address");
|
WidgetUtil.DrawCopyableText($"0x{fate.Address:X}", "Click to copy Address");
|
||||||
|
|
@ -74,17 +74,17 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
WidgetUtil.DrawCopyableText(fate.FateId.ToString(), "Click to copy FateId (RowId of Fate sheet)");
|
WidgetUtil.DrawCopyableText(fate.FateId.ToString(), "Click to copy FateId (RowId of Fate sheet)");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // State
|
ImGui.TableNextColumn(); // State
|
||||||
ImGui.TextUnformatted(fate.State.ToString());
|
ImGui.Text(fate.State.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Level
|
ImGui.TableNextColumn(); // Level
|
||||||
|
|
||||||
if (fate.Level == fate.MaxLevel)
|
if (fate.Level == fate.MaxLevel)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{fate.Level}");
|
ImGui.Text($"{fate.Level}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{fate.Level}-{fate.MaxLevel}");
|
ImGui.Text($"{fate.Level}-{fate.MaxLevel}");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Icon
|
ImGui.TableNextColumn(); // Icon
|
||||||
|
|
@ -99,8 +99,8 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted("Click to copy IconId");
|
ImGui.Text("Click to copy IconId"u8);
|
||||||
ImGui.TextUnformatted($"ID: {fate.IconId} – Size: {texture.Width}x{texture.Height}");
|
ImGui.Text($"ID: {fate.IconId} – Size: {texture.Width}x{texture.Height}");
|
||||||
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
@ -124,8 +124,8 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted("Click to copy MapIconId");
|
ImGui.Text("Click to copy MapIconId"u8);
|
||||||
ImGui.TextUnformatted($"ID: {fate.MapIconId} – Size: {texture.Width}x{texture.Height}");
|
ImGui.Text($"ID: {fate.MapIconId} – Size: {texture.Width}x{texture.Height}");
|
||||||
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
@ -142,17 +142,17 @@ internal class FateTableWidget : IDataWindowWidget
|
||||||
WidgetUtil.DrawCopyableText(fate.Name.ToString(), "Click to copy Name");
|
WidgetUtil.DrawCopyableText(fate.Name.ToString(), "Click to copy Name");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Progress
|
ImGui.TableNextColumn(); // Progress
|
||||||
ImGui.TextUnformatted($"{fate.Progress}%");
|
ImGui.Text($"{fate.Progress}%");
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // TimeRemaining
|
ImGui.TableNextColumn(); // TimeRemaining
|
||||||
|
|
||||||
if (fate.State == FateState.Running)
|
if (fate.State == FateState.Running)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{TimeSpan.FromSeconds(fate.TimeRemaining):mm\\:ss} / {TimeSpan.FromSeconds(fate.Duration):mm\\:ss}");
|
ImGui.Text($"{TimeSpan.FromSeconds(fate.TimeRemaining):mm\\:ss} / {TimeSpan.FromSeconds(fate.Duration):mm\\:ss}");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // HasExpBonus
|
ImGui.TableNextColumn(); // HasExpBonus
|
||||||
ImGui.TextUnformatted(fate.HasBonus.ToString());
|
ImGui.Text(fate.HasBonus.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Position
|
ImGui.TableNextColumn(); // Position
|
||||||
WidgetUtil.DrawCopyableText(fate.Position.ToString(), "Click to copy Position");
|
WidgetUtil.DrawCopyableText(fate.Position.ToString(), "Click to copy Position");
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
|
|
@ -39,7 +39,7 @@ internal class FlyTextWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
if (ImGui.BeginCombo("Kind", $"{this.flyKind} ({(int)this.flyKind})"))
|
if (ImGui.BeginCombo("Kind"u8, $"{this.flyKind} ({(int)this.flyKind})"))
|
||||||
{
|
{
|
||||||
var values = Enum.GetValues<FlyTextKind>().Distinct();
|
var values = Enum.GetValues<FlyTextKind>().Distinct();
|
||||||
foreach (var value in values)
|
foreach (var value in values)
|
||||||
|
|
@ -53,19 +53,19 @@ internal class FlyTextWidget : IDataWindowWidget
|
||||||
ImGui.EndCombo();
|
ImGui.EndCombo();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.InputText("Text1", ref this.flyText1, 200);
|
ImGui.InputText("Text1"u8, ref this.flyText1, 200);
|
||||||
ImGui.InputText("Text2", ref this.flyText2, 200);
|
ImGui.InputText("Text2"u8, ref this.flyText2, 200);
|
||||||
|
|
||||||
ImGui.InputInt("Val1", ref this.flyVal1);
|
ImGui.InputInt("Val1"u8, ref this.flyVal1);
|
||||||
ImGui.InputInt("Val2", ref this.flyVal2);
|
ImGui.InputInt("Val2"u8, ref this.flyVal2);
|
||||||
|
|
||||||
ImGui.InputInt("Icon ID", ref this.flyIcon);
|
ImGui.InputInt("Icon ID"u8, ref this.flyIcon);
|
||||||
ImGui.InputInt("Damage Icon ID", ref this.flyDmgIcon);
|
ImGui.InputInt("Damage Icon ID"u8, ref this.flyDmgIcon);
|
||||||
ImGui.ColorEdit4("Color", ref this.flyColor);
|
ImGui.ColorEdit4("Color", ref this.flyColor);
|
||||||
ImGui.InputInt("Actor Index", ref this.flyActor);
|
ImGui.InputInt("Actor Index"u8, ref this.flyActor);
|
||||||
var sendColor = ImGui.ColorConvertFloat4ToU32(this.flyColor);
|
var sendColor = ImGui.ColorConvertFloat4ToU32(this.flyColor);
|
||||||
|
|
||||||
if (ImGui.Button("Send"))
|
if (ImGui.Button("Send"u8))
|
||||||
{
|
{
|
||||||
Service<FlyTextGui>.Get().AddFlyText(
|
Service<FlyTextGui>.Get().AddFlyText(
|
||||||
this.flyKind,
|
this.flyKind,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
||||||
|
|
@ -77,12 +77,12 @@ internal class FontAwesomeTestWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine(170f);
|
ImGui.SameLine(170f);
|
||||||
ImGui.SetNextItemWidth(180f);
|
ImGui.SetNextItemWidth(180f);
|
||||||
if (ImGui.InputTextWithHint($"###FontAwesomeInputSearch", "search icons", ref this.iconSearchInput, 50))
|
if (ImGui.InputTextWithHint($"###FontAwesomeInputSearch", "search icons"u8, ref this.iconSearchInput, 50))
|
||||||
{
|
{
|
||||||
this.iconSearchChanged = true;
|
this.iconSearchChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Checkbox("Use fixed width font", ref this.useFixedWidth);
|
ImGui.Checkbox("Use fixed width font"u8, ref this.useFixedWidth);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10f);
|
ImGuiHelpers.ScaledDummy(10f);
|
||||||
for (var i = 0; i < this.icons?.Count; i++)
|
for (var i = 0; i < this.icons?.Count; i++)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
@ -63,6 +63,7 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
if (ImGui.Combo("Global Scale per Font"u8, ref this.fontScaleMode, FontScaleModes))
|
if (ImGui.Combo("Global Scale per Font"u8, ref this.fontScaleMode, FontScaleModes))
|
||||||
this.ClearAtlas();
|
this.ClearAtlas();
|
||||||
|
|
||||||
if (ImGui.Checkbox("Global Scale for Atlas"u8, ref this.atlasScaleMode))
|
if (ImGui.Checkbox("Global Scale for Atlas"u8, ref this.atlasScaleMode))
|
||||||
this.ClearAtlas();
|
this.ClearAtlas();
|
||||||
|
|
||||||
|
|
@ -82,7 +83,7 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
this.ClearAtlas();
|
this.ClearAtlas();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Reset Text") || this.testStringBuffer.IsDisposed)
|
if (ImGui.Button("Reset Text"u8) || this.testStringBuffer.IsDisposed)
|
||||||
{
|
{
|
||||||
this.testStringBuffer.Dispose();
|
this.testStringBuffer.Dispose();
|
||||||
this.testStringBuffer = ImVectorWrapper.CreateFromSpan(
|
this.testStringBuffer = ImVectorWrapper.CreateFromSpan(
|
||||||
|
|
@ -91,10 +92,10 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Test Lock"))
|
if (ImGui.Button("Test Lock"u8))
|
||||||
Task.Run(this.TestLock);
|
Task.Run(this.TestLock);
|
||||||
|
|
||||||
if (ImGui.Button("Choose Editor Font"))
|
if (ImGui.Button("Choose Editor Font"u8))
|
||||||
{
|
{
|
||||||
if (this.chooserDialog is null)
|
if (this.chooserDialog is null)
|
||||||
{
|
{
|
||||||
|
|
@ -149,10 +150,10 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
if (this.chooserDialog is not null)
|
if (this.chooserDialog is not null)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted($"{this.chooserDialog.PopupPosition}, {this.chooserDialog.PopupSize}");
|
ImGui.Text($"{this.chooserDialog.PopupPosition}, {this.chooserDialog.PopupSize}");
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Random Location"))
|
if (ImGui.Button("Random Location"u8))
|
||||||
{
|
{
|
||||||
var monitors = ImGui.GetPlatformIO().Monitors;
|
var monitors = ImGui.GetPlatformIO().Monitors;
|
||||||
var monitor = monitors[Random.Shared.Next() % monitors.Size];
|
var monitor = monitors[Random.Shared.Next() % monitors.Size];
|
||||||
|
|
@ -236,7 +237,7 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
})
|
})
|
||||||
.ToArray());
|
.ToArray());
|
||||||
|
|
||||||
var offsetX = ImGui.CalcTextSize("99.9pt").X + (ImGui.GetStyle().FramePadding.X * 2);
|
var offsetX = ImGui.CalcTextSize("99.9pt"u8).X + (ImGui.GetStyle().FramePadding.X * 2);
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
foreach (var (family, items) in this.fontHandles)
|
foreach (var (family, items) in this.fontHandles)
|
||||||
{
|
{
|
||||||
|
|
@ -245,18 +246,18 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
|
|
||||||
foreach (var (gfs, handle) in items)
|
foreach (var (gfs, handle) in items)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{gfs.SizePt}pt");
|
ImGui.Text($"{gfs.SizePt}pt");
|
||||||
ImGui.SameLine(offsetX);
|
ImGui.SameLine(offsetX);
|
||||||
ImGui.PushTextWrapPos(this.useWordWrap ? 0f : -1f);
|
ImGui.PushTextWrapPos(this.useWordWrap ? 0f : -1f);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (handle.Value.LoadException is { } exc)
|
if (handle.Value.LoadException is { } exc)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(exc.ToString());
|
ImGui.Text(exc.ToString());
|
||||||
}
|
}
|
||||||
else if (!handle.Value.Available)
|
else if (!handle.Value.Available)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Loading..."u8[..(8 + ((Environment.TickCount / 200) % 3))]);
|
ImGui.Text("Loading..."u8[..(8 + ((Environment.TickCount / 200) % 3))]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -265,12 +266,12 @@ internal class GamePrebakedFontsTestWidget : IDataWindowWidget, IDisposable
|
||||||
if (counter++ % 2 == 0)
|
if (counter++ % 2 == 0)
|
||||||
{
|
{
|
||||||
using var pushPop = handle.Value.Push();
|
using var pushPop = handle.Value.Push();
|
||||||
ImGui.TextUnformatted(this.testStringBuffer.DataSpan);
|
ImGui.Text(this.testStringBuffer.DataSpan);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
handle.Value.Push();
|
handle.Value.Push();
|
||||||
ImGui.TextUnformatted(this.testStringBuffer.DataSpan);
|
ImGui.Text(this.testStringBuffer.DataSpan);
|
||||||
handle.Value.Pop();
|
handle.Value.Pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ internal class GaugeWidget : IDataWindowWidget
|
||||||
var player = clientState.LocalPlayer;
|
var player = clientState.LocalPlayer;
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Player is not present");
|
ImGui.Text("Player is not present"u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@ internal class GaugeWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (gauge == null)
|
if (gauge == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("No supported gauge exists for this job.");
|
ImGui.Text("No supported gauge exists for this job."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,29 +74,29 @@ internal unsafe class HookWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ImGui.Checkbox("Use MinHook (only for regular hooks, AsmHook is Reloaded-only)", ref this.hookUseMinHook);
|
ImGui.Checkbox("Use MinHook (only for regular hooks, AsmHook is Reloaded-only)"u8, ref this.hookUseMinHook);
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
if (ImGui.Button("Create"))
|
if (ImGui.Button("Create"u8))
|
||||||
this.messageBoxMinHook = Hook<MessageBoxWDelegate>.FromSymbol("User32", "MessageBoxW", this.MessageBoxWDetour, this.hookUseMinHook);
|
this.messageBoxMinHook = Hook<MessageBoxWDelegate>.FromSymbol("User32", "MessageBoxW", this.MessageBoxWDetour, this.hookUseMinHook);
|
||||||
|
|
||||||
if (ImGui.Button("Enable"))
|
if (ImGui.Button("Enable"u8))
|
||||||
this.messageBoxMinHook?.Enable();
|
this.messageBoxMinHook?.Enable();
|
||||||
|
|
||||||
if (ImGui.Button("Disable"))
|
if (ImGui.Button("Disable"u8))
|
||||||
this.messageBoxMinHook?.Disable();
|
this.messageBoxMinHook?.Disable();
|
||||||
|
|
||||||
if (ImGui.Button("Call Original"))
|
if (ImGui.Button("Call Original"u8))
|
||||||
this.messageBoxMinHook?.Original(IntPtr.Zero, "Hello from .Original", "Hook Test", MESSAGEBOX_STYLE.MB_OK);
|
this.messageBoxMinHook?.Original(IntPtr.Zero, "Hello from .Original", "Hook Test", MESSAGEBOX_STYLE.MB_OK);
|
||||||
|
|
||||||
if (ImGui.Button("Dispose"))
|
if (ImGui.Button("Dispose"u8))
|
||||||
{
|
{
|
||||||
this.messageBoxMinHook?.Dispose();
|
this.messageBoxMinHook?.Dispose();
|
||||||
this.messageBoxMinHook = null;
|
this.messageBoxMinHook = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Test"))
|
if (ImGui.Button("Test"u8))
|
||||||
_ = global::Windows.Win32.PInvoke.MessageBox(HWND.Null, "Hi", "Hello", MESSAGEBOX_STYLE.MB_OK);
|
_ = global::Windows.Win32.PInvoke.MessageBox(HWND.Null, "Hi", "Hello", MESSAGEBOX_STYLE.MB_OK);
|
||||||
|
|
||||||
if (this.messageBoxMinHook != null)
|
if (this.messageBoxMinHook != null)
|
||||||
|
|
@ -105,15 +105,15 @@ internal unsafe class HookWidget : IDataWindowWidget
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
ImGui.BeginDisabled(this.hookStressTestRunning);
|
ImGui.BeginDisabled(this.hookStressTestRunning);
|
||||||
ImGui.Text("Stress Test");
|
ImGui.Text("Stress Test"u8);
|
||||||
|
|
||||||
if (ImGui.InputInt("Max", ref this.hookStressTestMax))
|
if (ImGui.InputInt("Max"u8, ref this.hookStressTestMax))
|
||||||
this.hookStressTestCount = 0;
|
this.hookStressTestCount = 0;
|
||||||
|
|
||||||
ImGui.InputInt("Wait (ms)", ref this.hookStressTestWait);
|
ImGui.InputInt("Wait (ms)"u8, ref this.hookStressTestWait);
|
||||||
ImGui.InputInt("Max Degree of Parallelism", ref this.hookStressTestMaxDegreeOfParallelism);
|
ImGui.InputInt("Max Degree of Parallelism"u8, ref this.hookStressTestMaxDegreeOfParallelism);
|
||||||
|
|
||||||
if (ImGui.BeginCombo("Target", HookTargetToString(this.hookStressTestHookTarget)))
|
if (ImGui.BeginCombo("Target"u8, HookTargetToString(this.hookStressTestHookTarget)))
|
||||||
{
|
{
|
||||||
foreach (var target in Enum.GetValues<StressTestHookTarget>())
|
foreach (var target in Enum.GetValues<StressTestHookTarget>())
|
||||||
{
|
{
|
||||||
|
|
@ -124,7 +124,7 @@ internal unsafe class HookWidget : IDataWindowWidget
|
||||||
ImGui.EndCombo();
|
ImGui.EndCombo();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Stress Test"))
|
if (ImGui.Button("Stress Test"u8))
|
||||||
{
|
{
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
|
@ -165,7 +165,7 @@ internal unsafe class HookWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
|
|
||||||
ImGui.TextUnformatted("Status: " + (this.hookStressTestRunning ? "Running" : "Idle"));
|
ImGui.Text("Status: " + (this.hookStressTestRunning ? "Running" : "Idle"));
|
||||||
ImGui.ProgressBar(this.hookStressTestCount / (float)this.hookStressTestMax, new System.Numerics.Vector2(0, 0), $"{this.hookStressTestCount}/{this.hookStressTestMax}");
|
ImGui.ProgressBar(this.hookStressTestCount / (float)this.hookStressTestMax, new System.Numerics.Vector2(0, 0), $"{this.hookStressTestCount}/{this.hookStressTestMax}");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
@ -72,17 +72,17 @@ public class IconBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (!this.iconIdsTask.IsCompleted)
|
if (!this.iconIdsTask.IsCompleted)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
}
|
}
|
||||||
else if (!this.iconIdsTask.IsCompletedSuccessfully)
|
else if (!this.iconIdsTask.IsCompletedSuccessfully)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(this.iconIdsTask.Exception?.ToString() ?? "Unknown error");
|
ImGui.Text(this.iconIdsTask.Exception?.ToString() ?? "Unknown error");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.RecalculateIndexRange();
|
this.RecalculateIndexRange();
|
||||||
|
|
||||||
if (ImGui.BeginChild("ScrollableSection", ImGui.GetContentRegionAvail(), false, ImGuiWindowFlags.NoMove))
|
if (ImGui.BeginChild("ScrollableSection"u8, ImGui.GetContentRegionAvail(), false, ImGuiWindowFlags.NoMove))
|
||||||
{
|
{
|
||||||
var itemsPerRow = (int)MathF.Floor(
|
var itemsPerRow = (int)MathF.Floor(
|
||||||
ImGui.GetContentRegionMax().X / (this.iconSize.X + ImGui.GetStyle().ItemSpacing.X));
|
ImGui.GetContentRegionMax().X / (this.iconSize.X + ImGui.GetStyle().ItemSpacing.X));
|
||||||
|
|
@ -119,7 +119,7 @@ public class IconBrowserWidget : IDataWindowWidget
|
||||||
ImGui.Columns(2);
|
ImGui.Columns(2);
|
||||||
|
|
||||||
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.InputInt("##StartRange", ref this.startRange, 0, 0))
|
if (ImGui.InputInt("##StartRange"u8, ref this.startRange, 0, 0))
|
||||||
{
|
{
|
||||||
this.startRange = Math.Clamp(this.startRange, 0, MaxIconId);
|
this.startRange = Math.Clamp(this.startRange, 0, MaxIconId);
|
||||||
this.valueRange = null;
|
this.valueRange = null;
|
||||||
|
|
@ -127,14 +127,14 @@ public class IconBrowserWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.PushItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (ImGui.InputInt("##StopRange", ref this.stopRange, 0, 0))
|
if (ImGui.InputInt("##StopRange"u8, ref this.stopRange, 0, 0))
|
||||||
{
|
{
|
||||||
this.stopRange = Math.Clamp(this.stopRange, 0, MaxIconId);
|
this.stopRange = Math.Clamp(this.stopRange, 0, MaxIconId);
|
||||||
this.valueRange = null;
|
this.valueRange = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
ImGui.Checkbox("Show Image in Tooltip", ref this.showTooltipImage);
|
ImGui.Checkbox("Show Image in Tooltip"u8, ref this.showTooltipImage);
|
||||||
|
|
||||||
ImGui.NextColumn();
|
ImGui.NextColumn();
|
||||||
ImGui.InputFloat2("Icon Size", ref this.editIconSize);
|
ImGui.InputFloat2("Icon Size", ref this.editIconSize);
|
||||||
|
|
@ -204,7 +204,7 @@ public class IconBrowserWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
ImGui.SetTooltip($"{iconId}\n{exc}".Replace("%", "%%"));
|
ImGui.SetTooltip($"{iconId}\n{exc}");
|
||||||
|
|
||||||
ImGui.GetWindowDrawList().AddRect(
|
ImGui.GetWindowDrawList().AddRect(
|
||||||
cursor,
|
cursor,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
@ -49,29 +49,29 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
ImGui.Text("Monitor count: " + ImGui.GetPlatformIO().Monitors.Size);
|
ImGui.Text("Monitor count: " + ImGui.GetPlatformIO().Monitors.Size);
|
||||||
ImGui.Text("OverrideGameCursor: " + interfaceManager.OverrideGameCursor);
|
ImGui.Text("OverrideGameCursor: " + interfaceManager.OverrideGameCursor);
|
||||||
|
|
||||||
ImGui.Button("THIS IS A BUTTON###hoverTestButton");
|
ImGui.Button("THIS IS A BUTTON###hoverTestButton"u8);
|
||||||
interfaceManager.OverrideGameCursor = !ImGui.IsItemHovered();
|
interfaceManager.OverrideGameCursor = !ImGui.IsItemHovered();
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"WindowSystem.TimeSinceLastAnyFocus: {WindowSystem.TimeSinceLastAnyFocus.TotalMilliseconds:0}ms");
|
$"WindowSystem.TimeSinceLastAnyFocus: {WindowSystem.TimeSinceLastAnyFocus.TotalMilliseconds:0}ms");
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
|
||||||
ImGui.Checkbox("##manualContent", ref this.notificationTemplate.ManualContent);
|
ImGui.Checkbox("##manualContent"u8, ref this.notificationTemplate.ManualContent);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.InputText("Content##content", ref this.notificationTemplate.Content, 255);
|
ImGui.InputText("Content##content"u8, ref this.notificationTemplate.Content, 255);
|
||||||
|
|
||||||
ImGui.Checkbox("##manualTitle", ref this.notificationTemplate.ManualTitle);
|
ImGui.Checkbox("##manualTitle"u8, ref this.notificationTemplate.ManualTitle);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.InputText("Title##title", ref this.notificationTemplate.Title, 255);
|
ImGui.InputText("Title##title"u8, ref this.notificationTemplate.Title, 255);
|
||||||
|
|
||||||
ImGui.Checkbox("##manualMinimizedText", ref this.notificationTemplate.ManualMinimizedText);
|
ImGui.Checkbox("##manualMinimizedText"u8, ref this.notificationTemplate.ManualMinimizedText);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.InputText("MinimizedText##minimizedText", ref this.notificationTemplate.MinimizedText, 255);
|
ImGui.InputText("MinimizedText##minimizedText"u8, ref this.notificationTemplate.MinimizedText, 255);
|
||||||
|
|
||||||
ImGui.Checkbox("##manualType", ref this.notificationTemplate.ManualType);
|
ImGui.Checkbox("##manualType"u8, ref this.notificationTemplate.ManualType);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.Combo("Type##type", ref this.notificationTemplate.TypeInt, NotificationTemplate.TypeTitles);
|
ImGui.Combo("Type##type", ref this.notificationTemplate.TypeInt, NotificationTemplate.TypeTitles);
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
case 1 or 2:
|
case 1 or 2:
|
||||||
ImGui.InputText(
|
ImGui.InputText(
|
||||||
"Icon Text##iconText",
|
"Icon Text##iconText"u8,
|
||||||
ref this.notificationTemplate.IconText,
|
ref this.notificationTemplate.IconText,
|
||||||
255);
|
255);
|
||||||
break;
|
break;
|
||||||
|
|
@ -92,13 +92,13 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
break;
|
break;
|
||||||
case 3 or 7:
|
case 3 or 7:
|
||||||
ImGui.InputText(
|
ImGui.InputText(
|
||||||
"Game Path##iconText",
|
"Game Path##iconText"u8,
|
||||||
ref this.notificationTemplate.IconText,
|
ref this.notificationTemplate.IconText,
|
||||||
255);
|
255);
|
||||||
break;
|
break;
|
||||||
case 4 or 8:
|
case 4 or 8:
|
||||||
ImGui.InputText(
|
ImGui.InputText(
|
||||||
"File Path##iconText",
|
"File Path##iconText"u8,
|
||||||
ref this.notificationTemplate.IconText,
|
ref this.notificationTemplate.IconText,
|
||||||
255);
|
255);
|
||||||
break;
|
break;
|
||||||
|
|
@ -119,19 +119,19 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
ref this.notificationTemplate.ProgressMode,
|
ref this.notificationTemplate.ProgressMode,
|
||||||
NotificationTemplate.ProgressModeTitles);
|
NotificationTemplate.ProgressModeTitles);
|
||||||
|
|
||||||
ImGui.Checkbox("Respect UI Hidden", ref this.notificationTemplate.RespectUiHidden);
|
ImGui.Checkbox("Respect UI Hidden"u8, ref this.notificationTemplate.RespectUiHidden);
|
||||||
|
|
||||||
ImGui.Checkbox("Minimized", ref this.notificationTemplate.Minimized);
|
ImGui.Checkbox("Minimized"u8, ref this.notificationTemplate.Minimized);
|
||||||
|
|
||||||
ImGui.Checkbox("Show Indeterminate If No Expiry", ref this.notificationTemplate.ShowIndeterminateIfNoExpiry);
|
ImGui.Checkbox("Show Indeterminate If No Expiry"u8, ref this.notificationTemplate.ShowIndeterminateIfNoExpiry);
|
||||||
|
|
||||||
ImGui.Checkbox("User Dismissable", ref this.notificationTemplate.UserDismissable);
|
ImGui.Checkbox("User Dismissable"u8, ref this.notificationTemplate.UserDismissable);
|
||||||
|
|
||||||
ImGui.Checkbox(
|
ImGui.Checkbox(
|
||||||
"Action Bar (always on if not user dismissable for the example)",
|
"Action Bar (always on if not user dismissable for the example)"u8,
|
||||||
ref this.notificationTemplate.ActionBar);
|
ref this.notificationTemplate.ActionBar);
|
||||||
|
|
||||||
if (ImGui.Button("Add notification"))
|
if (ImGui.Button("Add notification"u8))
|
||||||
{
|
{
|
||||||
var text =
|
var text =
|
||||||
"Bla bla bla bla bla bla bla bla bla bla bla.\nBla bla bla bla bla bla bla bla bla bla bla bla bla bla.";
|
"Bla bla bla bla bla bla bla bla bla bla bla.\nBla bla bla bla bla bla bla bla bla bla bla bla bla bla.";
|
||||||
|
|
@ -266,10 +266,10 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
n.DrawActions += an =>
|
n.DrawActions += an =>
|
||||||
{
|
{
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted($"{nclick}");
|
ImGui.Text($"{nclick}");
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Update"))
|
if (ImGui.Button("Update"u8))
|
||||||
{
|
{
|
||||||
NewRandom(out title, out type, out progress);
|
NewRandom(out title, out type, out progress);
|
||||||
an.Notification.Title = title;
|
an.Notification.Title = title;
|
||||||
|
|
@ -278,18 +278,18 @@ internal class ImGuiWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Dismiss"))
|
if (ImGui.Button("Dismiss"u8))
|
||||||
an.Notification.DismissNow();
|
an.Notification.DismissNow();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetNextItemWidth(an.MaxCoord.X - ImGui.GetCursorPosX());
|
ImGui.SetNextItemWidth(an.MaxCoord.X - ImGui.GetCursorPosX());
|
||||||
ImGui.InputText("##input", ref testString, 255);
|
ImGui.InputText("##input"u8, ref testString, 255);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Replace images using setter"))
|
if (ImGui.Button("Replace images using setter"u8))
|
||||||
{
|
{
|
||||||
foreach (var n in this.notifications)
|
foreach (var n in this.notifications)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ using System.Text;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Data;
|
using Dalamud.Data;
|
||||||
using Dalamud.Game.Inventory;
|
using Dalamud.Game.Inventory;
|
||||||
using Dalamud.Game.Text;
|
|
||||||
using Dalamud.Interface.Textures;
|
using Dalamud.Interface.Textures;
|
||||||
using Dalamud.Interface.Textures.Internal;
|
using Dalamud.Interface.Textures.Internal;
|
||||||
using Dalamud.Interface.Utility;
|
using Dalamud.Interface.Utility;
|
||||||
|
|
@ -63,11 +62,11 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
|
|
||||||
private unsafe void DrawInventoryTypeList()
|
private unsafe void DrawInventoryTypeList()
|
||||||
{
|
{
|
||||||
using var table = ImRaii.Table("InventoryTypeTable", 2, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings, new Vector2(300, -1));
|
using var table = ImRaii.Table("InventoryTypeTable"u8, 2, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings, new Vector2(300, -1));
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Type");
|
ImGui.TableSetupColumn("Type"u8);
|
||||||
ImGui.TableSetupColumn("Size", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Size"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupScrollFreeze(2, 1);
|
ImGui.TableSetupScrollFreeze(2, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -88,12 +87,12 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (contextMenu)
|
if (contextMenu)
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("Copy Name"))
|
if (ImGui.MenuItem("Copy Name"u8))
|
||||||
{
|
{
|
||||||
ImGui.SetClipboardText(inventoryType.ToString());
|
ImGui.SetClipboardText(inventoryType.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.MenuItem("Copy Address"))
|
if (ImGui.MenuItem("Copy Address"u8))
|
||||||
{
|
{
|
||||||
var container = InventoryManager.Instance()->GetInventoryContainer((InventoryType)inventoryType);
|
var container = InventoryManager.Instance()->GetInventoryContainer((InventoryType)inventoryType);
|
||||||
ImGui.SetClipboardText($"0x{(nint)container:X}");
|
ImGui.SetClipboardText($"0x{(nint)container:X}");
|
||||||
|
|
@ -102,7 +101,7 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Size
|
ImGui.TableNextColumn(); // Size
|
||||||
ImGui.TextUnformatted(items.Length.ToString());
|
ImGui.Text(items.Length.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,16 +110,16 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
var items = GameInventoryItem.GetReadOnlySpanOfInventory(inventoryType);
|
var items = GameInventoryItem.GetReadOnlySpanOfInventory(inventoryType);
|
||||||
if (items.IsEmpty)
|
if (items.IsEmpty)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{inventoryType} is empty.");
|
ImGui.Text($"{inventoryType} is empty.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using var itemTable = ImRaii.Table("InventoryItemTable", 4, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
using var itemTable = ImRaii.Table("InventoryItemTable"u8, 4, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!itemTable) return;
|
if (!itemTable) return;
|
||||||
ImGui.TableSetupColumn("Slot", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Slot"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("ItemId", ImGuiTableColumnFlags.WidthFixed, 70);
|
ImGui.TableSetupColumn("ItemId"u8, ImGuiTableColumnFlags.WidthFixed, 70);
|
||||||
ImGui.TableSetupColumn("Quantity", ImGuiTableColumnFlags.WidthFixed, 70);
|
ImGui.TableSetupColumn("Quantity"u8, ImGuiTableColumnFlags.WidthFixed, 70);
|
||||||
ImGui.TableSetupColumn("Item");
|
ImGui.TableSetupColumn("Item"u8);
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -132,7 +131,7 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Slot
|
ImGui.TableNextColumn(); // Slot
|
||||||
ImGui.TextUnformatted(slotIndex.ToString());
|
ImGui.Text(slotIndex.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // ItemId
|
ImGui.TableNextColumn(); // ItemId
|
||||||
ImGuiHelpers.ClickToCopyText(item.ItemId.ToString());
|
ImGuiHelpers.ClickToCopyText(item.ItemId.ToString());
|
||||||
|
|
@ -154,8 +153,8 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted("Click to copy IconId");
|
ImGui.Text("Click to copy IconId"u8);
|
||||||
ImGui.TextUnformatted($"ID: {iconId} – Size: {texture.Width}x{texture.Height}");
|
ImGui.Text($"ID: {iconId} – Size: {texture.Width}x{texture.Height}");
|
||||||
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
ImGui.Image(texture.Handle, new(texture.Width, texture.Height));
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
@ -174,7 +173,7 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (contextMenu)
|
if (contextMenu)
|
||||||
{
|
{
|
||||||
if (ImGui.MenuItem("Copy Name"))
|
if (ImGui.MenuItem("Copy Name"u8))
|
||||||
{
|
{
|
||||||
ImGui.SetClipboardText(itemName);
|
ImGui.SetClipboardText(itemName);
|
||||||
}
|
}
|
||||||
|
|
@ -186,15 +185,15 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
using var itemInfoTable = ImRaii.Table($"{inventoryType}_{slotIndex}_Table", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
using var itemInfoTable = ImRaii.Table($"{inventoryType}_{slotIndex}_Table", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!itemInfoTable) continue;
|
if (!itemInfoTable) continue;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.WidthFixed, 150);
|
ImGui.TableSetupColumn("Name"u8, ImGuiTableColumnFlags.WidthFixed, 150);
|
||||||
ImGui.TableSetupColumn("Value");
|
ImGui.TableSetupColumn("Value"u8);
|
||||||
// ImGui.TableHeadersRow();
|
// ImGui.TableHeadersRow();
|
||||||
|
|
||||||
static void AddKeyValueRow(string fieldName, string value)
|
static void AddKeyValueRow(string fieldName, string value)
|
||||||
{
|
{
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(fieldName);
|
ImGui.Text(fieldName);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGuiHelpers.ClickToCopyText(value);
|
ImGuiHelpers.ClickToCopyText(value);
|
||||||
}
|
}
|
||||||
|
|
@ -262,14 +261,14 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted("Stains");
|
ImGui.Text("Stains"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
|
|
||||||
using var stainTable = ImRaii.Table($"{inventoryType}_{slotIndex}_StainTable", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
using var stainTable = ImRaii.Table($"{inventoryType}_{slotIndex}_StainTable", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!stainTable) continue;
|
if (!stainTable) continue;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Stain Id", ImGuiTableColumnFlags.WidthFixed, 80);
|
ImGui.TableSetupColumn("Stain Id"u8, ImGuiTableColumnFlags.WidthFixed, 80);
|
||||||
ImGui.TableSetupColumn("Name");
|
ImGui.TableSetupColumn("Name"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
for (var i = 0; i < itemRow.DyeCount; i++)
|
for (var i = 0; i < itemRow.DyeCount; i++)
|
||||||
|
|
@ -283,14 +282,14 @@ internal class InventoryWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted("Materia");
|
ImGui.Text("Materia"u8);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
|
|
||||||
using var materiaTable = ImRaii.Table($"{inventoryType}_{slotIndex}_MateriaTable", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
using var materiaTable = ImRaii.Table($"{inventoryType}_{slotIndex}_MateriaTable", 2, ImGuiTableFlags.BordersInner | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!materiaTable) continue;
|
if (!materiaTable) continue;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Materia Id", ImGuiTableColumnFlags.WidthFixed, 80);
|
ImGui.TableSetupColumn("Materia Id"u8, ImGuiTableColumnFlags.WidthFixed, 80);
|
||||||
ImGui.TableSetupColumn("MateriaGrade Id");
|
ImGui.TableSetupColumn("MateriaGrade Id"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
for (var i = 0; i < Math.Min(itemRow.MateriaSlotCount, item.Materia.Length); i++)
|
for (var i = 0; i < Math.Min(itemRow.MateriaSlotCount, item.Materia.Length); i++)
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
var marketBoard = Service<MarketBoard>.Get();
|
var marketBoard = Service<MarketBoard>.Get();
|
||||||
if (ImGui.Checkbox("Track MarketBoard Events", ref this.trackMarketBoard))
|
if (ImGui.Checkbox("Track MarketBoard Events"u8, ref this.trackMarketBoard))
|
||||||
{
|
{
|
||||||
if (this.trackMarketBoard)
|
if (this.trackMarketBoard)
|
||||||
{
|
{
|
||||||
|
|
@ -90,21 +90,21 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X / 2);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X / 2);
|
||||||
if (ImGui.DragInt("Stored Number of Events", ref this.trackedEvents, 0.1f, 1, 512))
|
if (ImGui.DragInt("Stored Number of Events"u8, ref this.trackedEvents, 0.1f, 1, 512))
|
||||||
{
|
{
|
||||||
this.trackedEvents = Math.Clamp(this.trackedEvents, 1, 512);
|
this.trackedEvents = Math.Clamp(this.trackedEvents, 1, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Clear Stored Events"))
|
if (ImGui.Button("Clear Stored Events"u8))
|
||||||
{
|
{
|
||||||
this.marketBoardHistoryQueue.Clear();
|
this.marketBoardHistoryQueue.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabBar = ImRaii.TabBar("marketTabs"))
|
using (var tabBar = ImRaii.TabBar("marketTabs"u8))
|
||||||
{
|
{
|
||||||
if (tabBar)
|
if (tabBar)
|
||||||
{
|
{
|
||||||
using (var tabItem = ImRaii.TabItem("History"))
|
using (var tabItem = ImRaii.TabItem("History"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
|
|
@ -112,7 +112,7 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Offerings"))
|
using (var tabItem = ImRaii.TabItem("Offerings"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
|
|
@ -120,7 +120,7 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Purchases"))
|
using (var tabItem = ImRaii.TabItem("Purchases"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
|
|
@ -128,7 +128,7 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Purchase Requests"))
|
using (var tabItem = ImRaii.TabItem("Purchase Requests"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
|
|
@ -136,7 +136,7 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Taxes"))
|
using (var tabItem = ImRaii.TabItem("Taxes"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
|
|
@ -206,105 +206,105 @@ internal class MarketBoardWidget : IDataWindowWidget
|
||||||
private void DrawMarketBoardHistory((IMarketBoardHistory History, IMarketBoardHistoryListing Listing) data)
|
private void DrawMarketBoardHistory((IMarketBoardHistory History, IMarketBoardHistoryListing Listing) data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.History.ItemId.ToString());
|
ImGui.Text(data.History.ItemId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.Quantity.ToString());
|
ImGui.Text(data.Listing.Quantity.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.IsHq.ToString());
|
ImGui.Text(data.Listing.IsHq.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.SalePrice.ToString());
|
ImGui.Text(data.Listing.SalePrice.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.BuyerName);
|
ImGui.Text(data.Listing.BuyerName);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.PurchaseTime.ToString(CultureInfo.InvariantCulture));
|
ImGui.Text(data.Listing.PurchaseTime.ToString(CultureInfo.InvariantCulture));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawMarketBoardCurrentOfferings((IMarketBoardCurrentOfferings MarketBoardCurrentOfferings, IMarketBoardItemListing Listing) data)
|
private void DrawMarketBoardCurrentOfferings((IMarketBoardCurrentOfferings MarketBoardCurrentOfferings, IMarketBoardItemListing Listing) data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.ItemId.ToString());
|
ImGui.Text(data.Listing.ItemId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.ItemQuantity.ToString());
|
ImGui.Text(data.Listing.ItemQuantity.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.IsHq.ToString());
|
ImGui.Text(data.Listing.IsHq.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.PricePerUnit.ToString());
|
ImGui.Text(data.Listing.PricePerUnit.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Listing.RetainerName);
|
ImGui.Text(data.Listing.RetainerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawMarketBoardPurchases(IMarketBoardPurchase data)
|
private void DrawMarketBoardPurchases(IMarketBoardPurchase data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.CatalogId.ToString());
|
ImGui.Text(data.CatalogId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.ItemQuantity.ToString());
|
ImGui.Text(data.ItemQuantity.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawMarketBoardPurchaseRequests(IMarketBoardPurchaseHandler data)
|
private void DrawMarketBoardPurchaseRequests(IMarketBoardPurchaseHandler data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.CatalogId.ToString());
|
ImGui.Text(data.CatalogId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.IsHq.ToString());
|
ImGui.Text(data.IsHq.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.ItemQuantity.ToString());
|
ImGui.Text(data.ItemQuantity.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.PricePerUnit.ToString());
|
ImGui.Text(data.PricePerUnit.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.TotalTax.ToString());
|
ImGui.Text(data.TotalTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.RetainerCityId.ToString());
|
ImGui.Text(data.RetainerCityId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.ListingId.ToString());
|
ImGui.Text(data.ListingId.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.RetainerId.ToString());
|
ImGui.Text(data.RetainerId.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawMarketTaxRates(IMarketTaxRates data)
|
private void DrawMarketTaxRates(IMarketTaxRates data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.UldahTax.ToString());
|
ImGui.Text(data.UldahTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.LimsaLominsaTax.ToString());
|
ImGui.Text(data.LimsaLominsaTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.GridaniaTax.ToString());
|
ImGui.Text(data.GridaniaTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.IshgardTax.ToString());
|
ImGui.Text(data.IshgardTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.KuganeTax.ToString());
|
ImGui.Text(data.KuganeTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.CrystariumTax.ToString());
|
ImGui.Text(data.CrystariumTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.SharlayanTax.ToString());
|
ImGui.Text(data.SharlayanTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.TuliyollalTax.ToString());
|
ImGui.Text(data.TuliyollalTax.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.ValidUntil.ToString(CultureInfo.InvariantCulture));
|
ImGui.Text(data.ValidUntil.ToString(CultureInfo.InvariantCulture));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ internal class NetworkMonitorWidget : IDataWindowWidget
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
var network = Service<GameNetwork>.Get();
|
var network = Service<GameNetwork>.Get();
|
||||||
if (ImGui.Checkbox("Track Network Packets", ref this.trackNetwork))
|
if (ImGui.Checkbox("Track Network Packets"u8, ref this.trackNetwork))
|
||||||
{
|
{
|
||||||
if (this.trackNetwork)
|
if (this.trackNetwork)
|
||||||
{
|
{
|
||||||
|
|
@ -78,12 +78,12 @@ internal class NetworkMonitorWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X / 2);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X / 2);
|
||||||
if (ImGui.DragInt("Stored Number of Packets", ref this.trackedPackets, 0.1f, 1, 512))
|
if (ImGui.DragInt("Stored Number of Packets"u8, ref this.trackedPackets, 0.1f, 1, 512))
|
||||||
{
|
{
|
||||||
this.trackedPackets = Math.Clamp(this.trackedPackets, 1, 512);
|
this.trackedPackets = Math.Clamp(this.trackedPackets, 1, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Clear Stored Packets"))
|
if (ImGui.Button("Clear Stored Packets"u8))
|
||||||
{
|
{
|
||||||
this.packets.Clear();
|
this.packets.Clear();
|
||||||
}
|
}
|
||||||
|
|
@ -97,24 +97,24 @@ internal class NetworkMonitorWidget : IDataWindowWidget
|
||||||
private void DrawNetworkPacket(NetworkPacketData data)
|
private void DrawNetworkPacket(NetworkPacketData data)
|
||||||
{
|
{
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.Direction.ToString());
|
ImGui.Text(data.Direction.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.OpCode.ToString());
|
ImGui.Text(data.OpCode.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted($"0x{data.OpCode:X4}");
|
ImGui.Text($"0x{data.OpCode:X4}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.TargetActorId > 0 ? $"0x{data.TargetActorId:X}" : string.Empty);
|
ImGui.Text(data.TargetActorId > 0 ? $"0x{data.TargetActorId:X}" : string.Empty);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(data.SourceActorId > 0 ? $"0x{data.SourceActorId:X}" : string.Empty);
|
ImGui.Text(data.SourceActorId > 0 ? $"0x{data.SourceActorId:X}" : string.Empty);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (data.Data.Count > 0)
|
if (data.Data.Count > 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(string.Join(" ", data.Data.Select(b => b.ToString("X2"))));
|
ImGui.Text(string.Join(" ", data.Data.Select(b => b.ToString("X2"))));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -128,7 +128,7 @@ internal class NetworkMonitorWidget : IDataWindowWidget
|
||||||
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * ImGuiHelpers.GlobalScale, invalidRegEx);
|
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * ImGuiHelpers.GlobalScale, invalidRegEx);
|
||||||
using var color = ImRaii.PushColor(ImGuiCol.Border, 0xFF0000FF, invalidRegEx);
|
using var color = ImRaii.PushColor(ImGuiCol.Border, 0xFF0000FF, invalidRegEx);
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (!ImGui.InputTextWithHint("##Filter", "Regex Filter OpCodes...", ref this.filterString, 1024))
|
if (!ImGui.InputTextWithHint("##Filter"u8, "Regex Filter OpCodes..."u8, ref this.filterString, 1024))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -156,7 +156,7 @@ internal class NetworkMonitorWidget : IDataWindowWidget
|
||||||
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * ImGuiHelpers.GlobalScale, invalidRegEx);
|
using var style = ImRaii.PushStyle(ImGuiStyleVar.FrameBorderSize, 2 * ImGuiHelpers.GlobalScale, invalidRegEx);
|
||||||
using var color = ImRaii.PushColor(ImGuiCol.Border, 0xFF0000FF, invalidRegEx);
|
using var color = ImRaii.PushColor(ImGuiCol.Border, 0xFF0000FF, invalidRegEx);
|
||||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||||
if (!ImGui.InputTextWithHint("##NegativeFilter", "Regex Filter Against OpCodes...", ref this.negativeFilterString, 1024))
|
if (!ImGui.InputTextWithHint("##NegativeFilter"u8, "Regex Filter Against OpCodes..."u8, ref this.negativeFilterString, 1024))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ internal class NounProcessorWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted($"(Range: {minRowId} - {maxRowId})");
|
ImGui.Text($"(Range: {minRowId} - {maxRowId})");
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(120);
|
ImGui.SetNextItemWidth(120);
|
||||||
if (ImGui.InputInt("Amount###Amount", ref this.amount, 1, 10, flags: ImGuiInputTextFlags.AutoSelectAll))
|
if (ImGui.InputInt("Amount###Amount", ref this.amount, 1, 10, flags: ImGuiInputTextFlags.AutoSelectAll))
|
||||||
|
|
@ -137,7 +137,7 @@ internal class NounProcessorWidget : IDataWindowWidget
|
||||||
var numCases = language == ClientLanguage.German ? 4 : 1;
|
var numCases = language == ClientLanguage.German ? 4 : 1;
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
if (ImGui.Button("Copy as self-test entry"))
|
if (ImGui.Button("Copy as self-test entry"u8))
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
|
|
@ -164,10 +164,10 @@ internal class NounProcessorWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using var table = ImRaii.Table("TextDecoderTable", 1 + numCases, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
using var table = ImRaii.Table("TextDecoderTable"u8, 1 + numCases, ImGuiTableFlags.ScrollY | ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("ArticleType", ImGuiTableColumnFlags.WidthFixed, 150);
|
ImGui.TableSetupColumn("ArticleType"u8, ImGuiTableColumnFlags.WidthFixed, 150);
|
||||||
for (var i = 0; i < numCases; i++)
|
for (var i = 0; i < numCases; i++)
|
||||||
ImGui.TableSetupColumn(language == ClientLanguage.German ? GermanCases[i] : "Text");
|
ImGui.TableSetupColumn(language == ClientLanguage.German ? GermanCases[i] : "Text");
|
||||||
ImGui.TableSetupScrollFreeze(6, 1);
|
ImGui.TableSetupScrollFreeze(6, 1);
|
||||||
|
|
@ -194,11 +194,11 @@ internal class NounProcessorWidget : IDataWindowWidget
|
||||||
ArticleType = (int)articleType,
|
ArticleType = (int)articleType,
|
||||||
GrammaticalCase = currentCase,
|
GrammaticalCase = currentCase,
|
||||||
};
|
};
|
||||||
ImGui.TextUnformatted(nounProcessor.ProcessNoun(nounParams).ExtractText());
|
ImGui.Text(nounProcessor.ProcessNoun(nounParams).ExtractText());
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(ex.ToString());
|
ImGui.Text(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ internal class ObjectTableWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
ImGui.Checkbox("Resolve GameData", ref this.resolveGameData);
|
ImGui.Checkbox("Resolve GameData"u8, ref this.resolveGameData);
|
||||||
|
|
||||||
var chatGui = Service<ChatGui>.Get();
|
var chatGui = Service<ChatGui>.Get();
|
||||||
var clientState = Service<ClientState>.Get();
|
var clientState = Service<ClientState>.Get();
|
||||||
|
|
@ -46,11 +46,11 @@ internal class ObjectTableWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (clientState.LocalPlayer == null)
|
if (clientState.LocalPlayer == null)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("LocalPlayer null.");
|
ImGui.Text("LocalPlayer null."u8);
|
||||||
}
|
}
|
||||||
else if (clientState.IsPvPExcludingDen)
|
else if (clientState.IsPvPExcludingDen)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Cannot access object table while in PvP.");
|
ImGui.Text("Cannot access object table while in PvP."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -62,10 +62,10 @@ internal class ObjectTableWidget : IDataWindowWidget
|
||||||
stateString += $"LastLinkedItem: {chatGui.LastLinkedItemId}\n";
|
stateString += $"LastLinkedItem: {chatGui.LastLinkedItemId}\n";
|
||||||
stateString += $"TerritoryType: {clientState.TerritoryType}\n\n";
|
stateString += $"TerritoryType: {clientState.TerritoryType}\n\n";
|
||||||
|
|
||||||
ImGui.TextUnformatted(stateString);
|
ImGui.Text(stateString);
|
||||||
|
|
||||||
ImGui.Checkbox("Draw characters on screen", ref this.drawCharacters);
|
ImGui.Checkbox("Draw characters on screen"u8, ref this.drawCharacters);
|
||||||
ImGui.SliderFloat("Draw Distance", ref this.maxCharaDrawDistance, 2f, 40f);
|
ImGui.SliderFloat("Draw Distance"u8, ref this.maxCharaDrawDistance, 2f, 40f);
|
||||||
|
|
||||||
for (var i = 0; i < objectTable.Length; i++)
|
for (var i = 0; i < objectTable.Length; i++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ internal class PartyListWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var partyList = Service<PartyList>.Get();
|
var partyList = Service<PartyList>.Get();
|
||||||
|
|
||||||
ImGui.Checkbox("Resolve GameData", ref this.resolveGameData);
|
ImGui.Checkbox("Resolve GameData"u8, ref this.resolveGameData);
|
||||||
|
|
||||||
ImGui.Text($"GroupManager: {partyList.GroupManagerAddress.ToInt64():X}");
|
ImGui.Text($"GroupManager: {partyList.GroupManagerAddress.ToInt64():X}");
|
||||||
ImGui.Text($"GroupList: {partyList.GroupListAddress.ToInt64():X}");
|
ImGui.Text($"GroupList: {partyList.GroupListAddress.ToInt64():X}");
|
||||||
|
|
@ -54,7 +54,7 @@ internal class PartyListWidget : IDataWindowWidget
|
||||||
var actor = member.GameObject;
|
var actor = member.GameObject;
|
||||||
if (actor == null)
|
if (actor == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Actor was null");
|
ImGui.Text("Actor was null"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -94,27 +94,27 @@ internal class PluginIpcWidget : IDataWindowWidget
|
||||||
this.ipcSubGo.Subscribe(go => { Log.Information("GO: {Name}", go.Name); });
|
this.ipcSubGo.Subscribe(go => { Log.Information("GO: {Name}", go.Name); });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("PING"))
|
if (ImGui.Button("PING"u8))
|
||||||
{
|
{
|
||||||
this.ipcPub.SendMessage("PING");
|
this.ipcPub.SendMessage("PING");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Action"))
|
if (ImGui.Button("Action"u8))
|
||||||
{
|
{
|
||||||
this.ipcSub.InvokeAction("button1");
|
this.ipcSub.InvokeAction("button1");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Func"))
|
if (ImGui.Button("Func"u8))
|
||||||
{
|
{
|
||||||
this.callGateResponse = this.ipcSub.InvokeFunc("button2");
|
this.callGateResponse = this.ipcSub.InvokeFunc("button2");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Action GO"))
|
if (ImGui.Button("Action GO"u8))
|
||||||
{
|
{
|
||||||
this.ipcSubGo.InvokeAction(Service<ClientState>.Get().LocalPlayer);
|
this.ipcSubGo.InvokeAction(Service<ClientState>.Get().LocalPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Func GO"))
|
if (ImGui.Button("Func GO"u8))
|
||||||
{
|
{
|
||||||
this.callGateResponse = this.ipcSubGo.InvokeFunc(Service<ClientState>.Get().LocalPlayer);
|
this.callGateResponse = this.ipcSubGo.InvokeFunc(Service<ClientState>.Get().LocalPlayer);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,6 @@ internal class SeFontTestWidget : IDataWindowWidget
|
||||||
for (var i = min; i <= max; i++)
|
for (var i = min; i <= max; i++)
|
||||||
specialChars += $"0x{(int)i:X} - {(SeIconChar)i} - {i}\n";
|
specialChars += $"0x{(int)i:X} - {(SeIconChar)i} - {i}\n";
|
||||||
|
|
||||||
ImGui.TextUnformatted(specialChars);
|
ImGui.Text(specialChars);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
this.lastContentWidth = contentWidth;
|
this.lastContentWidth = contentWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
using var tabBar = ImRaii.TabBar("SeStringCreatorWidgetTabBar");
|
using var tabBar = ImRaii.TabBar("SeStringCreatorWidgetTabBar"u8);
|
||||||
if (!tabBar) return;
|
if (!tabBar) return;
|
||||||
|
|
||||||
this.DrawCreatorTab(contentWidth);
|
this.DrawCreatorTab(contentWidth);
|
||||||
|
|
@ -200,7 +200,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawCreatorTab(float contentWidth)
|
private void DrawCreatorTab(float contentWidth)
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem("Creator");
|
using var tab = ImRaii.TabItem("Creator"u8);
|
||||||
if (!tab) return;
|
if (!tab) return;
|
||||||
|
|
||||||
this.DrawControls();
|
this.DrawControls();
|
||||||
|
|
@ -216,7 +216,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
|
|
||||||
ImGui.Button("###InputPanelResizer", new Vector2(4, -1));
|
ImGui.Button("###InputPanelResizer"u8, new Vector2(4, -1));
|
||||||
if (ImGui.IsItemActive())
|
if (ImGui.IsItemActive())
|
||||||
{
|
{
|
||||||
this.inputsWidth += ImGui.GetIO().MouseDelta.X;
|
this.inputsWidth += ImGui.GetIO().MouseDelta.X;
|
||||||
|
|
@ -234,7 +234,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
using var child = ImRaii.Child("Preview", new Vector2(ImGui.GetContentRegionAvail().X, -1));
|
using var child = ImRaii.Child("Preview"u8, new Vector2(ImGui.GetContentRegionAvail().X, -1));
|
||||||
if (!child) return;
|
if (!child) return;
|
||||||
|
|
||||||
if (this.localParameters!.Length != 0)
|
if (this.localParameters!.Length != 0)
|
||||||
|
|
@ -251,17 +251,17 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
private unsafe void DrawGlobalParametersTab()
|
private unsafe void DrawGlobalParametersTab()
|
||||||
{
|
{
|
||||||
using var tab = ImRaii.TabItem("Global Parameters");
|
using var tab = ImRaii.TabItem("Global Parameters"u8);
|
||||||
if (!tab) return;
|
if (!tab) return;
|
||||||
|
|
||||||
using var table = ImRaii.Table("GlobalParametersTable", 5, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
using var table = ImRaii.Table("GlobalParametersTable"u8, 5, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, 40);
|
ImGui.TableSetupColumn("Id"u8, ImGuiTableColumnFlags.WidthFixed, 40);
|
||||||
ImGui.TableSetupColumn("Type", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Type"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("ValuePtr", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn("ValuePtr"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("Value", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Value"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("Description", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Description"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupScrollFreeze(5, 1);
|
ImGui.TableSetupScrollFreeze(5, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -272,10 +272,10 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn(); // Id
|
ImGui.TableNextColumn(); // Id
|
||||||
ImGui.TextUnformatted(i.ToString());
|
ImGui.Text(i.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // Type
|
ImGui.TableNextColumn(); // Type
|
||||||
ImGui.TextUnformatted(item.Type.ToString());
|
ImGui.Text(item.Type.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn(); // ValuePtr
|
ImGui.TableNextColumn(); // ValuePtr
|
||||||
WidgetUtil.DrawCopyableText($"0x{(nint)item.ValuePtr:X}");
|
WidgetUtil.DrawCopyableText($"0x{(nint)item.ValuePtr:X}");
|
||||||
|
|
@ -293,7 +293,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
if (item.ReferencedUtf8StringValue != null)
|
if (item.ReferencedUtf8StringValue != null)
|
||||||
WidgetUtil.DrawCopyableText(new ReadOnlySeStringSpan(item.ReferencedUtf8StringValue->Utf8String).ToString());
|
WidgetUtil.DrawCopyableText(new ReadOnlySeStringSpan(item.ReferencedUtf8StringValue->Utf8String).ToString());
|
||||||
else
|
else
|
||||||
ImGui.TextUnformatted("null");
|
ImGui.Text("null"u8);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -301,12 +301,12 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
if (item.StringValue.Value != null)
|
if (item.StringValue.Value != null)
|
||||||
WidgetUtil.DrawCopyableText(item.StringValue.ToString());
|
WidgetUtil.DrawCopyableText(item.StringValue.ToString());
|
||||||
else
|
else
|
||||||
ImGui.TextUnformatted("null");
|
ImGui.Text("null"u8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(i switch
|
ImGui.Text(i switch
|
||||||
{
|
{
|
||||||
0 => "Player Name",
|
0 => "Player Name",
|
||||||
1 => "Temp Player 1 Name",
|
1 => "Temp Player 1 Name",
|
||||||
|
|
@ -399,23 +399,23 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
private unsafe void DrawControls()
|
private unsafe void DrawControls()
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Add entry"))
|
if (ImGui.Button("Add entry"u8))
|
||||||
{
|
{
|
||||||
this.entries.Add(new(TextEntryType.String, string.Empty));
|
this.entries.Add(new(TextEntryType.String, string.Empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Add from Sheet"))
|
if (ImGui.Button("Add from Sheet"u8))
|
||||||
{
|
{
|
||||||
ImGui.OpenPopup("AddFromSheetPopup");
|
ImGui.OpenPopup("AddFromSheetPopup"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.DrawAddFromSheetPopup();
|
this.DrawAddFromSheetPopup();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Print"))
|
if (ImGui.Button("Print"u8))
|
||||||
{
|
{
|
||||||
var output = Utf8String.CreateEmpty();
|
var output = Utf8String.CreateEmpty();
|
||||||
var temp = Utf8String.CreateEmpty();
|
var temp = Utf8String.CreateEmpty();
|
||||||
|
|
@ -456,7 +456,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Print Evaluated"))
|
if (ImGui.Button("Print Evaluated"u8))
|
||||||
{
|
{
|
||||||
var sb = new LSeStringBuilder();
|
var sb = new LSeStringBuilder();
|
||||||
|
|
||||||
|
|
@ -487,7 +487,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Copy MacroString"))
|
if (ImGui.Button("Copy MacroString"u8))
|
||||||
{
|
{
|
||||||
var sb = new LSeStringBuilder();
|
var sb = new LSeStringBuilder();
|
||||||
|
|
||||||
|
|
@ -511,7 +511,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Clear entries"))
|
if (ImGui.Button("Clear entries"u8))
|
||||||
{
|
{
|
||||||
this.entries.Clear();
|
this.entries.Clear();
|
||||||
this.UpdateInputString();
|
this.UpdateInputString();
|
||||||
|
|
@ -522,12 +522,12 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
if (!raptureTextModule->MacroEncoder.EncoderError.IsEmpty)
|
if (!raptureTextModule->MacroEncoder.EncoderError.IsEmpty)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(raptureTextModule->MacroEncoder.EncoderError.ToString()); // TODO: EncoderError doesn't clear
|
ImGui.Text(raptureTextModule->MacroEncoder.EncoderError.ToString()); // TODO: EncoderError doesn't clear
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.SetNextItemWidth(90 * ImGuiHelpers.GlobalScale);
|
ImGui.SetNextItemWidth(90 * ImGuiHelpers.GlobalScale);
|
||||||
using (var dropdown = ImRaii.Combo("##Language", this.language.ToString() ?? "Language..."))
|
using (var dropdown = ImRaii.Combo("##Language"u8, this.language.ToString() ?? "Language..."))
|
||||||
{
|
{
|
||||||
if (dropdown)
|
if (dropdown)
|
||||||
{
|
{
|
||||||
|
|
@ -546,7 +546,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawAddFromSheetPopup()
|
private void DrawAddFromSheetPopup()
|
||||||
{
|
{
|
||||||
using var popup = ImRaii.Popup("AddFromSheetPopup");
|
using var popup = ImRaii.Popup("AddFromSheetPopup"u8);
|
||||||
if (!popup) return;
|
if (!popup) return;
|
||||||
|
|
||||||
var dataManager = Service<DataManager>.Get();
|
var dataManager = Service<DataManager>.Get();
|
||||||
|
|
@ -576,10 +576,10 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
var minRowId = (int)sheet.FirstOrDefault().RowId;
|
var minRowId = (int)sheet.FirstOrDefault().RowId;
|
||||||
var maxRowId = (int)sheet.LastOrDefault().RowId;
|
var maxRowId = (int)sheet.LastOrDefault().RowId;
|
||||||
|
|
||||||
var rowIdChanged = ImGui.InputInt("RowId", ref this.importRowId, 1, 10);
|
var rowIdChanged = ImGui.InputInt("RowId"u8, ref this.importRowId, 1, 10);
|
||||||
|
|
||||||
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
ImGui.SameLine(0, ImGui.GetStyle().ItemInnerSpacing.X);
|
||||||
ImGui.TextUnformatted($"(Range: {minRowId} - {maxRowId})");
|
ImGui.Text($"(Range: {minRowId} - {maxRowId})");
|
||||||
|
|
||||||
if (sheetChanged || rowIdChanged)
|
if (sheetChanged || rowIdChanged)
|
||||||
{
|
{
|
||||||
|
|
@ -592,17 +592,17 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (!sheet.TryGetRow((uint)this.importRowId, out var row))
|
if (!sheet.TryGetRow((uint)this.importRowId, out var row))
|
||||||
{
|
{
|
||||||
ImGui.TextColored(new Vector4(1, 0, 0, 1), "Row not found");
|
ImGui.TextColored(new Vector4(1, 0, 0, 1), "Row not found"u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextUnformatted("Select string to add:");
|
ImGui.Text("Select string to add:"u8);
|
||||||
|
|
||||||
using var table = ImRaii.Table("StringSelectionTable", 2, ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
using var table = ImRaii.Table("StringSelectionTable"u8, 2, ImGuiTableFlags.Borders | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Column", ImGuiTableColumnFlags.WidthFixed, 50);
|
ImGui.TableSetupColumn("Column"u8, ImGuiTableColumnFlags.WidthFixed, 50);
|
||||||
ImGui.TableSetupColumn("Value", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Value"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -618,7 +618,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(i.ToString());
|
ImGui.Text(i.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (ImGui.Selectable($"{value.ToString().Truncate(100)}###Column{i}"))
|
if (ImGui.Selectable($"{value.ToString().Truncate(100)}###Column{i}"))
|
||||||
|
|
@ -644,22 +644,22 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(e.Message);
|
ImGui.Text(e.Message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void DrawInputs()
|
private unsafe void DrawInputs()
|
||||||
{
|
{
|
||||||
using var child = ImRaii.Child("Inputs", new Vector2(this.inputsWidth, -1));
|
using var child = ImRaii.Child("Inputs"u8, new Vector2(this.inputsWidth, -1));
|
||||||
if (!child) return;
|
if (!child) return;
|
||||||
|
|
||||||
using var table = ImRaii.Table("StringMakerTable", 3, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
using var table = ImRaii.Table("StringMakerTable"u8, 3, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.NoSavedSettings);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Type", ImGuiTableColumnFlags.WidthFixed, 100);
|
ImGui.TableSetupColumn("Type"u8, ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
ImGui.TableSetupColumn("Text", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Text"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, 80);
|
ImGui.TableSetupColumn("Actions"u8, ImGuiTableColumnFlags.WidthFixed, 80);
|
||||||
ImGui.TableSetupScrollFreeze(3, 1);
|
ImGui.TableSetupScrollFreeze(3, 1);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -803,7 +803,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
private void DrawPreview(ReadOnlySeString str)
|
private void DrawPreview(ReadOnlySeString str)
|
||||||
{
|
{
|
||||||
using var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00);
|
using var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00);
|
||||||
using var node = ImRaii.TreeNode("Preview", ImGuiTreeNodeFlags.DefaultOpen);
|
using var node = ImRaii.TreeNode("Preview"u8, ImGuiTreeNodeFlags.DefaultOpen);
|
||||||
nodeColor.Pop();
|
nodeColor.Pop();
|
||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
|
|
@ -815,7 +815,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
private void DrawParameters()
|
private void DrawParameters()
|
||||||
{
|
{
|
||||||
using var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00);
|
using var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00);
|
||||||
using var node = ImRaii.TreeNode("Parameters", ImGuiTreeNodeFlags.DefaultOpen);
|
using var node = ImRaii.TreeNode("Parameters"u8, ImGuiTreeNodeFlags.DefaultOpen);
|
||||||
nodeColor.Pop();
|
nodeColor.Pop();
|
||||||
if (!node) return;
|
if (!node) return;
|
||||||
|
|
||||||
|
|
@ -843,7 +843,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
private void DrawPayloads(ReadOnlySeString evaluated)
|
private void DrawPayloads(ReadOnlySeString evaluated)
|
||||||
{
|
{
|
||||||
using (var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00))
|
using (var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00))
|
||||||
using (var node = ImRaii.TreeNode("Payloads", ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth))
|
using (var node = ImRaii.TreeNode("Payloads"u8, ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth))
|
||||||
{
|
{
|
||||||
nodeColor.Pop();
|
nodeColor.Pop();
|
||||||
if (node) this.DrawSeString("payloads", this.input.AsSpan(), treeNodeFlags: ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth);
|
if (node) this.DrawSeString("payloads", this.input.AsSpan(), treeNodeFlags: ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth);
|
||||||
|
|
@ -853,7 +853,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
return;
|
return;
|
||||||
|
|
||||||
using (var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00))
|
using (var nodeColor = ImRaii.PushColor(ImGuiCol.Text, 0xFF00FF00))
|
||||||
using (var node = ImRaii.TreeNode("Payloads (Evaluated)", ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth))
|
using (var node = ImRaii.TreeNode("Payloads (Evaluated)"u8, ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth))
|
||||||
{
|
{
|
||||||
nodeColor.Pop();
|
nodeColor.Pop();
|
||||||
if (node) this.DrawSeString("payloads-evaluated", evaluated.AsSpan(), treeNodeFlags: ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth);
|
if (node) this.DrawSeString("payloads-evaluated", evaluated.AsSpan(), treeNodeFlags: ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.SpanAvailWidth);
|
||||||
|
|
@ -899,12 +899,12 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
using var table = ImRaii.Table($"##Payload{payloadIdx}Table", 2);
|
using var table = ImRaii.Table($"##Payload{payloadIdx}Table", 2);
|
||||||
if (!table) return;
|
if (!table) return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("Label", ImGuiTableColumnFlags.WidthFixed, 120);
|
ImGui.TableSetupColumn("Label"u8, ImGuiTableColumnFlags.WidthFixed, 120);
|
||||||
ImGui.TableSetupColumn("Tree", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Tree"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
|
||||||
ImGui.TableNextRow();
|
ImGui.TableNextRow();
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(payload.Type == ReadOnlySePayloadType.Text ? "Text" : "ToString()");
|
ImGui.Text(payload.Type == ReadOnlySePayloadType.Text ? "Text" : "ToString()");
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
var text = payload.ToString();
|
var text = payload.ToString();
|
||||||
WidgetUtil.DrawCopyableText($"\"{text}\"", text);
|
WidgetUtil.DrawCopyableText($"\"{text}\"", text);
|
||||||
|
|
@ -944,13 +944,13 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
var expressionName = this.GetExpressionName(macroCode, subType, exprIdx, expr);
|
var expressionName = this.GetExpressionName(macroCode, subType, exprIdx, expr);
|
||||||
ImGui.TextUnformatted($"[{exprIdx}] " + (string.IsNullOrEmpty(expressionName) ? $"Expr {exprIdx}" : expressionName));
|
ImGui.Text($"[{exprIdx}] " + (string.IsNullOrEmpty(expressionName) ? $"Expr {exprIdx}" : expressionName));
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
|
|
||||||
if (expr.Body.IsEmpty)
|
if (expr.Body.IsEmpty)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("(?)");
|
ImGui.Text("(?)"u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -994,7 +994,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
if (!string.IsNullOrEmpty(name))
|
if (!string.IsNullOrEmpty(name))
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(name);
|
ImGui.Text(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1015,19 +1015,19 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
_ => typeof(EnglishArticleType),
|
_ => typeof(EnglishArticleType),
|
||||||
};
|
};
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(Enum.GetName(articleTypeEnumType, u32));
|
ImGui.Text(Enum.GetName(articleTypeEnumType, u32));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (macroCode is MacroCode.DeNoun && exprIdx == 4 && u32 is >= 0 and <= 4)
|
if (macroCode is MacroCode.DeNoun && exprIdx == 4 && u32 is >= 0 and <= 4)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(NounProcessorWidget.GermanCases[u32]);
|
ImGui.Text(NounProcessorWidget.GermanCases[u32]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (macroCode is MacroCode.Fixed && subType != null && fixedType != null && fixedType is 100 or 200 && subType == 5 && exprIdx == 2)
|
if (macroCode is MacroCode.Fixed && subType != null && fixedType != null && fixedType is 100 or 200 && subType == 5 && exprIdx == 2)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.SmallButton("Play"))
|
if (ImGui.SmallButton("Play"u8))
|
||||||
{
|
{
|
||||||
UIGlobals.PlayChatSoundEffect(u32 + 1);
|
UIGlobals.PlayChatSoundEffect(u32 + 1);
|
||||||
}
|
}
|
||||||
|
|
@ -1041,34 +1041,34 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
case LinkMacroPayloadType.Item when dataManager.GetExcelSheet<Item>(this.language).TryGetRow(u32, out var itemRow):
|
case LinkMacroPayloadType.Item when dataManager.GetExcelSheet<Item>(this.language).TryGetRow(u32, out var itemRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(itemRow.Name.ExtractText());
|
ImGui.Text(itemRow.Name.ExtractText());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LinkMacroPayloadType.Quest when dataManager.GetExcelSheet<Quest>(this.language).TryGetRow(u32, out var questRow):
|
case LinkMacroPayloadType.Quest when dataManager.GetExcelSheet<Quest>(this.language).TryGetRow(u32, out var questRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(questRow.Name.ExtractText());
|
ImGui.Text(questRow.Name.ExtractText());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LinkMacroPayloadType.Achievement when dataManager.GetExcelSheet<Achievement>(this.language).TryGetRow(u32, out var achievementRow):
|
case LinkMacroPayloadType.Achievement when dataManager.GetExcelSheet<Achievement>(this.language).TryGetRow(u32, out var achievementRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(achievementRow.Name.ExtractText());
|
ImGui.Text(achievementRow.Name.ExtractText());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LinkMacroPayloadType.HowTo when dataManager.GetExcelSheet<HowTo>(this.language).TryGetRow(u32, out var howToRow):
|
case LinkMacroPayloadType.HowTo when dataManager.GetExcelSheet<HowTo>(this.language).TryGetRow(u32, out var howToRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(howToRow.Name.ExtractText());
|
ImGui.Text(howToRow.Name.ExtractText());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LinkMacroPayloadType.Status when dataManager.GetExcelSheet<Status>(this.language).TryGetRow(u32, out var statusRow):
|
case LinkMacroPayloadType.Status when dataManager.GetExcelSheet<Status>(this.language).TryGetRow(u32, out var statusRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(statusRow.Name.ExtractText());
|
ImGui.Text(statusRow.Name.ExtractText());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LinkMacroPayloadType.AkatsukiNote when
|
case LinkMacroPayloadType.AkatsukiNote when
|
||||||
dataManager.GetSubrowExcelSheet<AkatsukiNote>(this.language).TryGetRow(u32, out var akatsukiNoteRow) &&
|
dataManager.GetSubrowExcelSheet<AkatsukiNote>(this.language).TryGetRow(u32, out var akatsukiNoteRow) &&
|
||||||
dataManager.GetExcelSheet<AkatsukiNoteString>(this.language).TryGetRow((uint)akatsukiNoteRow[0].Unknown2, out var akatsukiNoteStringRow):
|
dataManager.GetExcelSheet<AkatsukiNoteString>(this.language).TryGetRow((uint)akatsukiNoteRow[0].Unknown2, out var akatsukiNoteStringRow):
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted(akatsukiNoteStringRow.Unknown0.ExtractText());
|
ImGui.Text(akatsukiNoteStringRow.Unknown0.ExtractText());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1086,11 +1086,11 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(nativeName);
|
ImGui.Text(nativeName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextUnformatted($"?x{exprType:X02}");
|
ImGui.Text($"?x{exprType:X02}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1098,7 +1098,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{nativeName}({e1.ToString()})");
|
ImGui.Text($"{nativeName}({e1.ToString()})");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1109,7 +1109,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
if (((ExpressionType)exprType).GetNativeName() is { } nativeName)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{e1.ToString()} {nativeName} {e2.ToString()}");
|
ImGui.Text($"{e1.ToString()} {nativeName} {e2.ToString()}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1122,7 +1122,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
for (var i = 1; i < expr.Body.Length; i++)
|
for (var i = 1; i < expr.Body.Length; i++)
|
||||||
sb.Append($" {expr.Body[i]:X02}");
|
sb.Append($" {expr.Body[i]:X02}");
|
||||||
sb.Append(')');
|
sb.Append(')');
|
||||||
ImGui.TextUnformatted(sb.ToString());
|
ImGui.Text(sb.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetExpressionName(MacroCode macroCode, uint? subType, int idx, ReadOnlySeExpressionSpan expr)
|
private string GetExpressionName(MacroCode macroCode, uint? subType, int idx, ReadOnlySeExpressionSpan expr)
|
||||||
|
|
@ -1258,7 +1258,7 @@ internal class SeStringCreatorWidget : IDataWindowWidget
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted(tooltip);
|
ImGui.Text(tooltip);
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var t = this.style.ForceEdgeColor;
|
var t = this.style.ForceEdgeColor;
|
||||||
if (ImGui.Checkbox("Forced", ref t))
|
if (ImGui.Checkbox("Forced"u8, ref t))
|
||||||
this.style.ForceEdgeColor = t;
|
this.style.ForceEdgeColor = t;
|
||||||
|
|
||||||
t2 = ImGui.ColorConvertU32ToFloat4(this.style.ShadowColor ?? 0xFF000000u);
|
t2 = ImGui.ColorConvertU32ToFloat4(this.style.ShadowColor ?? 0xFF000000u);
|
||||||
|
|
@ -82,67 +82,67 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
this.style.LinkActiveBackColor = ImGui.ColorConvertFloat4ToU32(t2);
|
this.style.LinkActiveBackColor = ImGui.ColorConvertFloat4ToU32(t2);
|
||||||
|
|
||||||
var t3 = this.style.LineHeight ?? 1f;
|
var t3 = this.style.LineHeight ?? 1f;
|
||||||
if (ImGui.DragFloat("Line Height", ref t3, 0.01f, 0.4f, 3f, "%.02f"))
|
if (ImGui.DragFloat("Line Height"u8, ref t3, 0.01f, 0.4f, 3f, "%.02f"))
|
||||||
this.style.LineHeight = t3;
|
this.style.LineHeight = t3;
|
||||||
|
|
||||||
t3 = this.style.Opacity ?? ImGui.GetStyle().Alpha;
|
t3 = this.style.Opacity ?? ImGui.GetStyle().Alpha;
|
||||||
if (ImGui.DragFloat("Opacity", ref t3, 0.005f, 0f, 1f, "%.02f"))
|
if (ImGui.DragFloat("Opacity"u8, ref t3, 0.005f, 0f, 1f, "%.02f"))
|
||||||
this.style.Opacity = t3;
|
this.style.Opacity = t3;
|
||||||
|
|
||||||
t3 = this.style.EdgeStrength ?? 0.25f;
|
t3 = this.style.EdgeStrength ?? 0.25f;
|
||||||
if (ImGui.DragFloat("Edge Strength", ref t3, 0.005f, 0f, 1f, "%.02f"))
|
if (ImGui.DragFloat("Edge Strength"u8, ref t3, 0.005f, 0f, 1f, "%.02f"))
|
||||||
this.style.EdgeStrength = t3;
|
this.style.EdgeStrength = t3;
|
||||||
|
|
||||||
t = this.style.Edge;
|
t = this.style.Edge;
|
||||||
if (ImGui.Checkbox("Edge", ref t))
|
if (ImGui.Checkbox("Edge"u8, ref t))
|
||||||
this.style.Edge = t;
|
this.style.Edge = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.style.Bold;
|
t = this.style.Bold;
|
||||||
if (ImGui.Checkbox("Bold", ref t))
|
if (ImGui.Checkbox("Bold"u8, ref t))
|
||||||
this.style.Bold = t;
|
this.style.Bold = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.style.Italic;
|
t = this.style.Italic;
|
||||||
if (ImGui.Checkbox("Italic", ref t))
|
if (ImGui.Checkbox("Italic"u8, ref t))
|
||||||
this.style.Italic = t;
|
this.style.Italic = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.style.Shadow;
|
t = this.style.Shadow;
|
||||||
if (ImGui.Checkbox("Shadow", ref t))
|
if (ImGui.Checkbox("Shadow"u8, ref t))
|
||||||
this.style.Shadow = t;
|
this.style.Shadow = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var t4 = this.style.ThemeIndex ?? AtkStage.Instance()->AtkUIColorHolder->ActiveColorThemeType;
|
var t4 = this.style.ThemeIndex ?? AtkStage.Instance()->AtkUIColorHolder->ActiveColorThemeType;
|
||||||
ImGui.PushItemWidth(ImGui.CalcTextSize("WWWWWWWWWWWWWW").X);
|
ImGui.PushItemWidth(ImGui.CalcTextSize("WWWWWWWWWWWWWW"u8).X);
|
||||||
if (ImGui.Combo("##theme", ref t4, ThemeNames))
|
if (ImGui.Combo("##theme", ref t4, ThemeNames))
|
||||||
this.style.ThemeIndex = t4;
|
this.style.ThemeIndex = t4;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.style.LinkUnderlineThickness > 0f;
|
t = this.style.LinkUnderlineThickness > 0f;
|
||||||
if (ImGui.Checkbox("Link Underline", ref t))
|
if (ImGui.Checkbox("Link Underline"u8, ref t))
|
||||||
this.style.LinkUnderlineThickness = t ? 1f : 0f;
|
this.style.LinkUnderlineThickness = t ? 1f : 0f;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.style.WrapWidth is null;
|
t = this.style.WrapWidth is null;
|
||||||
if (ImGui.Checkbox("Word Wrap", ref t))
|
if (ImGui.Checkbox("Word Wrap"u8, ref t))
|
||||||
this.style.WrapWidth = t ? null : float.PositiveInfinity;
|
this.style.WrapWidth = t ? null : float.PositiveInfinity;
|
||||||
|
|
||||||
t = this.interactable;
|
t = this.interactable;
|
||||||
if (ImGui.Checkbox("Interactable", ref t))
|
if (ImGui.Checkbox("Interactable"u8, ref t))
|
||||||
this.interactable = t;
|
this.interactable = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.useEntity;
|
t = this.useEntity;
|
||||||
if (ImGui.Checkbox("Use Entity Replacements", ref t))
|
if (ImGui.Checkbox("Use Entity Replacements"u8, ref t))
|
||||||
this.useEntity = t;
|
this.useEntity = t;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
t = this.alignToFramePadding;
|
t = this.alignToFramePadding;
|
||||||
if (ImGui.Checkbox("Align to Frame Padding", ref t))
|
if (ImGui.Checkbox("Align to Frame Padding"u8, ref t))
|
||||||
this.alignToFramePadding = t;
|
this.alignToFramePadding = t;
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("LogKind Preview"))
|
if (ImGui.CollapsingHeader("LogKind Preview"u8))
|
||||||
{
|
{
|
||||||
if (this.logkind is null)
|
if (this.logkind is null)
|
||||||
{
|
{
|
||||||
|
|
@ -174,17 +174,17 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
ImGuiHelpers.SeStringWrapped(this.logkind.Value.Data.Span, this.style);
|
ImGuiHelpers.SeStringWrapped(this.logkind.Value.Data.Span, this.style);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Addon Table"))
|
if (ImGui.CollapsingHeader("Addon Table"u8))
|
||||||
{
|
{
|
||||||
if (ImGui.BeginTable("Addon Sheet", 3))
|
if (ImGui.BeginTable("Addon Sheet"u8, 3))
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("Row ID", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("0000000").X);
|
ImGui.TableSetupColumn("Row ID"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("0000000"u8).X);
|
||||||
ImGui.TableSetupColumn("Text", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Text"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Misc",
|
"Misc"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("AAAAAAAAAAAAAAAAA").X);
|
ImGui.CalcTextSize("AAAAAAAAAAAAAAAAA"u8).X);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var addon = Service<DataManager>.GetNullable()?.GetExcelSheet<Addon>() ??
|
var addon = Service<DataManager>.GetNullable()?.GetExcelSheet<Addon>() ??
|
||||||
|
|
@ -203,14 +203,14 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted($"{row.RowId}");
|
ImGui.Text($"{row.RowId}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGuiHelpers.SeStringWrapped(row.Text, this.style);
|
ImGuiHelpers.SeStringWrapped(row.Text, this.style);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
if (ImGui.Button("Print to Chat"))
|
if (ImGui.Button("Print to Chat"u8))
|
||||||
Service<ChatGui>.Get().Print(row.Text.ToDalamudString());
|
Service<ChatGui>.Get().Print(row.Text.ToDalamudString());
|
||||||
|
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
|
|
@ -222,7 +222,7 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Reset Text") || this.testStringBuffer.IsDisposed)
|
if (ImGui.Button("Reset Text"u8) || this.testStringBuffer.IsDisposed)
|
||||||
{
|
{
|
||||||
this.testStringBuffer.Dispose();
|
this.testStringBuffer.Dispose();
|
||||||
this.testStringBuffer = ImVectorWrapper.CreateFromSpan(
|
this.testStringBuffer = ImVectorWrapper.CreateFromSpan(
|
||||||
|
|
@ -233,7 +233,7 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Print to Chat Log"))
|
if (ImGui.Button("Print to Chat Log"u8))
|
||||||
{
|
{
|
||||||
Service<ChatGui>.Get().Print(
|
Service<ChatGui>.Get().Print(
|
||||||
Game.Text.SeStringHandling.SeString.Parse(
|
Game.Text.SeStringHandling.SeString.Parse(
|
||||||
|
|
@ -299,7 +299,7 @@ internal unsafe class SeStringRendererTestWidget : IDataWindowWidget
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (this.alignToFramePadding)
|
if (this.alignToFramePadding)
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted($"Hovered[{offset}]: {new ReadOnlySeStringSpan(envelope).ToString()}; {payload}");
|
ImGui.Text($"Hovered[{offset}]: {new ReadOnlySeStringSpan(envelope).ToString()}; {payload}");
|
||||||
if (clicked && payload is DalamudLinkPayload { Plugin: "test" } dlp)
|
if (clicked && payload is DalamudLinkPayload { Plugin: "test" } dlp)
|
||||||
Util.OpenLink(dlp.ExtraString);
|
Util.OpenLink(dlp.ExtraString);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,31 +43,31 @@ internal class ServicesWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var container = Service<ServiceContainer>.Get();
|
var container = Service<ServiceContainer>.Get();
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Dependencies"))
|
if (ImGui.CollapsingHeader("Dependencies"u8))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Clear selection"))
|
if (ImGui.Button("Clear selection"u8))
|
||||||
this.selectedNodes.Clear();
|
this.selectedNodes.Clear();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
switch (this.includeUnloadDependencies)
|
switch (this.includeUnloadDependencies)
|
||||||
{
|
{
|
||||||
case true when ImGui.Button("Show load-time dependencies"):
|
case true when ImGui.Button("Show load-time dependencies"u8):
|
||||||
this.includeUnloadDependencies = false;
|
this.includeUnloadDependencies = false;
|
||||||
this.dependencyNodes = null;
|
this.dependencyNodes = null;
|
||||||
break;
|
break;
|
||||||
case false when ImGui.Button("Show unload-time dependencies"):
|
case false when ImGui.Button("Show unload-time dependencies"u8):
|
||||||
this.includeUnloadDependencies = true;
|
this.includeUnloadDependencies = true;
|
||||||
this.dependencyNodes = null;
|
this.dependencyNodes = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dependencyNodes ??= ServiceDependencyNode.CreateTreeByLevel(this.includeUnloadDependencies);
|
this.dependencyNodes ??= ServiceDependencyNode.CreateTreeByLevel(this.includeUnloadDependencies);
|
||||||
var cellPad = ImGui.CalcTextSize("WW");
|
var cellPad = ImGui.CalcTextSize("WW"u8);
|
||||||
var margin = ImGui.CalcTextSize("W\nW\nW");
|
var margin = ImGui.CalcTextSize("W\nW\nW"u8);
|
||||||
var rowHeight = cellPad.Y * 3;
|
var rowHeight = cellPad.Y * 3;
|
||||||
var width = ImGui.GetContentRegionAvail().X;
|
var width = ImGui.GetContentRegionAvail().X;
|
||||||
if (ImGui.BeginChild(
|
if (ImGui.BeginChild(
|
||||||
"dependency-graph",
|
"dependency-graph"u8,
|
||||||
new(width, (this.dependencyNodes.Count * (rowHeight + margin.Y)) + cellPad.Y),
|
new(width, (this.dependencyNodes.Count * (rowHeight + margin.Y)) + cellPad.Y),
|
||||||
false,
|
false,
|
||||||
ImGuiWindowFlags.HorizontalScrollbar))
|
ImGuiWindowFlags.HorizontalScrollbar))
|
||||||
|
|
@ -196,10 +196,10 @@ internal class ServicesWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SetCursorPos((new Vector2(rc.X, rc.Y) - pos) + ((cellSize - textSize) / 2));
|
ImGui.SetCursorPos((new Vector2(rc.X, rc.Y) - pos) + ((cellSize - textSize) / 2));
|
||||||
ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, Vector2.Zero);
|
ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, Vector2.Zero);
|
||||||
ImGui.TextUnformatted(node.DisplayedName);
|
ImGui.Text(node.DisplayedName);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.PushStyleColor(ImGuiCol.Text, node.TypeSuffixColor);
|
ImGui.PushStyleColor(ImGuiCol.Text, node.TypeSuffixColor);
|
||||||
ImGui.TextUnformatted(node.TypeSuffix);
|
ImGui.Text(node.TypeSuffix);
|
||||||
ImGui.PopStyleVar();
|
ImGui.PopStyleVar();
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
}
|
}
|
||||||
|
|
@ -237,7 +237,7 @@ internal class ServicesWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Singleton Services"))
|
if (ImGui.CollapsingHeader("Singleton Services"u8))
|
||||||
{
|
{
|
||||||
foreach (var instance in container.Instances)
|
foreach (var instance in container.Instances)
|
||||||
{
|
{
|
||||||
|
|
@ -248,20 +248,20 @@ internal class ServicesWidget : IDataWindowWidget
|
||||||
if (isPublic)
|
if (isPublic)
|
||||||
{
|
{
|
||||||
using var color = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
|
using var color = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
|
||||||
ImGui.Text("\t => PUBLIC!!!");
|
ImGui.Text("\t => PUBLIC!!!"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (instance.Value.Visibility)
|
switch (instance.Value.Visibility)
|
||||||
{
|
{
|
||||||
case ObjectInstanceVisibility.Internal:
|
case ObjectInstanceVisibility.Internal:
|
||||||
ImGui.Text("\t => Internally resolved");
|
ImGui.Text("\t => Internally resolved"u8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ObjectInstanceVisibility.ExposedToPlugins:
|
case ObjectInstanceVisibility.ExposedToPlugins:
|
||||||
var hasInterface = container.InterfaceToTypeMap.Values.Any(x => x == instance.Key);
|
var hasInterface = container.InterfaceToTypeMap.Values.Any(x => x == instance.Key);
|
||||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed, !hasInterface))
|
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed, !hasInterface))
|
||||||
{
|
{
|
||||||
ImGui.Text("\t => Exposed to plugins!");
|
ImGui.Text("\t => Exposed to plugins!"u8);
|
||||||
ImGui.Text(
|
ImGui.Text(
|
||||||
hasInterface
|
hasInterface
|
||||||
? $"\t => Provided via interface: {container.InterfaceToTypeMap.First(x => x.Value == instance.Key).Key.FullName}"
|
? $"\t => Provided via interface: {container.InterfaceToTypeMap.First(x => x.Value == instance.Key).Key.FullName}"
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ internal class TargetWidget : IDataWindowWidget
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public void Draw()
|
public void Draw()
|
||||||
{
|
{
|
||||||
ImGui.Checkbox("Resolve GameData", ref this.resolveGameData);
|
ImGui.Checkbox("Resolve GameData"u8, ref this.resolveGameData);
|
||||||
|
|
||||||
var clientState = Service<ClientState>.Get();
|
var clientState = Service<ClientState>.Get();
|
||||||
var targetMgr = Service<TargetManager>.Get();
|
var targetMgr = Service<TargetManager>.Get();
|
||||||
|
|
@ -40,7 +40,7 @@ internal class TargetWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
Util.PrintGameObject(targetMgr.Target, "CurrentTarget", this.resolveGameData);
|
Util.PrintGameObject(targetMgr.Target, "CurrentTarget", this.resolveGameData);
|
||||||
|
|
||||||
ImGui.Text("Target");
|
ImGui.Text("Target"u8);
|
||||||
Util.ShowGameObjectStruct(targetMgr.Target);
|
Util.ShowGameObjectStruct(targetMgr.Target);
|
||||||
|
|
||||||
var tot = targetMgr.Target.TargetObject;
|
var tot = targetMgr.Target.TargetObject;
|
||||||
|
|
@ -49,7 +49,7 @@ internal class TargetWidget : IDataWindowWidget
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text("ToT");
|
ImGui.Text("ToT"u8);
|
||||||
Util.ShowGameObjectStruct(tot);
|
Util.ShowGameObjectStruct(tot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -74,25 +74,25 @@ internal class TargetWidget : IDataWindowWidget
|
||||||
if (targetMgr.MouseOverNameplateTarget != null)
|
if (targetMgr.MouseOverNameplateTarget != null)
|
||||||
Util.PrintGameObject(targetMgr.MouseOverNameplateTarget, "MouseOverNameplateTarget", this.resolveGameData);
|
Util.PrintGameObject(targetMgr.MouseOverNameplateTarget, "MouseOverNameplateTarget", this.resolveGameData);
|
||||||
|
|
||||||
if (ImGui.Button("Clear CT"))
|
if (ImGui.Button("Clear CT"u8))
|
||||||
targetMgr.Target = null;
|
targetMgr.Target = null;
|
||||||
|
|
||||||
if (ImGui.Button("Clear FT"))
|
if (ImGui.Button("Clear FT"u8))
|
||||||
targetMgr.FocusTarget = null;
|
targetMgr.FocusTarget = null;
|
||||||
|
|
||||||
var localPlayer = clientState.LocalPlayer;
|
var localPlayer = clientState.LocalPlayer;
|
||||||
|
|
||||||
if (localPlayer != null)
|
if (localPlayer != null)
|
||||||
{
|
{
|
||||||
if (ImGui.Button("Set CT"))
|
if (ImGui.Button("Set CT"u8))
|
||||||
targetMgr.Target = localPlayer;
|
targetMgr.Target = localPlayer;
|
||||||
|
|
||||||
if (ImGui.Button("Set FT"))
|
if (ImGui.Button("Set FT"u8))
|
||||||
targetMgr.FocusTarget = localPlayer;
|
targetMgr.FocusTarget = localPlayer;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("LocalPlayer is null.");
|
ImGui.Text("LocalPlayer is null."u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// ReSharper disable MethodSupportsCancellation // Using alternative method of cancelling tasks by throwing exceptions.
|
// ReSharper disable MethodSupportsCancellation // Using alternative method of cancelling tasks by throwing exceptions.
|
||||||
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -54,7 +54,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var framework = Service<Framework>.Get();
|
var framework = Service<Framework>.Get();
|
||||||
|
|
||||||
if (ImGui.Button("Clear list"))
|
if (ImGui.Button("Clear list"u8))
|
||||||
{
|
{
|
||||||
TaskTracker.Clear();
|
TaskTracker.Clear();
|
||||||
}
|
}
|
||||||
|
|
@ -63,23 +63,23 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Cancel using CancellationTokenSource"))
|
if (ImGui.Button("Cancel using CancellationTokenSource"u8))
|
||||||
{
|
{
|
||||||
this.taskSchedulerCancelSource.Cancel();
|
this.taskSchedulerCancelSource.Cancel();
|
||||||
this.taskSchedulerCancelSource = new();
|
this.taskSchedulerCancelSource = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Run in any thread: ");
|
ImGui.Text("Run in any thread: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Short Task.Run"))
|
if (ImGui.Button("Short Task.Run"u8))
|
||||||
{
|
{
|
||||||
Task.Run(() => { Thread.Sleep(500); });
|
Task.Run(() => { Thread.Sleep(500); });
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Task in task(Delay)"))
|
if (ImGui.Button("Task in task(Delay)"u8))
|
||||||
{
|
{
|
||||||
var token = this.taskSchedulerCancelSource.Token;
|
var token = this.taskSchedulerCancelSource.Token;
|
||||||
Task.Run(async () => await this.TestTaskInTaskDelay(token), token);
|
Task.Run(async () => await this.TestTaskInTaskDelay(token), token);
|
||||||
|
|
@ -87,14 +87,14 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Task in task(Sleep)"))
|
if (ImGui.Button("Task in task(Sleep)"u8))
|
||||||
{
|
{
|
||||||
Task.Run(async () => await this.TestTaskInTaskSleep());
|
Task.Run(async () => await this.TestTaskInTaskSleep());
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Faulting task"))
|
if (ImGui.Button("Faulting task"u8))
|
||||||
{
|
{
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
|
@ -104,43 +104,43 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Run in Framework.Update: ");
|
ImGui.Text("Run in Framework.Update: "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("ASAP"))
|
if (ImGui.Button("ASAP"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => Log.Information("Framework.Update - ASAP"), cancellationToken: this.taskSchedulerCancelSource.Token);
|
_ = framework.RunOnTick(() => Log.Information("Framework.Update - ASAP"), cancellationToken: this.taskSchedulerCancelSource.Token);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("In 1s"))
|
if (ImGui.Button("In 1s"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 1s"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1));
|
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 1s"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("In 60f"))
|
if (ImGui.Button("In 60f"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 60f"), cancellationToken: this.taskSchedulerCancelSource.Token, delayTicks: 60);
|
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 60f"), cancellationToken: this.taskSchedulerCancelSource.Token, delayTicks: 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("In 1s+120f"))
|
if (ImGui.Button("In 1s+120f"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 1s+120f"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1), delayTicks: 120);
|
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 1s+120f"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1), delayTicks: 120);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("In 2s+60f"))
|
if (ImGui.Button("In 2s+60f"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 2s+60f"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(2), delayTicks: 60);
|
_ = framework.RunOnTick(() => Log.Information("Framework.Update - In 2s+60f"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(2), delayTicks: 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Every 60f"))
|
if (ImGui.Button("Every 60f"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(
|
_ = framework.RunOnTick(
|
||||||
async () =>
|
async () =>
|
||||||
|
|
@ -158,7 +158,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Every 1s"))
|
if (ImGui.Button("Every 1s"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(
|
_ = framework.RunOnTick(
|
||||||
async () =>
|
async () =>
|
||||||
|
|
@ -176,7 +176,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Every 60f (Await)"))
|
if (ImGui.Button("Every 60f (Await)"u8))
|
||||||
{
|
{
|
||||||
_ = framework.Run(
|
_ = framework.Run(
|
||||||
async () =>
|
async () =>
|
||||||
|
|
@ -194,7 +194,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Every 1s (Await)"))
|
if (ImGui.Button("Every 1s (Await)"u8))
|
||||||
{
|
{
|
||||||
_ = framework.Run(
|
_ = framework.Run(
|
||||||
async () =>
|
async () =>
|
||||||
|
|
@ -212,7 +212,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("As long as it's in Framework Thread"))
|
if (ImGui.Button("As long as it's in Framework Thread"u8))
|
||||||
{
|
{
|
||||||
Task.Run(async () => await framework.RunOnFrameworkThread(() => { Log.Information("Task dispatched from non-framework.update thread"); }));
|
Task.Run(async () => await framework.RunOnFrameworkThread(() => { Log.Information("Task dispatched from non-framework.update thread"); }));
|
||||||
framework.RunOnFrameworkThread(() => { Log.Information("Task dispatched from framework.update thread"); }).Wait();
|
framework.RunOnFrameworkThread(() => { Log.Information("Task dispatched from framework.update thread"); }).Wait();
|
||||||
|
|
@ -220,14 +220,14 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Error in 1s"))
|
if (ImGui.Button("Error in 1s"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnTick(() => throw new Exception("Test Exception"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1));
|
_ = framework.RunOnTick(() => throw new Exception("Test Exception"), cancellationToken: this.taskSchedulerCancelSource.Token, delay: TimeSpan.FromSeconds(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Freeze 1s"))
|
if (ImGui.Button("Freeze 1s"u8))
|
||||||
{
|
{
|
||||||
_ = framework.RunOnFrameworkThread(() => Helper().Wait());
|
_ = framework.RunOnFrameworkThread(() => Helper().Wait());
|
||||||
static async Task Helper() => await Task.Delay(1000);
|
static async Task Helper() => await Task.Delay(1000);
|
||||||
|
|
@ -235,16 +235,16 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("Freeze Completely"))
|
if (ImGui.Button("Freeze Completely"u8))
|
||||||
{
|
{
|
||||||
_ = framework.Run(() => Helper().Wait());
|
_ = framework.Run(() => Helper().Wait());
|
||||||
static async Task Helper() => await Task.Delay(1000);
|
static async Task Helper() => await Task.Delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Download"))
|
if (ImGui.CollapsingHeader("Download"u8))
|
||||||
{
|
{
|
||||||
ImGui.InputText("URL", ref this.url);
|
ImGui.InputText("URL"u8, ref this.url);
|
||||||
ImGui.InputText("Local Path", ref this.localPath);
|
ImGui.InputText("Local Path"u8, ref this.localPath);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGuiComponents.IconButton("##localpathpicker", FontAwesomeIcon.File))
|
if (ImGuiComponents.IconButton("##localpathpicker", FontAwesomeIcon.File))
|
||||||
|
|
@ -264,16 +264,16 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TextUnformatted($"{this.downloadState.Downloaded:##,###}/{this.downloadState.Total:##,###} ({this.downloadState.Percentage:0.00}%)");
|
ImGui.Text($"{this.downloadState.Downloaded:##,###}/{this.downloadState.Total:##,###} ({this.downloadState.Percentage:0.00}%)");
|
||||||
|
|
||||||
using var disabled =
|
using var disabled =
|
||||||
ImRaii.Disabled(this.downloadTask?.IsCompleted is false || this.localPath[0] == 0);
|
ImRaii.Disabled(this.downloadTask?.IsCompleted is false || this.localPath[0] == 0);
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted("Download");
|
ImGui.Text("Download"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var downloadUsingGlobalScheduler = ImGui.Button("using default scheduler");
|
var downloadUsingGlobalScheduler = ImGui.Button("using default scheduler"u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var downloadUsingFramework = ImGui.Button("using Framework.Update");
|
var downloadUsingFramework = ImGui.Button("using Framework.Update"u8);
|
||||||
if (downloadUsingGlobalScheduler || downloadUsingFramework)
|
if (downloadUsingGlobalScheduler || downloadUsingFramework)
|
||||||
{
|
{
|
||||||
var ct = this.taskSchedulerCancelSource.Token;
|
var ct = this.taskSchedulerCancelSource.Token;
|
||||||
|
|
@ -328,7 +328,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Drown in tasks"))
|
if (ImGui.Button("Drown in tasks"u8))
|
||||||
{
|
{
|
||||||
var token = this.taskSchedulerCancelSource.Token;
|
var token = this.taskSchedulerCancelSource.Token;
|
||||||
Task.Run(
|
Task.Run(
|
||||||
|
|
@ -414,7 +414,7 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
task.IsBeingViewed = true;
|
task.IsBeingViewed = true;
|
||||||
|
|
||||||
if (ImGui.Button("CANCEL (May not work)"))
|
if (ImGui.Button("CANCEL (May not work)"u8))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -430,13 +430,13 @@ internal class TaskSchedulerWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
||||||
ImGui.TextUnformatted(task.StackTrace?.ToString());
|
ImGui.Text(task.StackTrace?.ToString());
|
||||||
|
|
||||||
if (task.Exception != null)
|
if (task.Exception != null)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.ScaledDummy(15);
|
ImGuiHelpers.ScaledDummy(15);
|
||||||
ImGui.TextColored(ImGuiColors.DalamudRed, "EXCEPTION:");
|
ImGui.TextColored(ImGuiColors.DalamudRed, "EXCEPTION:"u8);
|
||||||
ImGui.TextUnformatted(task.Exception.ToString());
|
ImGui.Text(task.Exception.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -127,11 +127,11 @@ internal class TexWidget : IDataWindowWidget
|
||||||
this.textureManager = Service<TextureManager>.Get();
|
this.textureManager = Service<TextureManager>.Get();
|
||||||
var conf = Service<DalamudConfiguration>.Get();
|
var conf = Service<DalamudConfiguration>.Get();
|
||||||
|
|
||||||
if (ImGui.Button("GC"))
|
if (ImGui.Button("GC"u8))
|
||||||
GC.Collect();
|
GC.Collect();
|
||||||
|
|
||||||
var useTexturePluginTracking = conf.UseTexturePluginTracking;
|
var useTexturePluginTracking = conf.UseTexturePluginTracking;
|
||||||
if (ImGui.Checkbox("Enable Texture Tracking", ref useTexturePluginTracking))
|
if (ImGui.Checkbox("Enable Texture Tracking"u8, ref useTexturePluginTracking))
|
||||||
{
|
{
|
||||||
conf.UseTexturePluginTracking = useTexturePluginTracking;
|
conf.UseTexturePluginTracking = useTexturePluginTracking;
|
||||||
conf.QueueSave();
|
conf.QueueSave();
|
||||||
|
|
@ -140,7 +140,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
var allBlames = this.textureManager.BlameTracker;
|
var allBlames = this.textureManager.BlameTracker;
|
||||||
lock (allBlames)
|
lock (allBlames)
|
||||||
{
|
{
|
||||||
ImGui.PushID("blames");
|
ImGui.PushID("blames"u8);
|
||||||
var sizeSum = allBlames.Sum(static x => Math.Max(0, x.RawSpecs.EstimatedBytes));
|
var sizeSum = allBlames.Sum(static x => Math.Max(0, x.RawSpecs.EstimatedBytes));
|
||||||
if (ImGui.CollapsingHeader(
|
if (ImGui.CollapsingHeader(
|
||||||
$"All Loaded Textures: {allBlames.Count:n0} ({Util.FormatBytes(sizeSum)})###header"))
|
$"All Loaded Textures: {allBlames.Count:n0} ({Util.FormatBytes(sizeSum)})###header"))
|
||||||
|
|
@ -148,19 +148,19 @@ internal class TexWidget : IDataWindowWidget
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.PushID("loadedGameTextures");
|
ImGui.PushID("loadedGameTextures"u8);
|
||||||
if (ImGui.CollapsingHeader(
|
if (ImGui.CollapsingHeader(
|
||||||
$"Loaded Game Textures: {this.textureManager.Shared.ForDebugGamePathTextures.Count:n0}###header"))
|
$"Loaded Game Textures: {this.textureManager.Shared.ForDebugGamePathTextures.Count:n0}###header"))
|
||||||
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugGamePathTextures);
|
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugGamePathTextures);
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
|
|
||||||
ImGui.PushID("loadedFileTextures");
|
ImGui.PushID("loadedFileTextures"u8);
|
||||||
if (ImGui.CollapsingHeader(
|
if (ImGui.CollapsingHeader(
|
||||||
$"Loaded File Textures: {this.textureManager.Shared.ForDebugFileSystemTextures.Count:n0}###header"))
|
$"Loaded File Textures: {this.textureManager.Shared.ForDebugFileSystemTextures.Count:n0}###header"))
|
||||||
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugFileSystemTextures);
|
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugFileSystemTextures);
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
|
|
||||||
ImGui.PushID("loadedManifestResourceTextures");
|
ImGui.PushID("loadedManifestResourceTextures"u8);
|
||||||
if (ImGui.CollapsingHeader(
|
if (ImGui.CollapsingHeader(
|
||||||
$"Loaded Manifest Resource Textures: {this.textureManager.Shared.ForDebugManifestResourceTextures.Count:n0}###header"))
|
$"Loaded Manifest Resource Textures: {this.textureManager.Shared.ForDebugManifestResourceTextures.Count:n0}###header"))
|
||||||
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugManifestResourceTextures);
|
this.DrawLoadedTextures(this.textureManager.Shared.ForDebugManifestResourceTextures);
|
||||||
|
|
@ -168,7 +168,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
|
|
||||||
lock (this.textureManager.Shared.ForDebugInvalidatedTextures)
|
lock (this.textureManager.Shared.ForDebugInvalidatedTextures)
|
||||||
{
|
{
|
||||||
ImGui.PushID("invalidatedTextures");
|
ImGui.PushID("invalidatedTextures"u8);
|
||||||
if (ImGui.CollapsingHeader(
|
if (ImGui.CollapsingHeader(
|
||||||
$"Invalidated: {this.textureManager.Shared.ForDebugInvalidatedTextures.Count:n0}###header"))
|
$"Invalidated: {this.textureManager.Shared.ForDebugInvalidatedTextures.Count:n0}###header"))
|
||||||
{
|
{
|
||||||
|
|
@ -184,7 +184,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
ImGuiComponents.DisabledButton("Paste from Clipboard");
|
ImGuiComponents.DisabledButton("Paste from Clipboard");
|
||||||
}
|
}
|
||||||
else if (ImGui.Button("Paste from Clipboard"))
|
else if (ImGui.Button("Paste from Clipboard"u8))
|
||||||
{
|
{
|
||||||
this.addedTextures.Add(new(Api10: this.textureManager.CreateFromClipboardAsync()));
|
this.addedTextures.Add(new(Api10: this.textureManager.CreateFromClipboardAsync()));
|
||||||
}
|
}
|
||||||
|
|
@ -224,7 +224,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
ImGui.PopID();
|
ImGui.PopID();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("UV"))
|
if (ImGui.CollapsingHeader("UV"u8))
|
||||||
{
|
{
|
||||||
ImGui.PushID(nameof(this.DrawUvInput));
|
ImGui.PushID(nameof(this.DrawUvInput));
|
||||||
this.DrawUvInput();
|
this.DrawUvInput();
|
||||||
|
|
@ -246,7 +246,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
ImGui.PushID(t.Id);
|
ImGui.PushID(t.Id);
|
||||||
if (ImGui.CollapsingHeader($"Tex #{t.Id} {t}###header", ImGuiTreeNodeFlags.DefaultOpen))
|
if (ImGui.CollapsingHeader($"Tex #{t.Id} {t}###header", ImGuiTreeNodeFlags.DefaultOpen))
|
||||||
{
|
{
|
||||||
if (ImGui.Button("X"))
|
if (ImGui.Button("X"u8))
|
||||||
{
|
{
|
||||||
runLater = () =>
|
runLater = () =>
|
||||||
{
|
{
|
||||||
|
|
@ -256,7 +256,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Save"))
|
if (ImGui.Button("Save"u8))
|
||||||
{
|
{
|
||||||
_ = Service<DevTextureSaveMenu>.Get().ShowTextureSaveMenuAsync(
|
_ = Service<DevTextureSaveMenu>.Get().ShowTextureSaveMenuAsync(
|
||||||
this.DisplayName,
|
this.DisplayName,
|
||||||
|
|
@ -265,11 +265,11 @@ internal class TexWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Copy Reference"))
|
if (ImGui.Button("Copy Reference"u8))
|
||||||
runLater = () => this.addedTextures.Add(t.CreateFromSharedLowLevelResource(this.textureManager));
|
runLater = () => this.addedTextures.Add(t.CreateFromSharedLowLevelResource(this.textureManager));
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("CropCopy"))
|
if (ImGui.Button("CropCopy"u8))
|
||||||
{
|
{
|
||||||
runLater = () =>
|
runLater = () =>
|
||||||
{
|
{
|
||||||
|
|
@ -305,13 +305,13 @@ internal class TexWidget : IDataWindowWidget
|
||||||
pres->Release();
|
pres->Release();
|
||||||
pres->Release();
|
pres->Release();
|
||||||
|
|
||||||
ImGui.TextUnformatted($"RC: Resource({rcres})/View({rcsrv})");
|
ImGui.Text($"RC: Resource({rcres})/View({rcsrv})");
|
||||||
ImGui.TextUnformatted(source.ToString());
|
ImGui.Text(source.ToString());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("RC: -");
|
ImGui.Text("RC: -"u8);
|
||||||
ImGui.TextUnformatted(" ");
|
ImGui.Text(" "u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -327,12 +327,12 @@ internal class TexWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(t.DescribeError() ?? "Loading");
|
ImGui.Text(t.DescribeError() ?? "Loading");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(e.ToString());
|
ImGui.Text(e.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -346,10 +346,10 @@ internal class TexWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var im = Service<InterfaceManager>.Get();
|
var im = Service<InterfaceManager>.Get();
|
||||||
|
|
||||||
var shouldSortAgain = ImGui.Button("Sort again");
|
var shouldSortAgain = ImGui.Button("Sort again"u8);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Reset Columns"))
|
if (ImGui.Button("Reset Columns"u8))
|
||||||
this.allLoadedTexturesTableName = "##table" + Environment.TickCount64;
|
this.allLoadedTexturesTableName = "##table" + Environment.TickCount64;
|
||||||
|
|
||||||
if (!ImGui.BeginTable(
|
if (!ImGui.BeginTable(
|
||||||
|
|
@ -367,46 +367,46 @@ internal class TexWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Address",
|
"Address"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("0x7F0000000000").X,
|
ImGui.CalcTextSize("0x7F0000000000"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.NativeAddress);
|
(uint)DrawBlameTableColumnUserId.NativeAddress);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Actions",
|
"Actions"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed | ImGuiTableColumnFlags.NoSort,
|
ImGuiTableColumnFlags.WidthFixed | ImGuiTableColumnFlags.NoSort,
|
||||||
iconWidths +
|
iconWidths +
|
||||||
(ImGui.GetStyle().FramePadding.X * 2 * numIcons) +
|
(ImGui.GetStyle().FramePadding.X * 2 * numIcons) +
|
||||||
(ImGui.GetStyle().ItemSpacing.X * 1 * numIcons),
|
(ImGui.GetStyle().ItemSpacing.X * 1 * numIcons),
|
||||||
(uint)DrawBlameTableColumnUserId.Actions);
|
(uint)DrawBlameTableColumnUserId.Actions);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Name",
|
"Name"u8,
|
||||||
ImGuiTableColumnFlags.WidthStretch,
|
ImGuiTableColumnFlags.WidthStretch,
|
||||||
0f,
|
0f,
|
||||||
(uint)DrawBlameTableColumnUserId.Name);
|
(uint)DrawBlameTableColumnUserId.Name);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Width",
|
"Width"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("000000").X,
|
ImGui.CalcTextSize("000000"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.Width);
|
(uint)DrawBlameTableColumnUserId.Width);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Height",
|
"Height"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("000000").X,
|
ImGui.CalcTextSize("000000"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.Height);
|
(uint)DrawBlameTableColumnUserId.Height);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Format",
|
"Format"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("R32G32B32A32_TYPELESS").X,
|
ImGui.CalcTextSize("R32G32B32A32_TYPELESS"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.Format);
|
(uint)DrawBlameTableColumnUserId.Format);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Size",
|
"Size"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("123.45 MB").X,
|
ImGui.CalcTextSize("123.45 MB"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.Size);
|
(uint)DrawBlameTableColumnUserId.Size);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Plugins",
|
"Plugins"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
ImGui.CalcTextSize("Aaaaaaaaaa Aaaaaaaaaa Aaaaaaaaaa").X,
|
ImGui.CalcTextSize("Aaaaaaaaaa Aaaaaaaaaa Aaaaaaaaaa"u8).X,
|
||||||
(uint)DrawBlameTableColumnUserId.Plugins);
|
(uint)DrawBlameTableColumnUserId.Plugins);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
|
@ -513,7 +513,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
private unsafe void DrawLoadedTextures(ICollection<SharedImmediateTexture> textures)
|
private unsafe void DrawLoadedTextures(ICollection<SharedImmediateTexture> textures)
|
||||||
{
|
{
|
||||||
var im = Service<InterfaceManager>.Get();
|
var im = Service<InterfaceManager>.Get();
|
||||||
if (!ImGui.BeginTable("##table", 6))
|
if (!ImGui.BeginTable("##table"u8, 6))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const int numIcons = 4;
|
const int numIcons = 4;
|
||||||
|
|
@ -526,12 +526,12 @@ internal class TexWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("ID", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("000000").X);
|
ImGui.TableSetupColumn("ID"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("000000"u8).X);
|
||||||
ImGui.TableSetupColumn("Source", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Source"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("RefCount", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("RefCount__").X);
|
ImGui.TableSetupColumn("RefCount"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("RefCount__"u8).X);
|
||||||
ImGui.TableSetupColumn("SelfRef", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("00.000___").X);
|
ImGui.TableSetupColumn("SelfRef"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("00.000___"u8).X);
|
||||||
ImGui.TableSetupColumn(
|
ImGui.TableSetupColumn(
|
||||||
"Actions",
|
"Actions"u8,
|
||||||
ImGuiTableColumnFlags.WidthFixed,
|
ImGuiTableColumnFlags.WidthFixed,
|
||||||
iconWidths +
|
iconWidths +
|
||||||
(ImGui.GetStyle().FramePadding.X * 2 * numIcons) +
|
(ImGui.GetStyle().FramePadding.X * 2 * numIcons) +
|
||||||
|
|
@ -566,7 +566,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
// Should not happen
|
// Should not happen
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted("?");
|
ImGui.Text("?"u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -615,7 +615,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
if (ImGuiComponents.IconButton(FontAwesomeIcon.Trash))
|
if (ImGuiComponents.IconButton(FontAwesomeIcon.Trash))
|
||||||
texture.ReleaseSelfReference(true);
|
texture.ReleaseSelfReference(true);
|
||||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||||
ImGui.SetTooltip("Release self-reference immediately.");
|
ImGui.SetTooltip("Release self-reference immediately."u8);
|
||||||
if (remain <= 0)
|
if (remain <= 0)
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
|
|
||||||
|
|
@ -635,12 +635,12 @@ internal class TexWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawGetFromGameIcon()
|
private void DrawGetFromGameIcon()
|
||||||
{
|
{
|
||||||
ImGui.InputText("Icon ID", ref this.iconId, 32);
|
ImGui.InputText("Icon ID"u8, ref this.iconId, 32);
|
||||||
ImGui.Checkbox("HQ Item", ref this.hq);
|
ImGui.Checkbox("HQ Item"u8, ref this.hq);
|
||||||
ImGui.Checkbox("Hi-Res", ref this.hiRes);
|
ImGui.Checkbox("Hi-Res"u8, ref this.hiRes);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load Icon (Async)"))
|
if (ImGui.Button("Load Icon (Async)"u8))
|
||||||
{
|
{
|
||||||
this.addedTextures.Add(
|
this.addedTextures.Add(
|
||||||
new(
|
new(
|
||||||
|
|
@ -651,7 +651,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load Icon (Immediate)"))
|
if (ImGui.Button("Load Icon (Immediate)"u8))
|
||||||
this.addedTextures.Add(new(Api10ImmGameIcon: new(uint.Parse(this.iconId), this.hq, this.hiRes)));
|
this.addedTextures.Add(new(Api10ImmGameIcon: new(uint.Parse(this.iconId), this.hq, this.hiRes)));
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
@ -659,14 +659,14 @@ internal class TexWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawGetFromGame()
|
private void DrawGetFromGame()
|
||||||
{
|
{
|
||||||
ImGui.InputText("Tex Path", ref this.inputTexPath, 255);
|
ImGui.InputText("Tex Path"u8, ref this.inputTexPath, 255);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load Tex (Async)"))
|
if (ImGui.Button("Load Tex (Async)"u8))
|
||||||
this.addedTextures.Add(new(Api10: this.textureManager.Shared.GetFromGame(this.inputTexPath).RentAsync()));
|
this.addedTextures.Add(new(Api10: this.textureManager.Shared.GetFromGame(this.inputTexPath).RentAsync()));
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load Tex (Immediate)"))
|
if (ImGui.Button("Load Tex (Immediate)"u8))
|
||||||
this.addedTextures.Add(new(Api10ImmGamePath: this.inputTexPath));
|
this.addedTextures.Add(new(Api10ImmGamePath: this.inputTexPath));
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
@ -674,14 +674,14 @@ internal class TexWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawGetFromFile()
|
private void DrawGetFromFile()
|
||||||
{
|
{
|
||||||
ImGui.InputText("File Path", ref this.inputFilePath, 255);
|
ImGui.InputText("File Path"u8, ref this.inputFilePath, 255);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load File (Async)"))
|
if (ImGui.Button("Load File (Async)"u8))
|
||||||
this.addedTextures.Add(new(Api10: this.textureManager.Shared.GetFromFile(this.inputFilePath).RentAsync()));
|
this.addedTextures.Add(new(Api10: this.textureManager.Shared.GetFromFile(this.inputFilePath).RentAsync()));
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load File (Immediate)"))
|
if (ImGui.Button("Load File (Immediate)"u8))
|
||||||
this.addedTextures.Add(new(Api10ImmFile: this.inputFilePath));
|
this.addedTextures.Add(new(Api10ImmFile: this.inputFilePath));
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
@ -734,7 +734,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
? this.inputManifestResourceNameCandidates[this.inputManifestResourceNameIndex]
|
? this.inputManifestResourceNameCandidates[this.inputManifestResourceNameIndex]
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
if (ImGui.Button("Refresh Assemblies"))
|
if (ImGui.Button("Refresh Assemblies"u8))
|
||||||
{
|
{
|
||||||
this.inputManifestResourceAssemblyIndex = 0;
|
this.inputManifestResourceAssemblyIndex = 0;
|
||||||
this.inputManifestResourceAssemblyCandidates = null;
|
this.inputManifestResourceAssemblyCandidates = null;
|
||||||
|
|
@ -746,14 +746,14 @@ internal class TexWidget : IDataWindowWidget
|
||||||
if (assembly is not null && name is not null)
|
if (assembly is not null && name is not null)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load File (Async)"))
|
if (ImGui.Button("Load File (Async)"u8))
|
||||||
{
|
{
|
||||||
this.addedTextures.Add(
|
this.addedTextures.Add(
|
||||||
new(Api10: this.textureManager.Shared.GetFromManifestResource(assembly, name).RentAsync()));
|
new(Api10: this.textureManager.Shared.GetFromManifestResource(assembly, name).RentAsync()));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Load File (Immediate)"))
|
if (ImGui.Button("Load File (Immediate)"u8))
|
||||||
this.addedTextures.Add(new(Api10ImmManifestResource: (assembly, name)));
|
this.addedTextures.Add(new(Api10ImmManifestResource: (assembly, name)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -800,7 +800,7 @@ internal class TexWidget : IDataWindowWidget
|
||||||
if (ImGui.InputFloat2(nameof(this.viewportTextureArgs.Uv1), ref vec2))
|
if (ImGui.InputFloat2(nameof(this.viewportTextureArgs.Uv1), ref vec2))
|
||||||
this.viewportTextureArgs.Uv1 = vec2;
|
this.viewportTextureArgs.Uv1 = vec2;
|
||||||
|
|
||||||
if (ImGui.Button("Create") && this.viewportIndexInt >= 0 && this.viewportIndexInt < viewports.Size)
|
if (ImGui.Button("Create"u8) && this.viewportIndexInt >= 0 && this.viewportIndexInt < viewports.Size)
|
||||||
{
|
{
|
||||||
this.addedTextures.Add(
|
this.addedTextures.Add(
|
||||||
new()
|
new()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Game.Gui.Toast;
|
using Dalamud.Game.Gui.Toast;
|
||||||
|
|
@ -39,18 +39,18 @@ internal class ToastWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var toastGui = Service<ToastGui>.Get();
|
var toastGui = Service<ToastGui>.Get();
|
||||||
|
|
||||||
ImGui.InputText("Toast text", ref this.inputTextToast, 200);
|
ImGui.InputText("Toast text"u8, ref this.inputTextToast, 200);
|
||||||
|
|
||||||
ImGui.Combo("Toast Position", ref this.toastPosition, ["Bottom", "Top"]);
|
ImGui.Combo("Toast Position", ref this.toastPosition, ["Bottom", "Top",], 2);
|
||||||
ImGui.Combo("Toast Speed", ref this.toastSpeed, ["Slow", "Fast"]);
|
ImGui.Combo("Toast Speed", ref this.toastSpeed, ["Slow", "Fast",], 2);
|
||||||
ImGui.Combo("Quest Toast Position", ref this.questToastPosition, ["Centre", "Right", "Left"]);
|
ImGui.Combo("Quest Toast Position", ref this.questToastPosition, ["Centre", "Right", "Left"], 3);
|
||||||
ImGui.Checkbox("Quest Checkmark", ref this.questToastCheckmark);
|
ImGui.Checkbox("Quest Checkmark"u8, ref this.questToastCheckmark);
|
||||||
ImGui.Checkbox("Quest Play Sound", ref this.questToastSound);
|
ImGui.Checkbox("Quest Play Sound"u8, ref this.questToastSound);
|
||||||
ImGui.InputInt("Quest Icon ID", ref this.questToastIconId);
|
ImGui.InputInt("Quest Icon ID"u8, ref this.questToastIconId);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(new Vector2(10, 10));
|
ImGuiHelpers.ScaledDummy(new Vector2(10, 10));
|
||||||
|
|
||||||
if (ImGui.Button("Show toast"))
|
if (ImGui.Button("Show toast"u8))
|
||||||
{
|
{
|
||||||
toastGui.ShowNormal(this.inputTextToast, new ToastOptions
|
toastGui.ShowNormal(this.inputTextToast, new ToastOptions
|
||||||
{
|
{
|
||||||
|
|
@ -59,7 +59,7 @@ internal class ToastWidget : IDataWindowWidget
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Show Quest toast"))
|
if (ImGui.Button("Show Quest toast"u8))
|
||||||
{
|
{
|
||||||
toastGui.ShowQuest(this.inputTextToast, new QuestToastOptions
|
toastGui.ShowQuest(this.inputTextToast, new QuestToastOptions
|
||||||
{
|
{
|
||||||
|
|
@ -70,7 +70,7 @@ internal class ToastWidget : IDataWindowWidget
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Show Error toast"))
|
if (ImGui.Button("Show Error toast"u8))
|
||||||
{
|
{
|
||||||
toastGui.ShowError(this.inputTextToast);
|
toastGui.ShowError(this.inputTextToast);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,24 +44,24 @@ internal class UiColorWidget : IDataWindowWidget
|
||||||
"<edgecolor(0xEEEEFF)><color(0x0000FF)>BB<color(stackcolor)><edgecolor(stackcolor)>.<br>" +
|
"<edgecolor(0xEEEEFF)><color(0x0000FF)>BB<color(stackcolor)><edgecolor(stackcolor)>.<br>" +
|
||||||
"· Click on a color to copy the color code.<br>" +
|
"· Click on a color to copy the color code.<br>" +
|
||||||
"· Hover on a color to preview the text with edge, when the next color has been used together.");
|
"· Hover on a color to preview the text with edge, when the next color has been used together.");
|
||||||
if (!ImGui.BeginTable("UIColor", 5))
|
if (!ImGui.BeginTable("UIColor"u8, 5))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
var rowidw = ImGui.CalcTextSize("9999999").X;
|
var rowidw = ImGui.CalcTextSize("9999999"u8).X;
|
||||||
var colorw = ImGui.CalcTextSize("#999999").X;
|
var colorw = ImGui.CalcTextSize("#999999"u8).X;
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#AAAAAA").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#AAAAAA"u8).X);
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#BBBBBB").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#BBBBBB"u8).X);
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#CCCCCC").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#CCCCCC"u8).X);
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#DDDDDD").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#DDDDDD"u8).X);
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#EEEEEE").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#EEEEEE"u8).X);
|
||||||
colorw = Math.Max(colorw, ImGui.CalcTextSize("#FFFFFF").X);
|
colorw = Math.Max(colorw, ImGui.CalcTextSize("#FFFFFF"u8).X);
|
||||||
colorw += ImGui.GetFrameHeight() + ImGui.GetStyle().FramePadding.X;
|
colorw += ImGui.GetFrameHeight() + ImGui.GetStyle().FramePadding.X;
|
||||||
ImGui.TableSetupColumn("Row ID", ImGuiTableColumnFlags.WidthFixed, rowidw);
|
ImGui.TableSetupColumn("Row ID"u8, ImGuiTableColumnFlags.WidthFixed, rowidw);
|
||||||
ImGui.TableSetupColumn("Dark", ImGuiTableColumnFlags.WidthFixed, colorw);
|
ImGui.TableSetupColumn("Dark"u8, ImGuiTableColumnFlags.WidthFixed, colorw);
|
||||||
ImGui.TableSetupColumn("Light", ImGuiTableColumnFlags.WidthFixed, colorw);
|
ImGui.TableSetupColumn("Light"u8, ImGuiTableColumnFlags.WidthFixed, colorw);
|
||||||
ImGui.TableSetupColumn("Classic FF", ImGuiTableColumnFlags.WidthFixed, colorw);
|
ImGui.TableSetupColumn("Classic FF"u8, ImGuiTableColumnFlags.WidthFixed, colorw);
|
||||||
ImGui.TableSetupColumn("Clear Blue", ImGuiTableColumnFlags.WidthFixed, colorw);
|
ImGui.TableSetupColumn("Clear Blue"u8, ImGuiTableColumnFlags.WidthFixed, colorw);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var clipper = ImGui.ImGuiListClipper();
|
var clipper = ImGui.ImGuiListClipper();
|
||||||
|
|
@ -87,7 +87,7 @@ internal class UiColorWidget : IDataWindowWidget
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted($"{id}");
|
ImGui.Text($"{id}");
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
|
|
@ -186,7 +186,7 @@ internal class UiColorWidget : IDataWindowWidget
|
||||||
ImGui.GetColorU32(ImGuiCol.Text),
|
ImGui.GetColorU32(ImGuiCol.Text),
|
||||||
rgbtext);
|
rgbtext);
|
||||||
|
|
||||||
if (ImGui.InvisibleButton("##copy", size))
|
if (ImGui.InvisibleButton("##copy"u8, size))
|
||||||
{
|
{
|
||||||
ImGui.SetClipboardText(rgbtext);
|
ImGui.SetClipboardText(rgbtext);
|
||||||
Service<NotificationManager>.Get().AddNotification(
|
Service<NotificationManager>.Get().AddNotification(
|
||||||
|
|
|
||||||
|
|
@ -90,13 +90,13 @@ internal class UldWidget : IDataWindowWidget
|
||||||
uldNames = t.Result;
|
uldNames = t.Result;
|
||||||
break;
|
break;
|
||||||
case { Exception: { } loadException }:
|
case { Exception: { } loadException }:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudRed, loadException.ToString());
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudRed, loadException.ToString());
|
||||||
return;
|
return;
|
||||||
case { IsCanceled: true }:
|
case { IsCanceled: true }:
|
||||||
ClearTask(ref this.uldNamesTask);
|
ClearTask(ref this.uldNamesTask);
|
||||||
goto default;
|
goto default;
|
||||||
default:
|
default:
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
if (ImGuiComponents.IconButton("selectUldRight", FontAwesomeIcon.AngleRight))
|
if (ImGuiComponents.IconButton("selectUldRight", FontAwesomeIcon.AngleRight))
|
||||||
this.selectedUld = (this.selectedUld + 1) % uldNames.Length;
|
this.selectedUld = (this.selectedUld + 1) % uldNames.Length;
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("Select ULD File");
|
ImGui.Text("Select ULD File"u8);
|
||||||
if (selectedUldPrev != this.selectedUld)
|
if (selectedUldPrev != this.selectedUld)
|
||||||
{
|
{
|
||||||
// reset selected parts when changing ULD
|
// reset selected parts when changing ULD
|
||||||
|
|
@ -125,7 +125,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
if (ImGuiComponents.IconButton("selectThemeRight", FontAwesomeIcon.AngleRight))
|
if (ImGuiComponents.IconButton("selectThemeRight", FontAwesomeIcon.AngleRight))
|
||||||
this.selectedTheme = (this.selectedTheme + 1) % ThemeDisplayNames.Length;
|
this.selectedTheme = (this.selectedTheme + 1) % ThemeDisplayNames.Length;
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextUnformatted("Select Theme");
|
ImGui.Text("Select Theme"u8);
|
||||||
|
|
||||||
var dataManager = Service<DataManager>.Get();
|
var dataManager = Service<DataManager>.Get();
|
||||||
var textureManager = Service<TextureManager>.Get();
|
var textureManager = Service<TextureManager>.Get();
|
||||||
|
|
@ -138,7 +138,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
uld = this.selectedUldFileTask.Result;
|
uld = this.selectedUldFileTask.Result;
|
||||||
break;
|
break;
|
||||||
case { Exception: { } loadException }:
|
case { Exception: { } loadException }:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(
|
ImGui.TextColoredWrapped(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Failed to load ULD file.\n{loadException}");
|
$"Failed to load ULD file.\n{loadException}");
|
||||||
return;
|
return;
|
||||||
|
|
@ -146,23 +146,23 @@ internal class UldWidget : IDataWindowWidget
|
||||||
this.selectedUldFileTask = null;
|
this.selectedUldFileTask = null;
|
||||||
goto default;
|
goto default;
|
||||||
default:
|
default:
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Texture Entries"))
|
if (ImGui.CollapsingHeader("Texture Entries"u8))
|
||||||
{
|
{
|
||||||
if (ForceNullable(uld.AssetData) is null)
|
if (ForceNullable(uld.AssetData) is null)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(
|
ImGui.TextColoredWrapped(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Error: {nameof(UldFile.AssetData)} is not populated.");
|
$"Error: {nameof(UldFile.AssetData)} is not populated.");
|
||||||
}
|
}
|
||||||
else if (ImGui.BeginTable("##uldTextureEntries", 3, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders))
|
else if (ImGui.BeginTable("##uldTextureEntries"u8, 3, ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders))
|
||||||
{
|
{
|
||||||
ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("000000").X);
|
ImGui.TableSetupColumn("Id"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("000000"u8).X);
|
||||||
ImGui.TableSetupColumn("Path", ImGuiTableColumnFlags.WidthStretch);
|
ImGui.TableSetupColumn("Path"u8, ImGuiTableColumnFlags.WidthStretch);
|
||||||
ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("Preview___").X);
|
ImGui.TableSetupColumn("Actions"u8, ImGuiTableColumnFlags.WidthFixed, ImGui.CalcTextSize("Preview___"u8).X);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
foreach (var textureEntry in uld.AssetData)
|
foreach (var textureEntry in uld.AssetData)
|
||||||
|
|
@ -172,40 +172,40 @@ internal class UldWidget : IDataWindowWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Timeline##TimelineCollapsingHeader"))
|
if (ImGui.CollapsingHeader("Timeline##TimelineCollapsingHeader"u8))
|
||||||
{
|
{
|
||||||
if (ForceNullable(uld.Timelines) is null)
|
if (ForceNullable(uld.Timelines) is null)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(
|
ImGui.TextColoredWrapped(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Error: {nameof(UldFile.Timelines)} is not populated.");
|
$"Error: {nameof(UldFile.Timelines)} is not populated.");
|
||||||
}
|
}
|
||||||
else if (uld.Timelines.Length == 0)
|
else if (uld.Timelines.Length == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("No entry exists.");
|
ImGui.Text("No entry exists."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.SliderInt("Timeline##TimelineSlider", ref this.selectedTimeline, 0, uld.Timelines.Length - 1);
|
ImGui.SliderInt("Timeline##TimelineSlider"u8, ref this.selectedTimeline, 0, uld.Timelines.Length - 1);
|
||||||
this.DrawTimelines(uld.Timelines[this.selectedTimeline]);
|
this.DrawTimelines(uld.Timelines[this.selectedTimeline]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.CollapsingHeader("Parts##PartsCollapsingHeader"))
|
if (ImGui.CollapsingHeader("Parts##PartsCollapsingHeader"u8))
|
||||||
{
|
{
|
||||||
if (ForceNullable(uld.Parts) is null)
|
if (ForceNullable(uld.Parts) is null)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(
|
ImGui.TextColoredWrapped(
|
||||||
ImGuiColors.DalamudRed,
|
ImGuiColors.DalamudRed,
|
||||||
$"Error: {nameof(UldFile.Parts)} is not populated.");
|
$"Error: {nameof(UldFile.Parts)} is not populated.");
|
||||||
}
|
}
|
||||||
else if (uld.Parts.Length == 0)
|
else if (uld.Parts.Length == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("No entry exists.");
|
ImGui.Text("No entry exists."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.SliderInt("Parts##PartsSlider", ref this.selectedParts, 0, uld.Parts.Length - 1);
|
ImGui.SliderInt("Parts##PartsSlider"u8, ref this.selectedParts, 0, uld.Parts.Length - 1);
|
||||||
this.DrawParts(uld.Parts[this.selectedParts], uld.AssetData, textureManager);
|
this.DrawParts(uld.Parts[this.selectedParts], uld.AssetData, textureManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -269,7 +269,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
var path = GetStringNullTerminated(textureEntry.Path);
|
var path = GetStringNullTerminated(textureEntry.Path);
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
ImGui.TextUnformatted(textureEntry.Id.ToString());
|
ImGui.Text(textureEntry.Id.ToString());
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
this.TextColumnCopiable(path, false, false);
|
this.TextColumnCopiable(path, false, false);
|
||||||
|
|
@ -278,27 +278,27 @@ internal class UldWidget : IDataWindowWidget
|
||||||
if (string.IsNullOrWhiteSpace(path))
|
if (string.IsNullOrWhiteSpace(path))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.TextUnformatted("Preview");
|
ImGui.Text("Preview"u8);
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
|
|
||||||
var texturePath = GetStringNullTerminated(textureEntry.Path);
|
var texturePath = GetStringNullTerminated(textureEntry.Path);
|
||||||
ImGui.TextUnformatted($"Base path at {texturePath}:");
|
ImGui.Text($"Base path at {texturePath}:");
|
||||||
if (textureManager.Shared.GetFromGame(texturePath).TryGetWrap(out var wrap, out var e))
|
if (textureManager.Shared.GetFromGame(texturePath).TryGetWrap(out var wrap, out var e))
|
||||||
ImGui.Image(wrap.Handle, wrap.Size);
|
ImGui.Image(wrap.Handle, wrap.Size);
|
||||||
else if (e is not null)
|
else if (e is not null)
|
||||||
ImGui.TextUnformatted(e.ToString());
|
ImGui.Text(e.ToString());
|
||||||
|
|
||||||
if (this.selectedTheme != 0)
|
if (this.selectedTheme != 0)
|
||||||
{
|
{
|
||||||
var texturePathThemed = this.ToThemedPath(texturePath);
|
var texturePathThemed = this.ToThemedPath(texturePath);
|
||||||
ImGui.TextUnformatted($"Themed path at {texturePathThemed}:");
|
ImGui.Text($"Themed path at {texturePathThemed}:");
|
||||||
if (textureManager.Shared.GetFromGame(texturePathThemed).TryGetWrap(out wrap, out e))
|
if (textureManager.Shared.GetFromGame(texturePathThemed).TryGetWrap(out wrap, out e))
|
||||||
ImGui.Image(wrap.Handle, wrap.Size);
|
ImGui.Image(wrap.Handle, wrap.Size);
|
||||||
else if (e is not null)
|
else if (e is not null)
|
||||||
ImGui.TextUnformatted(e.ToString());
|
ImGui.Text(e.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
|
|
@ -307,13 +307,13 @@ internal class UldWidget : IDataWindowWidget
|
||||||
|
|
||||||
private void DrawTimelines(UldRoot.Timeline timeline)
|
private void DrawTimelines(UldRoot.Timeline timeline)
|
||||||
{
|
{
|
||||||
ImGui.SliderInt("FrameData", ref this.selectedFrameData, 0, timeline.FrameData.Length - 1);
|
ImGui.SliderInt("FrameData"u8, ref this.selectedFrameData, 0, timeline.FrameData.Length - 1);
|
||||||
var frameData = timeline.FrameData[this.selectedFrameData];
|
var frameData = timeline.FrameData[this.selectedFrameData];
|
||||||
ImGui.TextUnformatted($"FrameInfo: {frameData.StartFrame} -> {frameData.EndFrame}");
|
ImGui.Text($"FrameInfo: {frameData.StartFrame} -> {frameData.EndFrame}");
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
foreach (var frameDataKeyGroup in frameData.KeyGroups)
|
foreach (var frameDataKeyGroup in frameData.KeyGroups)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{frameDataKeyGroup.Usage:G} {frameDataKeyGroup.Type:G}");
|
ImGui.Text($"{frameDataKeyGroup.Usage:G} {frameDataKeyGroup.Type:G}");
|
||||||
foreach (var keyframe in frameDataKeyGroup.Frames)
|
foreach (var keyframe in frameDataKeyGroup.Frames)
|
||||||
this.DrawTimelineKeyGroupFrame(keyframe);
|
this.DrawTimelineKeyGroupFrame(keyframe);
|
||||||
}
|
}
|
||||||
|
|
@ -326,147 +326,147 @@ internal class UldWidget : IDataWindowWidget
|
||||||
switch (frame)
|
switch (frame)
|
||||||
{
|
{
|
||||||
case BaseKeyframeData baseKeyframeData:
|
case BaseKeyframeData baseKeyframeData:
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"Time: {baseKeyframeData.Time} | Interpolation: {baseKeyframeData.Interpolation} | Acceleration: {baseKeyframeData.Acceleration} | Deceleration: {baseKeyframeData.Deceleration}");
|
$"Time: {baseKeyframeData.Time} | Interpolation: {baseKeyframeData.Interpolation} | Acceleration: {baseKeyframeData.Acceleration} | Deceleration: {baseKeyframeData.Deceleration}");
|
||||||
break;
|
break;
|
||||||
case Float1Keyframe float1Keyframe:
|
case Float1Keyframe float1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(float1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(float1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {float1Keyframe.Value}");
|
ImGui.Text($" | Value: {float1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case Float2Keyframe float2Keyframe:
|
case Float2Keyframe float2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(float2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(float2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {float2Keyframe.Value[0]} | Value2: {float2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {float2Keyframe.Value[0]} | Value2: {float2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case Float3Keyframe float3Keyframe:
|
case Float3Keyframe float3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(float3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(float3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {float3Keyframe.Value[0]} | Value2: {float3Keyframe.Value[1]} | Value3: {float3Keyframe.Value[2]}");
|
$" | Value1: {float3Keyframe.Value[0]} | Value2: {float3Keyframe.Value[1]} | Value3: {float3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case SByte1Keyframe sbyte1Keyframe:
|
case SByte1Keyframe sbyte1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(sbyte1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(sbyte1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {sbyte1Keyframe.Value}");
|
ImGui.Text($" | Value: {sbyte1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case SByte2Keyframe sbyte2Keyframe:
|
case SByte2Keyframe sbyte2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(sbyte2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(sbyte2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {sbyte2Keyframe.Value[0]} | Value2: {sbyte2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {sbyte2Keyframe.Value[0]} | Value2: {sbyte2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case SByte3Keyframe sbyte3Keyframe:
|
case SByte3Keyframe sbyte3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(sbyte3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(sbyte3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {sbyte3Keyframe.Value[0]} | Value2: {sbyte3Keyframe.Value[1]} | Value3: {sbyte3Keyframe.Value[2]}");
|
$" | Value1: {sbyte3Keyframe.Value[0]} | Value2: {sbyte3Keyframe.Value[1]} | Value3: {sbyte3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case Byte1Keyframe byte1Keyframe:
|
case Byte1Keyframe byte1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(byte1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(byte1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {byte1Keyframe.Value}");
|
ImGui.Text($" | Value: {byte1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case Byte2Keyframe byte2Keyframe:
|
case Byte2Keyframe byte2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(byte2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(byte2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {byte2Keyframe.Value[0]} | Value2: {byte2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {byte2Keyframe.Value[0]} | Value2: {byte2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case Byte3Keyframe byte3Keyframe:
|
case Byte3Keyframe byte3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(byte3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(byte3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {byte3Keyframe.Value[0]} | Value2: {byte3Keyframe.Value[1]} | Value3: {byte3Keyframe.Value[2]}");
|
$" | Value1: {byte3Keyframe.Value[0]} | Value2: {byte3Keyframe.Value[1]} | Value3: {byte3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case Short1Keyframe short1Keyframe:
|
case Short1Keyframe short1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(short1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(short1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {short1Keyframe.Value}");
|
ImGui.Text($" | Value: {short1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case Short2Keyframe short2Keyframe:
|
case Short2Keyframe short2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(short2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(short2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {short2Keyframe.Value[0]} | Value2: {short2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {short2Keyframe.Value[0]} | Value2: {short2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case Short3Keyframe short3Keyframe:
|
case Short3Keyframe short3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(short3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(short3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {short3Keyframe.Value[0]} | Value2: {short3Keyframe.Value[1]} | Value3: {short3Keyframe.Value[2]}");
|
$" | Value1: {short3Keyframe.Value[0]} | Value2: {short3Keyframe.Value[1]} | Value3: {short3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case UShort1Keyframe ushort1Keyframe:
|
case UShort1Keyframe ushort1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(ushort1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(ushort1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {ushort1Keyframe.Value}");
|
ImGui.Text($" | Value: {ushort1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case UShort2Keyframe ushort2Keyframe:
|
case UShort2Keyframe ushort2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(ushort2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(ushort2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {ushort2Keyframe.Value[0]} | Value2: {ushort2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {ushort2Keyframe.Value[0]} | Value2: {ushort2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case UShort3Keyframe ushort3Keyframe:
|
case UShort3Keyframe ushort3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(ushort3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(ushort3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {ushort3Keyframe.Value[0]} | Value2: {ushort3Keyframe.Value[1]} | Value3: {ushort3Keyframe.Value[2]}");
|
$" | Value1: {ushort3Keyframe.Value[0]} | Value2: {ushort3Keyframe.Value[1]} | Value3: {ushort3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case Int1Keyframe int1Keyframe:
|
case Int1Keyframe int1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(int1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(int1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {int1Keyframe.Value}");
|
ImGui.Text($" | Value: {int1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case Int2Keyframe int2Keyframe:
|
case Int2Keyframe int2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(int2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(int2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {int2Keyframe.Value[0]} | Value2: {int2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {int2Keyframe.Value[0]} | Value2: {int2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case Int3Keyframe int3Keyframe:
|
case Int3Keyframe int3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(int3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(int3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {int3Keyframe.Value[0]} | Value2: {int3Keyframe.Value[1]} | Value3: {int3Keyframe.Value[2]}");
|
$" | Value1: {int3Keyframe.Value[0]} | Value2: {int3Keyframe.Value[1]} | Value3: {int3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case UInt1Keyframe uint1Keyframe:
|
case UInt1Keyframe uint1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(uint1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(uint1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {uint1Keyframe.Value}");
|
ImGui.Text($" | Value: {uint1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case UInt2Keyframe uint2Keyframe:
|
case UInt2Keyframe uint2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(uint2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(uint2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {uint2Keyframe.Value[0]} | Value2: {uint2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {uint2Keyframe.Value[0]} | Value2: {uint2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case UInt3Keyframe uint3Keyframe:
|
case UInt3Keyframe uint3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(uint3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(uint3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {uint3Keyframe.Value[0]} | Value2: {uint3Keyframe.Value[1]} | Value3: {uint3Keyframe.Value[2]}");
|
$" | Value1: {uint3Keyframe.Value[0]} | Value2: {uint3Keyframe.Value[1]} | Value3: {uint3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case Bool1Keyframe bool1Keyframe:
|
case Bool1Keyframe bool1Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(bool1Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(bool1Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value: {bool1Keyframe.Value}");
|
ImGui.Text($" | Value: {bool1Keyframe.Value}");
|
||||||
break;
|
break;
|
||||||
case Bool2Keyframe bool2Keyframe:
|
case Bool2Keyframe bool2Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(bool2Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(bool2Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted($" | Value1: {bool2Keyframe.Value[0]} | Value2: {bool2Keyframe.Value[1]}");
|
ImGui.Text($" | Value1: {bool2Keyframe.Value[0]} | Value2: {bool2Keyframe.Value[1]}");
|
||||||
break;
|
break;
|
||||||
case Bool3Keyframe bool3Keyframe:
|
case Bool3Keyframe bool3Keyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(bool3Keyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(bool3Keyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Value1: {bool3Keyframe.Value[0]} | Value2: {bool3Keyframe.Value[1]} | Value3: {bool3Keyframe.Value[2]}");
|
$" | Value1: {bool3Keyframe.Value[0]} | Value2: {bool3Keyframe.Value[1]} | Value3: {bool3Keyframe.Value[2]}");
|
||||||
break;
|
break;
|
||||||
case ColorKeyframe colorKeyframe:
|
case ColorKeyframe colorKeyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(colorKeyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(colorKeyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | Add: {colorKeyframe.AddRed} {colorKeyframe.AddGreen} {colorKeyframe.AddBlue} | Multiply: {colorKeyframe.MultiplyRed} {colorKeyframe.MultiplyGreen} {colorKeyframe.MultiplyBlue}");
|
$" | Add: {colorKeyframe.AddRed} {colorKeyframe.AddGreen} {colorKeyframe.AddBlue} | Multiply: {colorKeyframe.MultiplyRed} {colorKeyframe.MultiplyGreen} {colorKeyframe.MultiplyBlue}");
|
||||||
break;
|
break;
|
||||||
case LabelKeyframe labelKeyframe:
|
case LabelKeyframe labelKeyframe:
|
||||||
this.DrawTimelineKeyGroupFrame(labelKeyframe.Keyframe);
|
this.DrawTimelineKeyGroupFrame(labelKeyframe.Keyframe);
|
||||||
ImGui.SameLine(0, 0);
|
ImGui.SameLine(0, 0);
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$" | LabelCommand: {labelKeyframe.LabelCommand} | JumpId: {labelKeyframe.JumpId} | LabelId: {labelKeyframe.LabelId}");
|
$" | LabelCommand: {labelKeyframe.LabelCommand} | JumpId: {labelKeyframe.JumpId} | LabelId: {labelKeyframe.LabelId}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -479,7 +479,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
{
|
{
|
||||||
for (var index = 0; index < partsData.Parts.Length; index++)
|
for (var index = 0; index < partsData.Parts.Length; index++)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"Index: {index}");
|
ImGui.Text($"Index: {index}");
|
||||||
var partsDataPart = partsData.Parts[index];
|
var partsDataPart = partsData.Parts[index];
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
|
@ -494,14 +494,14 @@ internal class UldWidget : IDataWindowWidget
|
||||||
|
|
||||||
if (path is null)
|
if (path is null)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"Could not find texture for id {partsDataPart.TextureId}");
|
ImGui.Text($"Could not find texture for id {partsDataPart.TextureId}");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var texturePath = GetStringNullTerminated(path);
|
var texturePath = GetStringNullTerminated(path);
|
||||||
if (string.IsNullOrWhiteSpace(texturePath))
|
if (string.IsNullOrWhiteSpace(texturePath))
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Texture path is empty.");
|
ImGui.Text("Texture path is empty."u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -518,7 +518,7 @@ internal class UldWidget : IDataWindowWidget
|
||||||
// neither the supposedly original path nor themed path had a file we could load.
|
// neither the supposedly original path nor themed path had a file we could load.
|
||||||
if (e is not null && e2 is not null)
|
if (e is not null && e2 is not null)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"{texturePathThemed}: {e}\n{texturePath}: {e2}");
|
ImGui.Text($"{texturePathThemed}: {e}\n{texturePath}: {e2}");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -542,8 +542,8 @@ internal class UldWidget : IDataWindowWidget
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted("Click to copy:");
|
ImGui.Text("Click to copy:"u8);
|
||||||
ImGui.TextUnformatted(texturePath);
|
ImGui.Text(texturePath);
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,12 +37,12 @@ internal class VfsWidget : IDataWindowWidget
|
||||||
var service = Service<ReliableFileStorage>.Get();
|
var service = Service<ReliableFileStorage>.Get();
|
||||||
var dalamud = Service<Dalamud>.Get();
|
var dalamud = Service<Dalamud>.Get();
|
||||||
|
|
||||||
ImGui.InputInt("Num bytes", ref this.numBytes);
|
ImGui.InputInt("Num bytes"u8, ref this.numBytes);
|
||||||
ImGui.InputInt("Reps", ref this.reps);
|
ImGui.InputInt("Reps"u8, ref this.reps);
|
||||||
|
|
||||||
var path = Path.Combine(dalamud.StartInfo.WorkingDirectory!, "test.bin");
|
var path = Path.Combine(dalamud.StartInfo.WorkingDirectory!, "test.bin");
|
||||||
|
|
||||||
if (ImGui.Button("Write"))
|
if (ImGui.Button("Write"u8))
|
||||||
{
|
{
|
||||||
Log.Information("=== WRITING ===");
|
Log.Information("=== WRITING ===");
|
||||||
var data = new byte[this.numBytes];
|
var data = new byte[this.numBytes];
|
||||||
|
|
@ -61,7 +61,7 @@ internal class VfsWidget : IDataWindowWidget
|
||||||
Log.Information("Took {Ms}ms in total", acc);
|
Log.Information("Took {Ms}ms in total", acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Read"))
|
if (ImGui.Button("Read"u8))
|
||||||
{
|
{
|
||||||
Log.Information("=== READING ===");
|
Log.Information("=== READING ===");
|
||||||
var stopwatch = new Stopwatch();
|
var stopwatch = new Stopwatch();
|
||||||
|
|
@ -79,7 +79,7 @@ internal class VfsWidget : IDataWindowWidget
|
||||||
Log.Information("Took {Ms}ms in total", acc);
|
Log.Information("Took {Ms}ms in total", acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui.Button("Test Config"))
|
if (ImGui.Button("Test Config"u8))
|
||||||
{
|
{
|
||||||
var config = Service<DalamudConfiguration>.Get();
|
var config = Service<DalamudConfiguration>.Get();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,28 +28,28 @@ public class HitchSettingsWindow : Window
|
||||||
var config = Service<DalamudConfiguration>.Get();
|
var config = Service<DalamudConfiguration>.Get();
|
||||||
|
|
||||||
var uiBuilderHitch = (float)config.UiBuilderHitch;
|
var uiBuilderHitch = (float)config.UiBuilderHitch;
|
||||||
if (ImGui.SliderFloat("UiBuilderHitch", ref uiBuilderHitch, MinHitch, MaxHitch))
|
if (ImGui.SliderFloat("UiBuilderHitch"u8, ref uiBuilderHitch, MinHitch, MaxHitch))
|
||||||
{
|
{
|
||||||
config.UiBuilderHitch = uiBuilderHitch;
|
config.UiBuilderHitch = uiBuilderHitch;
|
||||||
config.QueueSave();
|
config.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
var frameworkUpdateHitch = (float)config.FrameworkUpdateHitch;
|
var frameworkUpdateHitch = (float)config.FrameworkUpdateHitch;
|
||||||
if (ImGui.SliderFloat("FrameworkUpdateHitch", ref frameworkUpdateHitch, MinHitch, MaxHitch))
|
if (ImGui.SliderFloat("FrameworkUpdateHitch"u8, ref frameworkUpdateHitch, MinHitch, MaxHitch))
|
||||||
{
|
{
|
||||||
config.FrameworkUpdateHitch = frameworkUpdateHitch;
|
config.FrameworkUpdateHitch = frameworkUpdateHitch;
|
||||||
config.QueueSave();
|
config.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
var gameNetworkUpHitch = (float)config.GameNetworkUpHitch;
|
var gameNetworkUpHitch = (float)config.GameNetworkUpHitch;
|
||||||
if (ImGui.SliderFloat("GameNetworkUpHitch", ref gameNetworkUpHitch, MinHitch, MaxHitch))
|
if (ImGui.SliderFloat("GameNetworkUpHitch"u8, ref gameNetworkUpHitch, MinHitch, MaxHitch))
|
||||||
{
|
{
|
||||||
config.GameNetworkUpHitch = gameNetworkUpHitch;
|
config.GameNetworkUpHitch = gameNetworkUpHitch;
|
||||||
config.QueueSave();
|
config.QueueSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
var gameNetworkDownHitch = (float)config.GameNetworkDownHitch;
|
var gameNetworkDownHitch = (float)config.GameNetworkDownHitch;
|
||||||
if (ImGui.SliderFloat("GameNetworkDownHitch", ref gameNetworkDownHitch, MinHitch, MaxHitch))
|
if (ImGui.SliderFloat("GameNetworkDownHitch"u8, ref gameNetworkDownHitch, MinHitch, MaxHitch))
|
||||||
{
|
{
|
||||||
config.GameNetworkDownHitch = gameNetworkDownHitch;
|
config.GameNetworkDownHitch = gameNetworkDownHitch;
|
||||||
config.QueueSave();
|
config.QueueSave();
|
||||||
|
|
|
||||||
|
|
@ -566,7 +566,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var windowSize = ImGui.GetWindowSize();
|
var windowSize = ImGui.GetWindowSize();
|
||||||
var titleHeight = ImGui.GetFontSize() + (ImGui.GetStyle().FramePadding.Y * 2);
|
var titleHeight = ImGui.GetFontSize() + (ImGui.GetStyle().FramePadding.Y * 2);
|
||||||
|
|
||||||
using var loadingChild = ImRaii.Child("###installerLoadingFrame", new Vector2(-1, -1), false);
|
using var loadingChild = ImRaii.Child("###installerLoadingFrame"u8, new Vector2(-1, -1), false);
|
||||||
if (loadingChild)
|
if (loadingChild)
|
||||||
{
|
{
|
||||||
ImGui.GetWindowDrawList().PushClipRectFullScreen();
|
ImGui.GetWindowDrawList().PushClipRectFullScreen();
|
||||||
|
|
@ -713,7 +713,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var prevSearchText = this.searchText;
|
var prevSearchText = this.searchText;
|
||||||
ImGui.SetNextItemWidth(searchInputWidth);
|
ImGui.SetNextItemWidth(searchInputWidth);
|
||||||
searchTextChanged |= ImGui.InputTextWithHint(
|
searchTextChanged |= ImGui.InputTextWithHint(
|
||||||
"###XlPluginInstaller_Search",
|
"###XlPluginInstaller_Search"u8,
|
||||||
Locs.Header_SearchPlaceholder,
|
Locs.Header_SearchPlaceholder,
|
||||||
ref this.searchText,
|
ref this.searchText,
|
||||||
100,
|
100,
|
||||||
|
|
@ -1092,11 +1092,11 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
if (ImGui.BeginPopupModal(modalTitle, ref this.feedbackModalDrawing, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoScrollbar))
|
if (ImGui.BeginPopupModal(modalTitle, ref this.feedbackModalDrawing, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoScrollbar))
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(Locs.FeedbackModal_Text(this.feedbackPlugin.Name));
|
ImGui.Text(Locs.FeedbackModal_Text(this.feedbackPlugin.Name));
|
||||||
|
|
||||||
if (this.feedbackPlugin?.FeedbackMessage != null)
|
if (this.feedbackPlugin?.FeedbackMessage != null)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(this.feedbackPlugin.FeedbackMessage);
|
ImGui.TextWrapped(this.feedbackPlugin.FeedbackMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.pluginListUpdatable.Any(
|
if (this.pluginListUpdatable.Any(
|
||||||
|
|
@ -1107,7 +1107,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
|
|
||||||
ImGui.InputTextMultiline("###FeedbackContent", ref this.feedbackModalBody, 1000, new Vector2(400, 200));
|
ImGui.InputTextMultiline("###FeedbackContent"u8, ref this.feedbackModalBody, 1000, new Vector2(400, 200));
|
||||||
|
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
|
|
||||||
|
|
@ -1269,7 +1269,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var sortedChangelogs = changelogs?.Where(x => this.searchText.IsNullOrWhitespace() || new FuzzyMatcher(this.searchText.ToLowerInvariant(), MatchMode.FuzzyParts).Matches(x.Title.ToLowerInvariant()) > 0)
|
var sortedChangelogs = changelogs?.Where(x => this.searchText.IsNullOrWhitespace() || new FuzzyMatcher(this.searchText.ToLowerInvariant(), MatchMode.FuzzyParts).Matches(x.Title.ToLowerInvariant()) > 0)
|
||||||
.OrderByDescending(x => x.Date).ToList();
|
.OrderByDescending(x => x.Date).ToList();
|
||||||
|
|
||||||
if (sortedChangelogs == null || !sortedChangelogs.Any())
|
if (sortedChangelogs == null || sortedChangelogs.Count == 0)
|
||||||
{
|
{
|
||||||
ImGui.TextColored(
|
ImGui.TextColored(
|
||||||
ImGuiColors.DalamudGrey2,
|
ImGuiColors.DalamudGrey2,
|
||||||
|
|
@ -1513,14 +1513,14 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
var useContentWidth = ImGui.GetContentRegionAvail().X;
|
var useContentWidth = ImGui.GetContentRegionAvail().X;
|
||||||
|
|
||||||
using var installerMainChild = ImRaii.Child("InstallerCategories", new Vector2(useContentWidth, useContentHeight * ImGuiHelpers.GlobalScale));
|
using var installerMainChild = ImRaii.Child("InstallerCategories"u8, new Vector2(useContentWidth, useContentHeight * ImGuiHelpers.GlobalScale));
|
||||||
if (installerMainChild)
|
if (installerMainChild)
|
||||||
{
|
{
|
||||||
using var style = ImRaii.PushStyle(ImGuiStyleVar.CellPadding, ImGuiHelpers.ScaledVector2(5, 0));
|
using var style = ImRaii.PushStyle(ImGuiStyleVar.CellPadding, ImGuiHelpers.ScaledVector2(5, 0));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (var categoriesChild = ImRaii.Child("InstallerCategoriesSelector", new Vector2(useMenuWidth * ImGuiHelpers.GlobalScale, -1), false))
|
using (var categoriesChild = ImRaii.Child("InstallerCategoriesSelector"u8, new Vector2(useMenuWidth * ImGuiHelpers.GlobalScale, -1), false))
|
||||||
{
|
{
|
||||||
if (categoriesChild)
|
if (categoriesChild)
|
||||||
{
|
{
|
||||||
|
|
@ -1531,7 +1531,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
using var scrollingChild =
|
using var scrollingChild =
|
||||||
ImRaii.Child("ScrollingPlugins", new Vector2(-1, -1), false, ImGuiWindowFlags.NoBackground);
|
ImRaii.Child("ScrollingPlugins"u8, new Vector2(-1, -1), false, ImGuiWindowFlags.NoBackground);
|
||||||
if (scrollingChild)
|
if (scrollingChild)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -1706,7 +1706,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ImGui.TextUnformatted("You found a mysterious category. Please keep it to yourself.");
|
ImGui.Text("You found a mysterious category. Please keep it to yourself."u8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1731,7 +1731,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ImGui.TextUnformatted("You found a secret category. Please feel a sense of pride and accomplishment.");
|
ImGui.Text("You found a secret category. Please feel a sense of pride and accomplishment."u8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1752,7 +1752,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ImGui.TextUnformatted("You found a quiet category. Please don't wake it up.");
|
ImGui.Text("You found a quiet category. Please don't wake it up."u8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1813,7 +1813,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
var cursor = ImGui.GetCursorPos();
|
var cursor = ImGui.GetCursorPos();
|
||||||
// Name
|
// Name
|
||||||
ImGui.Text("My Cool Plugin");
|
ImGui.Text("My Cool Plugin"u8);
|
||||||
|
|
||||||
// Download count
|
// Download count
|
||||||
var downloadCountText = Locs.PluginBody_AuthorWithDownloadCount("Plugin Enjoyer", 69420);
|
var downloadCountText = Locs.PluginBody_AuthorWithDownloadCount("Plugin Enjoyer", 69420);
|
||||||
|
|
@ -1825,7 +1825,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.SetCursorPos(cursor);
|
ImGui.SetCursorPos(cursor);
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
ImGui.TextWrapped("This plugin does very many great things.");
|
ImGui.TextWrapped("This plugin does very many great things."u8);
|
||||||
|
|
||||||
startCursor.Y += sectionSize;
|
startCursor.Y += sectionSize;
|
||||||
ImGui.SetCursorPos(startCursor);
|
ImGui.SetCursorPos(startCursor);
|
||||||
|
|
@ -1835,7 +1835,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
ImGui.TextWrapped("This is a description.\nIt has multiple lines.\nTruly descriptive.");
|
ImGui.TextWrapped("This is a description.\nIt has multiple lines.\nTruly descriptive."u8);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
|
|
||||||
|
|
@ -1869,7 +1869,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var width = ImGui.GetWindowWidth();
|
var width = ImGui.GetWindowWidth();
|
||||||
|
|
||||||
if (ImGui.BeginChild(
|
if (ImGui.BeginChild(
|
||||||
"pluginTestingImageScrolling",
|
"pluginTestingImageScrolling"u8,
|
||||||
new Vector2(width - (70 * ImGuiHelpers.GlobalScale), (PluginImageCache.PluginImageHeight / thumbFactor) + scrollBarSize),
|
new Vector2(width - (70 * ImGuiHelpers.GlobalScale), (PluginImageCache.PluginImageHeight / thumbFactor) + scrollBarSize),
|
||||||
false,
|
false,
|
||||||
ImGuiWindowFlags.HorizontalScrollbar |
|
ImGuiWindowFlags.HorizontalScrollbar |
|
||||||
|
|
@ -1887,13 +1887,13 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
if (!imageTask.IsCompleted)
|
if (!imageTask.IsCompleted)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (imageTask.Exception is not null)
|
if (imageTask.Exception is not null)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(imageTask.Exception.ToString());
|
ImGui.Text(imageTask.Exception.ToString());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1961,7 +1961,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
if (!imageTask.IsCompleted)
|
if (!imageTask.IsCompleted)
|
||||||
{
|
{
|
||||||
ImGui.Text("Loading...");
|
ImGui.Text("Loading..."u8);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1969,45 +1969,45 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
if (imageTask.Exception is { } exc)
|
if (imageTask.Exception is { } exc)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(exc.ToString());
|
ImGui.Text(exc.ToString());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var image = imageTask.Result;
|
var image = imageTask.Result;
|
||||||
if (image.Width > maxWidth || image.Height > maxHeight)
|
if (image.Width > maxWidth || image.Height > maxHeight)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(
|
ImGui.Text(
|
||||||
$"Image is larger than the maximum allowed resolution ({image.Width}x{image.Height} > {maxWidth}x{maxHeight})");
|
$"Image is larger than the maximum allowed resolution ({image.Width}x{image.Height} > {maxWidth}x{maxHeight})");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requireSquare && image.Width != image.Height)
|
if (requireSquare && image.Width != image.Height)
|
||||||
ImGui.TextUnformatted($"Image must be square! Current size: {image.Width}x{image.Height}");
|
ImGui.Text($"Image must be square! Current size: {image.Width}x{image.Height}");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.InputText("Icon Path", ref this.testerIconPath, 1000);
|
ImGui.InputText("Icon Path"u8, ref this.testerIconPath, 1000);
|
||||||
if (this.testerIcon != null)
|
if (this.testerIcon != null)
|
||||||
CheckImageSize(this.testerIcon, PluginImageCache.PluginIconWidth, PluginImageCache.PluginIconHeight, true);
|
CheckImageSize(this.testerIcon, PluginImageCache.PluginIconWidth, PluginImageCache.PluginIconHeight, true);
|
||||||
ImGui.InputText("Image 1 Path", ref this.testerImagePaths[0], 1000);
|
ImGui.InputText("Image 1 Path"u8, ref this.testerImagePaths[0], 1000);
|
||||||
if (this.testerImages?.Length > 0)
|
if (this.testerImages?.Length > 0)
|
||||||
CheckImageSize(this.testerImages[0], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
CheckImageSize(this.testerImages[0], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
||||||
ImGui.InputText("Image 2 Path", ref this.testerImagePaths[1], 1000);
|
ImGui.InputText("Image 2 Path"u8, ref this.testerImagePaths[1], 1000);
|
||||||
if (this.testerImages?.Length > 1)
|
if (this.testerImages?.Length > 1)
|
||||||
CheckImageSize(this.testerImages[1], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
CheckImageSize(this.testerImages[1], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
||||||
ImGui.InputText("Image 3 Path", ref this.testerImagePaths[2], 1000);
|
ImGui.InputText("Image 3 Path"u8, ref this.testerImagePaths[2], 1000);
|
||||||
if (this.testerImages?.Length > 2)
|
if (this.testerImages?.Length > 2)
|
||||||
CheckImageSize(this.testerImages[2], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
CheckImageSize(this.testerImages[2], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
||||||
ImGui.InputText("Image 4 Path", ref this.testerImagePaths[3], 1000);
|
ImGui.InputText("Image 4 Path"u8, ref this.testerImagePaths[3], 1000);
|
||||||
if (this.testerImages?.Length > 3)
|
if (this.testerImages?.Length > 3)
|
||||||
CheckImageSize(this.testerImages[3], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
CheckImageSize(this.testerImages[3], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
||||||
ImGui.InputText("Image 5 Path", ref this.testerImagePaths[4], 1000);
|
ImGui.InputText("Image 5 Path"u8, ref this.testerImagePaths[4], 1000);
|
||||||
if (this.testerImages?.Length > 4)
|
if (this.testerImages?.Length > 4)
|
||||||
CheckImageSize(this.testerImages[4], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
CheckImageSize(this.testerImages[4], PluginImageCache.PluginImageWidth, PluginImageCache.PluginImageHeight, false);
|
||||||
|
|
||||||
var tm = Service<TextureManager>.Get();
|
var tm = Service<TextureManager>.Get();
|
||||||
if (ImGui.Button("Load"))
|
if (ImGui.Button("Load"u8))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -2039,8 +2039,8 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Checkbox("Failed", ref this.testerError);
|
ImGui.Checkbox("Failed"u8, ref this.testerError);
|
||||||
ImGui.Checkbox("Has Update", ref this.testerUpdateAvailable);
|
ImGui.Checkbox("Has Update"u8, ref this.testerUpdateAvailable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool DrawPluginListLoading()
|
private bool DrawPluginListLoading()
|
||||||
|
|
@ -2218,12 +2218,12 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var cursor = ImGui.GetCursorPos();
|
var cursor = ImGui.GetCursorPos();
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
ImGui.TextUnformatted(label);
|
ImGui.Text(label);
|
||||||
|
|
||||||
// Verified Checkmark or dev plugin wrench
|
// Verified Checkmark or dev plugin wrench
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.Text(" ");
|
ImGui.Text(" "u8);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
var verifiedOutlineColor = KnownColor.White.Vector() with { W = 0.75f };
|
var verifiedOutlineColor = KnownColor.White.Vector() with { W = 0.75f };
|
||||||
|
|
@ -2300,7 +2300,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
else
|
else
|
||||||
bodyText += Locs.PluginBody_Outdated_WaitForUpdate;
|
bodyText += Locs.PluginBody_Outdated_WaitForUpdate;
|
||||||
|
|
||||||
ImGuiHelpers.SafeTextWrapped(bodyText);
|
ImGui.TextWrapped(bodyText);
|
||||||
|
|
||||||
ImGui.PopStyleColor();
|
ImGui.PopStyleColor();
|
||||||
}
|
}
|
||||||
|
|
@ -2348,14 +2348,14 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(manifest.Punchline))
|
if (!string.IsNullOrWhiteSpace(manifest.Punchline))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(manifest.Punchline);
|
ImGui.TextWrapped(manifest.Punchline);
|
||||||
}
|
}
|
||||||
else if (!string.IsNullOrWhiteSpace(manifest.Description))
|
else if (!string.IsNullOrWhiteSpace(manifest.Description))
|
||||||
{
|
{
|
||||||
const int punchlineLen = 200;
|
const int punchlineLen = 200;
|
||||||
var firstLine = manifest.Description.Split(new[] { '\r', '\n' })[0];
|
var firstLine = manifest.Description.Split(new[] { '\r', '\n' })[0];
|
||||||
|
|
||||||
ImGuiHelpers.SafeTextWrapped(firstLine.Length < punchlineLen
|
ImGui.TextWrapped(firstLine.Length < punchlineLen
|
||||||
? firstLine
|
? firstLine
|
||||||
: firstLine[..punchlineLen]);
|
: firstLine[..punchlineLen]);
|
||||||
}
|
}
|
||||||
|
|
@ -2406,7 +2406,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
var cursor = ImGui.GetCursorPos();
|
var cursor = ImGui.GetCursorPos();
|
||||||
ImGui.TextUnformatted(log.Title);
|
ImGui.Text(log.Title);
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.TextColored(ImGuiColors.DalamudGrey3, $" v{log.Version}");
|
ImGui.TextColored(ImGuiColors.DalamudGrey3, $" v{log.Version}");
|
||||||
|
|
@ -2429,7 +2429,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
cursor.Y += ImGui.GetTextLineHeightWithSpacing();
|
cursor.Y += ImGui.GetTextLineHeightWithSpacing();
|
||||||
ImGui.SetCursorPos(cursor);
|
ImGui.SetCursorPos(cursor);
|
||||||
|
|
||||||
ImGuiHelpers.SafeTextWrapped(log.Text);
|
ImGui.TextWrapped(log.Text);
|
||||||
|
|
||||||
var endCursor = ImGui.GetCursorPos();
|
var endCursor = ImGui.GetCursorPos();
|
||||||
|
|
||||||
|
|
@ -2526,7 +2526,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
// Description
|
// Description
|
||||||
if (!string.IsNullOrWhiteSpace(manifest.Description))
|
if (!string.IsNullOrWhiteSpace(manifest.Description))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(manifest.Description);
|
ImGui.TextWrapped(manifest.Description);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
|
|
@ -2588,7 +2588,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
var hasTestingVersionAvailable = configuration.DoPluginTest &&
|
var hasTestingVersionAvailable = configuration.DoPluginTest &&
|
||||||
PluginManager.HasTestingVersion(manifest);
|
PluginManager.HasTestingVersion(manifest);
|
||||||
|
|
||||||
if (ImGui.BeginPopupContextItem("ItemContextMenu"))
|
if (ImGui.BeginPopupContextItem("ItemContextMenu"u8))
|
||||||
{
|
{
|
||||||
if (hasTestingVersionAvailable)
|
if (hasTestingVersionAvailable)
|
||||||
{
|
{
|
||||||
|
|
@ -2829,7 +2829,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.Indent();
|
ImGui.Indent();
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
ImGui.TextUnformatted(manifest.Name);
|
ImGui.Text(manifest.Name);
|
||||||
|
|
||||||
// Download count
|
// Download count
|
||||||
var downloadText = plugin.IsDev
|
var downloadText = plugin.IsDev
|
||||||
|
|
@ -2868,7 +2868,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
// Description
|
// Description
|
||||||
if (!string.IsNullOrWhiteSpace(manifest.Description))
|
if (!string.IsNullOrWhiteSpace(manifest.Description))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(manifest.Description);
|
ImGui.TextWrapped(manifest.Description);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Working Plugin ID
|
// Working Plugin ID
|
||||||
|
|
@ -2895,7 +2895,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
.OrderBy(cInfo => cInfo.Value.DisplayOrder)
|
.OrderBy(cInfo => cInfo.Value.DisplayOrder)
|
||||||
.ThenBy(cInfo => cInfo.Key))
|
.ThenBy(cInfo => cInfo.Key))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped($"{command.Key} → {command.Value.HelpMessage}");
|
ImGui.TextWrapped($"{command.Key} → {command.Value.HelpMessage}");
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(3);
|
ImGuiHelpers.ScaledDummy(3);
|
||||||
|
|
@ -2980,11 +2980,11 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.PushStyleVar(ImGuiStyleVar.WindowPadding, new Vector2(7, 5));
|
ImGui.PushStyleVar(ImGuiStyleVar.WindowPadding, new Vector2(7, 5));
|
||||||
|
|
||||||
if (ImGui.BeginChild("##changelog", new Vector2(-1, 100), true, ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.NoNavInputs | ImGuiWindowFlags.AlwaysAutoResize))
|
if (ImGui.BeginChild("##changelog"u8, new Vector2(-1, 100), true, ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.NoNavInputs | ImGuiWindowFlags.AlwaysAutoResize))
|
||||||
{
|
{
|
||||||
ImGui.Text("Changelog:");
|
ImGui.Text("Changelog:"u8);
|
||||||
ImGuiHelpers.ScaledDummy(2);
|
ImGuiHelpers.ScaledDummy(2);
|
||||||
ImGuiHelpers.SafeTextWrapped(changelog!);
|
ImGui.TextWrapped(changelog!);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
|
|
@ -2993,12 +2993,12 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.PopStyleColor(2);
|
ImGui.PopStyleColor(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawInstalledPluginContextMenu(LocalPlugin plugin, PluginTestingOptIn? optIn)
|
private unsafe void DrawInstalledPluginContextMenu(LocalPlugin plugin, PluginTestingOptIn? optIn)
|
||||||
{
|
{
|
||||||
var pluginManager = Service<PluginManager>.Get();
|
var pluginManager = Service<PluginManager>.Get();
|
||||||
var configuration = Service<DalamudConfiguration>.Get();
|
var configuration = Service<DalamudConfiguration>.Get();
|
||||||
|
|
||||||
if (ImGui.BeginPopupContextItem("InstalledItemContextMenu"))
|
if (ImGui.BeginPopupContextItem("InstalledItemContextMenu"u8))
|
||||||
{
|
{
|
||||||
if (configuration.DoPluginTest)
|
if (configuration.DoPluginTest)
|
||||||
{
|
{
|
||||||
|
|
@ -3006,7 +3006,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
if (repoManifest?.IsTestingExclusive == true)
|
if (repoManifest?.IsTestingExclusive == true)
|
||||||
ImGui.BeginDisabled();
|
ImGui.BeginDisabled();
|
||||||
|
|
||||||
if (ImGui.MenuItem(Locs.PluginContext_TestingOptIn, string.Empty, optIn != null))
|
if (ImGui.MenuItem(Locs.PluginContext_TestingOptIn, optIn != null))
|
||||||
{
|
{
|
||||||
if (optIn != null)
|
if (optIn != null)
|
||||||
{
|
{
|
||||||
|
|
@ -3121,7 +3121,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.TextUnformatted(profile.Name);
|
ImGui.Text(profile.Name);
|
||||||
|
|
||||||
didAny = true;
|
didAny = true;
|
||||||
}
|
}
|
||||||
|
|
@ -3424,7 +3424,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
{
|
{
|
||||||
if (!devPlugin.IsLoaded)
|
if (!devPlugin.IsLoaded)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, "You have to load this plugin to see validation issues.");
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudGrey, "You have to load this plugin to see validation issues."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -3435,7 +3435,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
ImGui.Text(FontAwesomeIcon.Check.ToIconString());
|
ImGui.Text(FontAwesomeIcon.Check.ToIconString());
|
||||||
ImGui.PopFont();
|
ImGui.PopFont();
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.HealerGreen, "No validation issues found in this plugin!");
|
ImGui.TextColoredWrapped(ImGuiColors.HealerGreen, "No validation issues found in this plugin!"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -3468,7 +3468,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Dismiss this issue");
|
ImGui.SetTooltip("Dismiss this issue"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3506,7 +3506,7 @@ internal class PluginInstallerWindow : Window, IDisposable
|
||||||
|
|
||||||
using (ImRaii.PushColor(ImGuiCol.Text, thisProblemIsDismissed ? ImGuiColors.DalamudGrey : ImGuiColors.DalamudWhite))
|
using (ImRaii.PushColor(ImGuiCol.Text, thisProblemIsDismissed ? ImGuiColors.DalamudGrey : ImGuiColors.DalamudWhite))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(problem.GetLocalizedDescription());
|
ImGui.TextWrapped(problem.GetLocalizedDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
@ -108,37 +108,37 @@ internal class ProfileManagerWidget
|
||||||
{
|
{
|
||||||
if (popup)
|
if (popup)
|
||||||
{
|
{
|
||||||
using var scrolling = ImRaii.Child("###scrolling", new Vector2(-1, -1));
|
using var scrolling = ImRaii.Child("###scrolling"u8, new Vector2(-1, -1));
|
||||||
if (scrolling)
|
if (scrolling)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialParagraphOne);
|
ImGui.TextWrapped(Locs.TutorialParagraphOne);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialParagraphTwo);
|
ImGui.TextWrapped(Locs.TutorialParagraphTwo);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialParagraphThree);
|
ImGui.TextWrapped(Locs.TutorialParagraphThree);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialParagraphFour);
|
ImGui.TextWrapped(Locs.TutorialParagraphFour);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialCommands);
|
ImGui.TextWrapped(Locs.TutorialCommands);
|
||||||
|
|
||||||
ImGui.Bullet();
|
ImGui.Bullet();
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialCommandsEnable);
|
ImGui.TextWrapped(Locs.TutorialCommandsEnable);
|
||||||
|
|
||||||
ImGui.Bullet();
|
ImGui.Bullet();
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialCommandsDisable);
|
ImGui.TextWrapped(Locs.TutorialCommandsDisable);
|
||||||
|
|
||||||
ImGui.Bullet();
|
ImGui.Bullet();
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialCommandsToggle);
|
ImGui.TextWrapped(Locs.TutorialCommandsToggle);
|
||||||
|
|
||||||
ImGuiHelpers.SafeTextWrapped(Locs.TutorialCommandsEnd);
|
ImGui.TextWrapped(Locs.TutorialCommandsEnd);
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
|
|
||||||
var buttonWidth = 120f;
|
var buttonWidth = 120f;
|
||||||
ImGui.SetCursorPosX((ImGui.GetWindowWidth() - buttonWidth) / 2);
|
ImGui.SetCursorPosX((ImGui.GetWindowWidth() - buttonWidth) / 2);
|
||||||
if (ImGui.Button("OK", new Vector2(buttonWidth, 40)))
|
if (ImGui.Button("OK"u8, new Vector2(buttonWidth, 40)))
|
||||||
{
|
{
|
||||||
ImGui.CloseCurrentPopup();
|
ImGui.CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
|
|
@ -202,7 +202,7 @@ internal class ProfileManagerWidget
|
||||||
|
|
||||||
var windowSize = ImGui.GetWindowSize();
|
var windowSize = ImGui.GetWindowSize();
|
||||||
|
|
||||||
using var profileChooserChild = ImRaii.Child("###profileChooserScrolling");
|
using var profileChooserChild = ImRaii.Child("###profileChooserScrolling"u8);
|
||||||
if (profileChooserChild)
|
if (profileChooserChild)
|
||||||
{
|
{
|
||||||
Guid? toCloneGuid = null;
|
Guid? toCloneGuid = null;
|
||||||
|
|
@ -378,7 +378,7 @@ internal class ProfileManagerWidget
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.SetNextItemWidth(windowSize.X / 3);
|
ImGui.SetNextItemWidth(windowSize.X / 3);
|
||||||
if (ImGui.InputText("###profileNameInput", ref this.profileNameEdit, 255))
|
if (ImGui.InputText("###profileNameInput"u8, ref this.profileNameEdit, 255))
|
||||||
{
|
{
|
||||||
profile.Name = this.profileNameEdit;
|
profile.Name = this.profileNameEdit;
|
||||||
}
|
}
|
||||||
|
|
@ -400,8 +400,8 @@ internal class ProfileManagerWidget
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
|
|
||||||
ImGui.TextUnformatted(Locs.StartupBehavior);
|
ImGui.Text(Locs.StartupBehavior);
|
||||||
if (ImGui.BeginCombo("##startupBehaviorPicker", Locs.PolicyToLocalisedName(profile.StartupPolicy)))
|
if (ImGui.BeginCombo("##startupBehaviorPicker"u8, Locs.PolicyToLocalisedName(profile.StartupPolicy)))
|
||||||
{
|
{
|
||||||
foreach (var policy in Enum.GetValues(typeof(ProfileModelV1.ProfileStartupPolicy)).Cast<ProfileModelV1.ProfileStartupPolicy>())
|
foreach (var policy in Enum.GetValues(typeof(ProfileModelV1.ProfileStartupPolicy)).Cast<ProfileModelV1.ProfileStartupPolicy>())
|
||||||
{
|
{
|
||||||
|
|
@ -420,7 +420,7 @@ internal class ProfileManagerWidget
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
var wantPluginAddPopup = false;
|
var wantPluginAddPopup = false;
|
||||||
|
|
||||||
using var pluginListChild = ImRaii.Child("###profileEditorPluginList");
|
using var pluginListChild = ImRaii.Child("###profileEditorPluginList"u8);
|
||||||
if (pluginListChild)
|
if (pluginListChild)
|
||||||
{
|
{
|
||||||
var pluginLineHeight = 32 * ImGuiHelpers.GlobalScale;
|
var pluginLineHeight = 32 * ImGuiHelpers.GlobalScale;
|
||||||
|
|
@ -456,7 +456,7 @@ internal class ProfileManagerWidget
|
||||||
var before = ImGui.GetCursorPos();
|
var before = ImGui.GetCursorPos();
|
||||||
|
|
||||||
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + (pluginLineHeight / 2) - (textHeight.Y / 2));
|
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + (pluginLineHeight / 2) - (textHeight.Y / 2));
|
||||||
ImGui.TextUnformatted(text);
|
ImGui.Text(text);
|
||||||
|
|
||||||
ImGui.SetCursorPos(before);
|
ImGui.SetCursorPos(before);
|
||||||
}
|
}
|
||||||
|
|
@ -470,7 +470,7 @@ internal class ProfileManagerWidget
|
||||||
var before = ImGui.GetCursorPos();
|
var before = ImGui.GetCursorPos();
|
||||||
|
|
||||||
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + (pluginLineHeight / 2) - (textHeight.Y / 2));
|
ImGui.SetCursorPosY(ImGui.GetCursorPosY() + (pluginLineHeight / 2) - (textHeight.Y / 2));
|
||||||
ImGui.TextUnformatted(text);
|
ImGui.Text(text);
|
||||||
|
|
||||||
var firstAvailableInstalled = pm.InstalledPlugins.FirstOrDefault(x => x.InternalName == profileEntry.InternalName);
|
var firstAvailableInstalled = pm.InstalledPlugins.FirstOrDefault(x => x.InternalName == profileEntry.InternalName);
|
||||||
var installable =
|
var installable =
|
||||||
|
|
@ -572,7 +572,7 @@ internal class ProfileManagerWidget
|
||||||
ImGuiHelpers.ScaledDummy(5);
|
ImGuiHelpers.ScaledDummy(5);
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.TextUnformatted(addPluginsText);
|
ImGui.Text(addPluginsText);
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,17 +45,17 @@ internal class PluginStatWindow : Window
|
||||||
{
|
{
|
||||||
var pluginManager = Service<PluginManager>.Get();
|
var pluginManager = Service<PluginManager>.Get();
|
||||||
|
|
||||||
using var tabBar = ImRaii.TabBar("Stat Tabs");
|
using var tabBar = ImRaii.TabBar("Stat Tabs"u8);
|
||||||
if (!tabBar)
|
if (!tabBar)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Draw times"))
|
using (var tabItem = ImRaii.TabItem("Draw times"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
var doStats = UiBuilder.DoStats;
|
var doStats = UiBuilder.DoStats;
|
||||||
|
|
||||||
if (ImGui.Checkbox("Enable Draw Time Tracking", ref doStats))
|
if (ImGui.Checkbox("Enable Draw Time Tracking"u8, ref doStats))
|
||||||
{
|
{
|
||||||
UiBuilder.DoStats = doStats;
|
UiBuilder.DoStats = doStats;
|
||||||
}
|
}
|
||||||
|
|
@ -63,7 +63,7 @@ internal class PluginStatWindow : Window
|
||||||
if (doStats)
|
if (doStats)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Reset"))
|
if (ImGui.Button("Reset"u8))
|
||||||
{
|
{
|
||||||
foreach (var plugin in pluginManager.InstalledPlugins)
|
foreach (var plugin in pluginManager.InstalledPlugins)
|
||||||
{
|
{
|
||||||
|
|
@ -87,13 +87,13 @@ internal class PluginStatWindow : Window
|
||||||
ImGuiComponents.TextWithLabel("Collective Average", $"{(loadedPlugins.Any() ? totalAverage / loadedPlugins.Count() / 10000f : 0):F4}ms", "Average of all average draw times");
|
ImGuiComponents.TextWithLabel("Collective Average", $"{(loadedPlugins.Any() ? totalAverage / loadedPlugins.Count() / 10000f : 0):F4}ms", "Average of all average draw times");
|
||||||
|
|
||||||
ImGui.InputTextWithHint(
|
ImGui.InputTextWithHint(
|
||||||
"###PluginStatWindow_DrawSearch",
|
"###PluginStatWindow_DrawSearch"u8,
|
||||||
"Search",
|
"Search"u8,
|
||||||
ref this.drawSearchText,
|
ref this.drawSearchText,
|
||||||
500);
|
500);
|
||||||
|
|
||||||
using var table = ImRaii.Table(
|
using var table = ImRaii.Table(
|
||||||
"##PluginStatsDrawTimes",
|
"##PluginStatsDrawTimes"u8,
|
||||||
4,
|
4,
|
||||||
ImGuiTableFlags.RowBg
|
ImGuiTableFlags.RowBg
|
||||||
| ImGuiTableFlags.SizingStretchProp
|
| ImGuiTableFlags.SizingStretchProp
|
||||||
|
|
@ -106,10 +106,10 @@ internal class PluginStatWindow : Window
|
||||||
if (table)
|
if (table)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("Plugin");
|
ImGui.TableSetupColumn("Plugin"u8);
|
||||||
ImGui.TableSetupColumn("Last", ImGuiTableColumnFlags.NoSort); // Changes too fast to sort
|
ImGui.TableSetupColumn("Last"u8, ImGuiTableColumnFlags.NoSort); // Changes too fast to sort
|
||||||
ImGui.TableSetupColumn("Longest");
|
ImGui.TableSetupColumn("Longest"u8);
|
||||||
ImGui.TableSetupColumn("Average");
|
ImGui.TableSetupColumn("Average"u8);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var sortSpecs = ImGui.TableGetSortSpecs();
|
var sortSpecs = ImGui.TableGetSortSpecs();
|
||||||
|
|
@ -159,13 +159,13 @@ internal class PluginStatWindow : Window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Framework times"))
|
using (var tabItem = ImRaii.TabItem("Framework times"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
var doStats = Framework.StatsEnabled;
|
var doStats = Framework.StatsEnabled;
|
||||||
|
|
||||||
if (ImGui.Checkbox("Enable Framework Update Tracking", ref doStats))
|
if (ImGui.Checkbox("Enable Framework Update Tracking"u8, ref doStats))
|
||||||
{
|
{
|
||||||
Framework.StatsEnabled = doStats;
|
Framework.StatsEnabled = doStats;
|
||||||
}
|
}
|
||||||
|
|
@ -173,7 +173,7 @@ internal class PluginStatWindow : Window
|
||||||
if (doStats)
|
if (doStats)
|
||||||
{
|
{
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("Reset"))
|
if (ImGui.Button("Reset"u8))
|
||||||
{
|
{
|
||||||
Framework.StatsHistory.Clear();
|
Framework.StatsHistory.Clear();
|
||||||
}
|
}
|
||||||
|
|
@ -189,13 +189,13 @@ internal class PluginStatWindow : Window
|
||||||
ImGuiComponents.TextWithLabel("Collective Average", $"{(statsHistory.Any() ? totalAverage / statsHistory.Length : 0):F4}ms", "Average of all average update times");
|
ImGuiComponents.TextWithLabel("Collective Average", $"{(statsHistory.Any() ? totalAverage / statsHistory.Length : 0):F4}ms", "Average of all average update times");
|
||||||
|
|
||||||
ImGui.InputTextWithHint(
|
ImGui.InputTextWithHint(
|
||||||
"###PluginStatWindow_FrameworkSearch",
|
"###PluginStatWindow_FrameworkSearch"u8,
|
||||||
"Search",
|
"Search"u8,
|
||||||
ref this.frameworkSearchText,
|
ref this.frameworkSearchText,
|
||||||
500);
|
500);
|
||||||
|
|
||||||
using var table = ImRaii.Table(
|
using var table = ImRaii.Table(
|
||||||
"##PluginStatsFrameworkTimes",
|
"##PluginStatsFrameworkTimes"u8,
|
||||||
4,
|
4,
|
||||||
ImGuiTableFlags.RowBg
|
ImGuiTableFlags.RowBg
|
||||||
| ImGuiTableFlags.SizingStretchProp
|
| ImGuiTableFlags.SizingStretchProp
|
||||||
|
|
@ -207,10 +207,10 @@ internal class PluginStatWindow : Window
|
||||||
if (table)
|
if (table)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("Method", ImGuiTableColumnFlags.None, 250);
|
ImGui.TableSetupColumn("Method"u8, ImGuiTableColumnFlags.None, 250);
|
||||||
ImGui.TableSetupColumn("Last", ImGuiTableColumnFlags.NoSort, 50); // Changes too fast to sort
|
ImGui.TableSetupColumn("Last"u8, ImGuiTableColumnFlags.NoSort, 50); // Changes too fast to sort
|
||||||
ImGui.TableSetupColumn("Longest", ImGuiTableColumnFlags.None, 50);
|
ImGui.TableSetupColumn("Longest"u8, ImGuiTableColumnFlags.None, 50);
|
||||||
ImGui.TableSetupColumn("Average", ImGuiTableColumnFlags.None, 50);
|
ImGui.TableSetupColumn("Average"u8, ImGuiTableColumnFlags.None, 50);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
var sortSpecs = ImGui.TableGetSortSpecs();
|
var sortSpecs = ImGui.TableGetSortSpecs();
|
||||||
|
|
@ -261,20 +261,20 @@ internal class PluginStatWindow : Window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tabItem = ImRaii.TabItem("Hooks"))
|
using (var tabItem = ImRaii.TabItem("Hooks"u8))
|
||||||
{
|
{
|
||||||
if (tabItem)
|
if (tabItem)
|
||||||
{
|
{
|
||||||
ImGui.Checkbox("Show Dalamud Hooks", ref this.showDalamudHooks);
|
ImGui.Checkbox("Show Dalamud Hooks"u8, ref this.showDalamudHooks);
|
||||||
|
|
||||||
ImGui.InputTextWithHint(
|
ImGui.InputTextWithHint(
|
||||||
"###PluginStatWindow_HookSearch",
|
"###PluginStatWindow_HookSearch"u8,
|
||||||
"Search",
|
"Search"u8,
|
||||||
ref this.hookSearchText,
|
ref this.hookSearchText,
|
||||||
500);
|
500);
|
||||||
|
|
||||||
using var table = ImRaii.Table(
|
using var table = ImRaii.Table(
|
||||||
"##PluginStatsHooks",
|
"##PluginStatsHooks"u8,
|
||||||
4,
|
4,
|
||||||
ImGuiTableFlags.RowBg
|
ImGuiTableFlags.RowBg
|
||||||
| ImGuiTableFlags.SizingStretchProp
|
| ImGuiTableFlags.SizingStretchProp
|
||||||
|
|
@ -285,10 +285,10 @@ internal class PluginStatWindow : Window
|
||||||
if (table)
|
if (table)
|
||||||
{
|
{
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
ImGui.TableSetupColumn("Detour Method", ImGuiTableColumnFlags.None, 250);
|
ImGui.TableSetupColumn("Detour Method"u8, ImGuiTableColumnFlags.None, 250);
|
||||||
ImGui.TableSetupColumn("Address", ImGuiTableColumnFlags.None, 100);
|
ImGui.TableSetupColumn("Address"u8, ImGuiTableColumnFlags.None, 100);
|
||||||
ImGui.TableSetupColumn("Status", ImGuiTableColumnFlags.None, 40);
|
ImGui.TableSetupColumn("Status"u8, ImGuiTableColumnFlags.None, 40);
|
||||||
ImGui.TableSetupColumn("Backend", ImGuiTableColumnFlags.None, 40);
|
ImGui.TableSetupColumn("Backend"u8, ImGuiTableColumnFlags.None, 40);
|
||||||
ImGui.TableHeadersRow();
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
foreach (var (guid, trackedHook) in HookManager.TrackedHooks)
|
foreach (var (guid, trackedHook) in HookManager.TrackedHooks)
|
||||||
|
|
@ -335,7 +335,7 @@ internal class PluginStatWindow : Window
|
||||||
|
|
||||||
if (trackedHook.Hook.IsDisposed)
|
if (trackedHook.Hook.IsDisposed)
|
||||||
{
|
{
|
||||||
ImGui.Text("Disposed");
|
ImGui.Text("Disposed"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@ public class ProfilerWindow : Window
|
||||||
var actualMin = Timings.AllTimings.Keys.Min(x => x.StartTime);
|
var actualMin = Timings.AllTimings.Keys.Min(x => x.StartTime);
|
||||||
var actualMax = Timings.AllTimings.Keys.Max(x => x.EndTime);
|
var actualMax = Timings.AllTimings.Keys.Max(x => x.EndTime);
|
||||||
|
|
||||||
ImGui.Text("Timings");
|
ImGui.Text("Timings"u8);
|
||||||
|
|
||||||
var childHeight = Math.Max(300, 20 * (2.5f + this.occupied.Count));
|
var childHeight = Math.Max(300, 20 * (2.5f + this.occupied.Count));
|
||||||
|
|
||||||
if (ImGui.BeginChild("Timings", new Vector2(0, childHeight), true))
|
if (ImGui.BeginChild("Timings"u8, new Vector2(0, childHeight), true))
|
||||||
{
|
{
|
||||||
var pos = ImGui.GetCursorScreenPos();
|
var pos = ImGui.GetCursorScreenPos();
|
||||||
|
|
||||||
|
|
@ -178,12 +178,12 @@ public class ProfilerWindow : Window
|
||||||
if (rectInfo.Hover)
|
if (rectInfo.Hover)
|
||||||
{
|
{
|
||||||
ImGui.BeginTooltip();
|
ImGui.BeginTooltip();
|
||||||
ImGui.TextUnformatted(rectInfo.Timing.Name);
|
ImGui.Text(rectInfo.Timing.Name);
|
||||||
ImGui.TextUnformatted(rectInfo.Timing.MemberName);
|
ImGui.Text(rectInfo.Timing.MemberName);
|
||||||
ImGui.TextUnformatted($"{rectInfo.Timing.FileName}:{rectInfo.Timing.LineNumber}");
|
ImGui.Text($"{rectInfo.Timing.FileName}:{rectInfo.Timing.LineNumber}");
|
||||||
ImGui.TextUnformatted($"Duration: {rectInfo.Timing.Duration}ms");
|
ImGui.Text($"Duration: {rectInfo.Timing.Duration}ms");
|
||||||
if (rectInfo.Timing.Parent != null)
|
if (rectInfo.Timing.Parent != null)
|
||||||
ImGui.TextUnformatted($"Parent: {rectInfo.Timing.Parent.Name}");
|
ImGui.Text($"Parent: {rectInfo.Timing.Parent.Name}");
|
||||||
ImGui.EndTooltip();
|
ImGui.EndTooltip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -236,20 +236,20 @@ public class ProfilerWindow : Window
|
||||||
ImGui.EndChild();
|
ImGui.EndChild();
|
||||||
|
|
||||||
var sliderMin = (float)this.min / 1000f;
|
var sliderMin = (float)this.min / 1000f;
|
||||||
if (ImGui.SliderFloat("Start", ref sliderMin, (float)actualMin / 1000f, (float)this.max / 1000f, "%.2fs"))
|
if (ImGui.SliderFloat("Start"u8, ref sliderMin, (float)actualMin / 1000f, (float)this.max / 1000f, "%.2fs"))
|
||||||
{
|
{
|
||||||
this.min = sliderMin * 1000f;
|
this.min = sliderMin * 1000f;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sliderMax = (float)this.max / 1000f;
|
var sliderMax = (float)this.max / 1000f;
|
||||||
if (ImGui.SliderFloat("End", ref sliderMax, (float)this.min / 1000f, (float)actualMax / 1000f, "%.2fs"))
|
if (ImGui.SliderFloat("End"u8, ref sliderMax, (float)this.min / 1000f, (float)actualMax / 1000f, "%.2fs"))
|
||||||
{
|
{
|
||||||
this.max = sliderMax * 1000f;
|
this.max = sliderMax * 1000f;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sizeShown = (float)(this.max - this.min) / 1000f;
|
var sizeShown = (float)(this.max - this.min) / 1000f;
|
||||||
var sizeActual = (float)(actualMax - actualMin) / 1000f;
|
var sizeActual = (float)(actualMax - actualMin) / 1000f;
|
||||||
if (ImGui.SliderFloat("Size", ref sizeShown, sizeActual / 10f, sizeActual, "%.2fs"))
|
if (ImGui.SliderFloat("Size"u8, ref sizeShown, sizeActual / 10f, sizeActual, "%.2fs"))
|
||||||
{
|
{
|
||||||
this.max = this.min + (sizeShown * 1000f);
|
this.max = this.min + (sizeShown * 1000f);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGui.TextUnformatted($"Step: {this.currentStep} / {this.steps.Count}");
|
ImGui.Text($"Step: {this.currentStep} / {this.steps.Count}");
|
||||||
|
|
||||||
ImGui.Spacing();
|
ImGui.Spacing();
|
||||||
|
|
||||||
|
|
@ -135,11 +135,11 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
if (this.testIndexToResult.Any(x => x.Value.Result == SelfTestStepResult.Fail))
|
if (this.testIndexToResult.Any(x => x.Value.Result == SelfTestStepResult.Fail))
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudRed, "One or more checks failed!");
|
ImGui.TextColoredWrapped(ImGuiColors.DalamudRed, "One or more checks failed!"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.HealerGreen, "All checks passed!");
|
ImGui.TextColoredWrapped(ImGuiColors.HealerGreen, "All checks passed!"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -150,11 +150,11 @@ internal class SelfTestWindow : Window
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using var resultChild = ImRaii.Child("SelfTestResultChild", ImGui.GetContentRegionAvail());
|
using var resultChild = ImRaii.Child("SelfTestResultChild"u8, ImGui.GetContentRegionAvail());
|
||||||
if (!resultChild) return;
|
if (!resultChild) return;
|
||||||
|
|
||||||
var step = this.steps[this.currentStep];
|
var step = this.steps[this.currentStep];
|
||||||
ImGui.TextUnformatted($"Current: {step.Name}");
|
ImGui.Text($"Current: {step.Name}");
|
||||||
|
|
||||||
ImGuiHelpers.ScaledDummy(10);
|
ImGuiHelpers.ScaledDummy(10);
|
||||||
|
|
||||||
|
|
@ -189,14 +189,14 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
tableSize.Y = Math.Min(tableSize.Y, ImGui.GetWindowViewport().Size.Y * 0.5f);
|
tableSize.Y = Math.Min(tableSize.Y, ImGui.GetWindowViewport().Size.Y * 0.5f);
|
||||||
|
|
||||||
using var table = ImRaii.Table("agingResultTable", 5, ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY, tableSize);
|
using var table = ImRaii.Table("agingResultTable"u8, 5, ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY, tableSize);
|
||||||
if (!table)
|
if (!table)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.TableSetupColumn("###index", ImGuiTableColumnFlags.WidthFixed, 12f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("###index"u8, ImGuiTableColumnFlags.WidthFixed, 12f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("Name");
|
ImGui.TableSetupColumn("Name"u8);
|
||||||
ImGui.TableSetupColumn("Result", ImGuiTableColumnFlags.WidthFixed, 40f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("Result"u8, ImGuiTableColumnFlags.WidthFixed, 40f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn("Duration", ImGuiTableColumnFlags.WidthFixed, 90f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn("Duration"u8, ImGuiTableColumnFlags.WidthFixed, 90f * ImGuiHelpers.GlobalScale);
|
||||||
ImGui.TableSetupColumn(string.Empty, ImGuiTableColumnFlags.WidthFixed, 30f * ImGuiHelpers.GlobalScale);
|
ImGui.TableSetupColumn(string.Empty, ImGuiTableColumnFlags.WidthFixed, 30f * ImGuiHelpers.GlobalScale);
|
||||||
|
|
||||||
ImGui.TableSetupScrollFreeze(0, 1);
|
ImGui.TableSetupScrollFreeze(0, 1);
|
||||||
|
|
@ -214,7 +214,7 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
ImGui.TableSetColumnIndex(0);
|
ImGui.TableSetColumnIndex(0);
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted(i.ToString());
|
ImGui.Text(i.ToString());
|
||||||
|
|
||||||
if (this.selfTestRunning && this.scrollToStep == i)
|
if (this.selfTestRunning && this.scrollToStep == i)
|
||||||
{
|
{
|
||||||
|
|
@ -224,7 +224,7 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
ImGui.TableSetColumnIndex(1);
|
ImGui.TableSetColumnIndex(1);
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted(step.Name);
|
ImGui.Text(step.Name);
|
||||||
|
|
||||||
if (this.testIndexToResult.TryGetValue(i, out var result))
|
if (this.testIndexToResult.TryGetValue(i, out var result))
|
||||||
{
|
{
|
||||||
|
|
@ -234,13 +234,13 @@ internal class SelfTestWindow : Window
|
||||||
switch (result.Result)
|
switch (result.Result)
|
||||||
{
|
{
|
||||||
case SelfTestStepResult.Pass:
|
case SelfTestStepResult.Pass:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.HealerGreen, "PASS");
|
ImGui.TextColored(ImGuiColors.HealerGreen, "PASS"u8);
|
||||||
break;
|
break;
|
||||||
case SelfTestStepResult.Fail:
|
case SelfTestStepResult.Fail:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudRed, "FAIL");
|
ImGui.TextColored(ImGuiColors.DalamudRed, "FAIL"u8);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, "NR");
|
ImGui.TextColored(ImGuiColors.DalamudGrey, "NR"u8);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -248,7 +248,7 @@ internal class SelfTestWindow : Window
|
||||||
if (result.Duration.HasValue)
|
if (result.Duration.HasValue)
|
||||||
{
|
{
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
ImGui.TextUnformatted(this.FormatTimeSpan(result.Duration.Value));
|
ImGui.Text(this.FormatTimeSpan(result.Duration.Value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -257,18 +257,18 @@ internal class SelfTestWindow : Window
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
if (this.selfTestRunning && this.currentStep == i)
|
if (this.selfTestRunning && this.currentStep == i)
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, "WAIT");
|
ImGui.TextColored(ImGuiColors.DalamudGrey, "WAIT"u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, "NR");
|
ImGui.TextColored(ImGuiColors.DalamudGrey, "NR"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.TableSetColumnIndex(3);
|
ImGui.TableSetColumnIndex(3);
|
||||||
ImGui.AlignTextToFramePadding();
|
ImGui.AlignTextToFramePadding();
|
||||||
if (this.selfTestRunning && this.currentStep == i)
|
if (this.selfTestRunning && this.currentStep == i)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted(this.FormatTimeSpan(DateTimeOffset.Now - this.lastTestStart));
|
ImGui.Text(this.FormatTimeSpan(DateTimeOffset.Now - this.lastTestStart));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -285,7 +285,7 @@ internal class SelfTestWindow : Window
|
||||||
|
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui.SetTooltip("Jump to this test");
|
ImGui.SetTooltip("Jump to this test"u8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ internal class ActorTableSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var objectTable = Service<ObjectTable>.Get();
|
var objectTable = Service<ObjectTable>.Get();
|
||||||
|
|
||||||
ImGui.Text("Checking actor table...");
|
ImGui.Text("Checking actor table..."u8);
|
||||||
|
|
||||||
if (this.index == objectTable.Length - 1)
|
if (this.index == objectTable.Length - 1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -66,19 +66,19 @@ internal class AddonLifecycleSelfTestStep : ISelfTestStep
|
||||||
switch (this.currentStep)
|
switch (this.currentStep)
|
||||||
{
|
{
|
||||||
case TestStep.CharacterRefresh:
|
case TestStep.CharacterRefresh:
|
||||||
ImGui.Text("Open Character Window.");
|
ImGui.Text("Open Character Window."u8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TestStep.CharacterSetup:
|
case TestStep.CharacterSetup:
|
||||||
ImGui.Text("Open Character Window.");
|
ImGui.Text("Open Character Window."u8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TestStep.CharacterRequestedUpdate:
|
case TestStep.CharacterRequestedUpdate:
|
||||||
ImGui.Text("Change tabs, or un-equip/equip gear.");
|
ImGui.Text("Change tabs, or un-equip/equip gear."u8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TestStep.CharacterFinalize:
|
case TestStep.CharacterFinalize:
|
||||||
ImGui.Text("Close Character Window.");
|
ImGui.Text("Close Character Window."u8);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TestStep.CharacterUpdate:
|
case TestStep.CharacterUpdate:
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ internal class AetheryteListSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var list = Service<AetheryteList>.Get();
|
var list = Service<AetheryteList>.Get();
|
||||||
|
|
||||||
ImGui.Text("Checking aetheryte list...");
|
ImGui.Text("Checking aetheryte list..."u8);
|
||||||
|
|
||||||
if (this.index == list.Length - 1)
|
if (this.index == list.Length - 1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Game.Command;
|
using Dalamud.Game.Command;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
|
|
||||||
namespace Dalamud.Interface.Internal.Windows.SelfTest.Steps;
|
namespace Dalamud.Interface.Internal.Windows.SelfTest.Steps;
|
||||||
|
|
||||||
|
|
@ -27,37 +28,37 @@ internal class CompletionSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
ImGui.Text("[Chat Log]");
|
ImGui.Text("[Chat Log]"u8);
|
||||||
ImGui.TextWrapped("Use the category menus to navigate to [Dalamud], then complete a command from the list. Did it work?");
|
ImGui.TextWrapped("Use the category menus to navigate to [Dalamud], then complete a command from the list. Did it work?"u8);
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
this.step++;
|
this.step++;
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
ImGui.Text("[Chat Log]");
|
ImGui.Text("[Chat Log]"u8);
|
||||||
ImGui.Text("Type /xl into the chat log and tab-complete a dalamud command. Did it work?");
|
ImGui.Text("Type /xl into the chat log and tab-complete a dalamud command. Did it work?"u8);
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
this.step++;
|
this.step++;
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
ImGui.Text("[Chat Log]");
|
ImGui.Text("[Chat Log]"u8);
|
||||||
if (!this.registered)
|
if (!this.registered)
|
||||||
{
|
{
|
||||||
cmdManager.AddHandler("/xlselftestcompletion", new CommandInfo((_, _) => this.commandRun = true));
|
cmdManager.AddHandler("/xlselftestcompletion", new CommandInfo((_, _) => this.commandRun = true));
|
||||||
this.registered = true;
|
this.registered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Tab-complete /xlselftestcompletion in the chat log and send the command");
|
ImGui.Text("Tab-complete /xlselftestcompletion in the chat log and send the command"u8);
|
||||||
|
|
||||||
if (this.commandRun)
|
if (this.commandRun)
|
||||||
this.step++;
|
this.step++;
|
||||||
|
|
@ -65,14 +66,14 @@ internal class CompletionSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
ImGui.Text("[Other text inputs]");
|
ImGui.Text("[Other text inputs]"u8);
|
||||||
ImGui.Text("Open the party finder recruitment criteria dialog and try to tab-complete /xldev in the text box.");
|
ImGui.Text("Open the party finder recruitment criteria dialog and try to tab-complete /xldev in the text box."u8);
|
||||||
ImGui.Text("Did the command appear in the text box? (It should not have)");
|
ImGui.Text("Did the command appear in the text box? (It should not have)"u8);
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
this.step++;
|
this.step++;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ internal class ConditionSelfTestStep : ISelfTestStep
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Please jump...");
|
ImGui.Text("Please jump..."u8);
|
||||||
|
|
||||||
return condition[ConditionFlag.Jumping] ? SelfTestStepResult.Pass : SelfTestStepResult.Waiting;
|
return condition[ConditionFlag.Jumping] ? SelfTestStepResult.Pass : SelfTestStepResult.Waiting;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,19 +61,19 @@ internal class ContextMenuSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
ImGui.Text($"Is the data in the submenu correct?");
|
ImGui.Text($"Is the data in the submenu correct?");
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Right-click an item and select \"Self Test\".");
|
ImGui.Text("Right-click an item and select \"Self Test\".");
|
||||||
|
|
||||||
if (ImGui.Button("Skip"))
|
if (ImGui.Button("Skip"u8))
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,19 +84,19 @@ internal class ContextMenuSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
ImGui.Text($"Did you click \"{character.Name}\" ({character.ClassJob.Value.Abbreviation.ExtractText()})?");
|
ImGui.Text($"Did you click \"{character.Name}\" ({character.ClassJob.Value.Abbreviation.ExtractText()})?");
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Right-click a character.");
|
ImGui.Text("Right-click a character."u8);
|
||||||
|
|
||||||
if (ImGui.Button("Skip"))
|
if (ImGui.Button("Skip"u8))
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ internal class DutyStateSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var dutyState = Service<DutyState>.Get();
|
var dutyState = Service<DutyState>.Get();
|
||||||
|
|
||||||
ImGui.Text("Enter a duty now...");
|
ImGui.Text("Enter a duty now..."u8);
|
||||||
|
|
||||||
if (!this.subscribed)
|
if (!this.subscribed)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ internal class EnterTerritorySelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var clientState = Service<ClientState>.Get();
|
var clientState = Service<ClientState>.Get();
|
||||||
|
|
||||||
ImGui.TextUnformatted(this.Name);
|
ImGui.Text(this.Name);
|
||||||
|
|
||||||
if (!this.subscribed)
|
if (!this.subscribed)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,11 @@ internal class FateTableSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var fateTable = Service<FateTable>.Get();
|
var fateTable = Service<FateTable>.Get();
|
||||||
|
|
||||||
ImGui.Text("Checking fate table...");
|
ImGui.Text("Checking fate table..."u8);
|
||||||
|
|
||||||
if (fateTable.Length == 0)
|
if (fateTable.Length == 0)
|
||||||
{
|
{
|
||||||
ImGui.Text("Go to a zone that has FATEs currently up.");
|
ImGui.Text("Go to a zone that has FATEs currently up."u8);
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ internal class GameConfigSelfTestStep : ISelfTestStep
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Switch Movement Type to Standard");
|
ImGui.Text("Switch Movement Type to Standard"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
@ -57,7 +57,7 @@ internal class GameConfigSelfTestStep : ISelfTestStep
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Switch Movement Type to Legacy");
|
ImGui.Text("Switch Movement Type to Legacy"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
@ -73,7 +73,7 @@ internal class GameConfigSelfTestStep : ISelfTestStep
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Switch Movement Type to Legacy");
|
ImGui.Text("Switch Movement Type to Legacy"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
@ -87,7 +87,7 @@ internal class GameConfigSelfTestStep : ISelfTestStep
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Switch Movement Type to Standard");
|
ImGui.Text("Switch Movement Type to Standard"u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ internal class HoverSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (!this.clearedItem)
|
if (!this.clearedItem)
|
||||||
{
|
{
|
||||||
ImGui.Text("Hover WHM soul crystal...");
|
ImGui.Text("Hover WHM soul crystal..."u8);
|
||||||
|
|
||||||
if (gameGui.HoveredItem == 4547)
|
if (gameGui.HoveredItem == 4547)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ internal class ItemPayloadSelfTestStep : ISelfTestStep
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
break;
|
break;
|
||||||
case SubStep.HoverNormalItem:
|
case SubStep.HoverNormalItem:
|
||||||
ImGui.Text("Hover the item.");
|
ImGui.Text("Hover the item."u8);
|
||||||
if (gameGui.HoveredItem != normalItemId)
|
if (gameGui.HoveredItem != normalItemId)
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
@ -62,7 +62,7 @@ internal class ItemPayloadSelfTestStep : ISelfTestStep
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
break;
|
break;
|
||||||
case SubStep.HoverHqItem:
|
case SubStep.HoverHqItem:
|
||||||
ImGui.Text("Hover the item.");
|
ImGui.Text("Hover the item."u8);
|
||||||
if (gameGui.HoveredItem != 1_000_000 + hqItemId)
|
if (gameGui.HoveredItem != 1_000_000 + hqItemId)
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
@ -72,7 +72,7 @@ internal class ItemPayloadSelfTestStep : ISelfTestStep
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
break;
|
break;
|
||||||
case SubStep.HoverCollectable:
|
case SubStep.HoverCollectable:
|
||||||
ImGui.Text("Hover the item.");
|
ImGui.Text("Hover the item."u8);
|
||||||
if (gameGui.HoveredItem != 500_000 + collectableItemId)
|
if (gameGui.HoveredItem != 500_000 + collectableItemId)
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
@ -82,7 +82,7 @@ internal class ItemPayloadSelfTestStep : ISelfTestStep
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
break;
|
break;
|
||||||
case SubStep.HoverEventItem:
|
case SubStep.HoverEventItem:
|
||||||
ImGui.Text("Hover the item.");
|
ImGui.Text("Hover the item."u8);
|
||||||
if (gameGui.HoveredItem != eventItemId)
|
if (gameGui.HoveredItem != eventItemId)
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
@ -92,7 +92,7 @@ internal class ItemPayloadSelfTestStep : ISelfTestStep
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
break;
|
break;
|
||||||
case SubStep.HoverNormalWithText:
|
case SubStep.HoverNormalWithText:
|
||||||
ImGui.Text("Hover the item.");
|
ImGui.Text("Hover the item."u8);
|
||||||
if (gameGui.HoveredItem != normalItemId)
|
if (gameGui.HoveredItem != normalItemId)
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ internal class KeyStateSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var keyState = Service<KeyState>.Get();
|
var keyState = Service<KeyState>.Get();
|
||||||
|
|
||||||
ImGui.Text("Hold down D,A,L,M,U");
|
ImGui.Text("Hold down D,A,L,M,U"u8);
|
||||||
|
|
||||||
if (keyState[VirtualKey.D]
|
if (keyState[VirtualKey.D]
|
||||||
&& keyState[VirtualKey.A]
|
&& keyState[VirtualKey.A]
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ internal class LoginEventSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var clientState = Service<ClientState>.Get();
|
var clientState = Service<ClientState>.Get();
|
||||||
|
|
||||||
ImGui.Text("Log in now...");
|
ImGui.Text("Log in now..."u8);
|
||||||
|
|
||||||
if (!this.subscribed)
|
if (!this.subscribed)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ internal class LogoutEventSelfTestStep : ISelfTestStep
|
||||||
{
|
{
|
||||||
var clientState = Service<ClientState>.Get();
|
var clientState = Service<ClientState>.Get();
|
||||||
|
|
||||||
ImGui.Text("Log out now...");
|
ImGui.Text("Log out now..."u8);
|
||||||
|
|
||||||
if (!this.subscribed)
|
if (!this.subscribed)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ using System.Linq;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Game.MarketBoard;
|
using Dalamud.Game.MarketBoard;
|
||||||
using Dalamud.Game.Network.Structures;
|
using Dalamud.Game.Network.Structures;
|
||||||
|
using Dalamud.Interface.Utility;
|
||||||
|
|
||||||
namespace Dalamud.Interface.Internal.Windows.SelfTest.Steps;
|
namespace Dalamud.Interface.Internal.Windows.SelfTest.Steps;
|
||||||
|
|
||||||
|
|
@ -50,24 +51,24 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (this.historyListing == null)
|
if (this.historyListing == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Goto a Market Board. Open any item that has historical sale listings.");
|
ImGui.Text("Goto a Market Board. Open any item that has historical sale listings."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Does one of the historical sales match this information?");
|
ImGui.Text("Does one of the historical sales match this information?"u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text($"Quantity: {this.historyListing.Quantity.ToString()}");
|
ImGui.Text($"Quantity: {this.historyListing.Quantity.ToString()}");
|
||||||
ImGui.Text($"Buyer: {this.historyListing.BuyerName}");
|
ImGui.Text($"Buyer: {this.historyListing.BuyerName}");
|
||||||
ImGui.Text($"Sale Price: {this.historyListing.SalePrice.ToString()}");
|
ImGui.Text($"Sale Price: {this.historyListing.SalePrice.ToString()}");
|
||||||
ImGui.Text($"Purchase Time: {this.historyListing.PurchaseTime.ToLocalTime().ToString(CultureInfo.InvariantCulture)}");
|
ImGui.Text($"Purchase Time: {this.historyListing.PurchaseTime.ToLocalTime().ToString(CultureInfo.InvariantCulture)}");
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (ImGui.Button("Looks Correct / Skip"))
|
if (ImGui.Button("Looks Correct / Skip"u8))
|
||||||
{
|
{
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
@ -78,24 +79,24 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (this.itemListing == null)
|
if (this.itemListing == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Goto a Market Board. Open any item that has sale listings.");
|
ImGui.Text("Goto a Market Board. Open any item that has sale listings."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Does one of the sales match this information?");
|
ImGui.Text("Does one of the sales match this information?"u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text($"Quantity: {this.itemListing.ItemQuantity.ToString()}");
|
ImGui.Text($"Quantity: {this.itemListing.ItemQuantity.ToString()}");
|
||||||
ImGui.Text($"Price Per Unit: {this.itemListing.PricePerUnit}");
|
ImGui.Text($"Price Per Unit: {this.itemListing.PricePerUnit}");
|
||||||
ImGui.Text($"Retainer Name: {this.itemListing.RetainerName}");
|
ImGui.Text($"Retainer Name: {this.itemListing.RetainerName}");
|
||||||
ImGui.Text($"Is HQ?: {(this.itemListing.IsHq ? "Yes" : "No")}");
|
ImGui.Text($"Is HQ?: {(this.itemListing.IsHq ? "Yes" : "No")}");
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (ImGui.Button("Looks Correct / Skip"))
|
if (ImGui.Button("Looks Correct / Skip"u8))
|
||||||
{
|
{
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
@ -105,23 +106,23 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
case SubStep.PurchaseRequests:
|
case SubStep.PurchaseRequests:
|
||||||
if (this.marketBoardPurchaseRequest == null)
|
if (this.marketBoardPurchaseRequest == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Goto a Market Board. Purchase any item, the cheapest you can find.");
|
ImGui.Text("Goto a Market Board. Purchase any item, the cheapest you can find."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextWrapped("Does this information match the purchase you made? This is testing the request to the server.");
|
ImGui.TextWrapped("Does this information match the purchase you made? This is testing the request to the server."u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text($"Quantity: {this.marketBoardPurchaseRequest.ItemQuantity.ToString()}");
|
ImGui.Text($"Quantity: {this.marketBoardPurchaseRequest.ItemQuantity.ToString()}");
|
||||||
ImGui.Text($"Item ID: {this.marketBoardPurchaseRequest.CatalogId}");
|
ImGui.Text($"Item ID: {this.marketBoardPurchaseRequest.CatalogId}");
|
||||||
ImGui.Text($"Price Per Unit: {this.marketBoardPurchaseRequest.PricePerUnit}");
|
ImGui.Text($"Price Per Unit: {this.marketBoardPurchaseRequest.PricePerUnit}");
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (ImGui.Button("Looks Correct / Skip"))
|
if (ImGui.Button("Looks Correct / Skip"u8))
|
||||||
{
|
{
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
@ -131,22 +132,22 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
case SubStep.Purchases:
|
case SubStep.Purchases:
|
||||||
if (this.marketBoardPurchase == null)
|
if (this.marketBoardPurchase == null)
|
||||||
{
|
{
|
||||||
ImGui.Text("Goto a Market Board. Purchase any item, the cheapest you can find.");
|
ImGui.Text("Goto a Market Board. Purchase any item, the cheapest you can find."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.TextWrapped("Does this information match the purchase you made? This is testing the response from the server.");
|
ImGui.TextWrapped("Does this information match the purchase you made? This is testing the response from the server."u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text($"Quantity: {this.marketBoardPurchase.ItemQuantity.ToString()}");
|
ImGui.Text($"Quantity: {this.marketBoardPurchase.ItemQuantity.ToString()}");
|
||||||
ImGui.Text($"Item ID: {this.marketBoardPurchase.CatalogId}");
|
ImGui.Text($"Item ID: {this.marketBoardPurchase.CatalogId}");
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (ImGui.Button("Looks Correct / Skip"))
|
if (ImGui.Button("Looks Correct / Skip"u8))
|
||||||
{
|
{
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
@ -156,11 +157,11 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
case SubStep.Taxes:
|
case SubStep.Taxes:
|
||||||
if (this.marketTaxRate == null)
|
if (this.marketTaxRate == null)
|
||||||
{
|
{
|
||||||
ImGui.TextWrapped("Goto a Retainer Vocate and talk to then. Click the 'View market tax rates' menu item.");
|
ImGui.TextWrapped("Goto a Retainer Vocate and talk to then. Click the 'View market tax rates' menu item."u8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGui.Text("Does this market tax rate information look correct?");
|
ImGui.Text("Does this market tax rate information look correct?"u8);
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
ImGui.Text($"Uldah: {this.marketTaxRate.UldahTax.ToString()}");
|
ImGui.Text($"Uldah: {this.marketTaxRate.UldahTax.ToString()}");
|
||||||
ImGui.Text($"Gridania: {this.marketTaxRate.GridaniaTax.ToString()}");
|
ImGui.Text($"Gridania: {this.marketTaxRate.GridaniaTax.ToString()}");
|
||||||
|
|
@ -171,13 +172,13 @@ internal class MarketBoardSelfTestStep : ISelfTestStep
|
||||||
ImGui.Text($"Sharlayan: {this.marketTaxRate.SharlayanTax.ToString()}");
|
ImGui.Text($"Sharlayan: {this.marketTaxRate.SharlayanTax.ToString()}");
|
||||||
ImGui.Text($"Tuliyollal: {this.marketTaxRate.TuliyollalTax.ToString()}");
|
ImGui.Text($"Tuliyollal: {this.marketTaxRate.TuliyollalTax.ToString()}");
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
if (ImGui.Button("Looks Correct / Skip"))
|
if (ImGui.Button("Looks Correct / Skip"u8))
|
||||||
{
|
{
|
||||||
this.currentSubStep++;
|
this.currentSubStep++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Game.Gui.NamePlate;
|
using Dalamud.Game.Gui.NamePlate;
|
||||||
|
|
@ -40,14 +40,14 @@ internal class NamePlateSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SubStep.Confirm:
|
case SubStep.Confirm:
|
||||||
ImGui.Text("Click to redraw all visible nameplates");
|
ImGui.Text("Click to redraw all visible nameplates"u8);
|
||||||
if (ImGui.Button("Request redraw"))
|
if (ImGui.Button("Request redraw"u8))
|
||||||
namePlateGui.RequestRedraw();
|
namePlateGui.RequestRedraw();
|
||||||
|
|
||||||
ImGui.TextUnformatted("Can you see marker icons above nameplates, and does\n" +
|
ImGui.Text("Can you see marker icons above nameplates, and does\n" +
|
||||||
"the update count increase when using request redraw?");
|
"the update count increase when using request redraw?");
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
{
|
{
|
||||||
this.CleanUp();
|
this.CleanUp();
|
||||||
return SelfTestStepResult.Pass;
|
return SelfTestStepResult.Pass;
|
||||||
|
|
@ -55,7 +55,7 @@ internal class NamePlateSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
this.CleanUp();
|
this.CleanUp();
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
|
||||||
|
|
@ -225,11 +225,11 @@ internal class NounProcessorSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (e.ExpectedResult != output)
|
if (e.ExpectedResult != output)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"Mismatch detected (Test #{i}):");
|
ImGui.Text($"Mismatch detected (Test #{i}):");
|
||||||
ImGui.TextUnformatted($"Got: {output}");
|
ImGui.Text($"Got: {output}");
|
||||||
ImGui.TextUnformatted($"Expected: {e.ExpectedResult}");
|
ImGui.Text($"Expected: {e.ExpectedResult}");
|
||||||
|
|
||||||
if (ImGui.Button("Continue"))
|
if (ImGui.Button("Continue"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ internal class PartyFinderSelfTestStep : ISelfTestStep
|
||||||
return SelfTestStepResult.Pass;
|
return SelfTestStepResult.Pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Open Party Finder");
|
ImGui.Text("Open Party Finder"u8);
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,26 +23,26 @@ internal class SeStringEvaluatorSelfTestStep : ISelfTestStep
|
||||||
switch (this.step)
|
switch (this.step)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
ImGui.TextUnformatted("Is this the current time, and is it ticking?");
|
ImGui.Text("Is this the current time, and is it ticking?"u8);
|
||||||
|
|
||||||
// This checks that EvaluateFromAddon fetches the correct Addon row,
|
// This checks that EvaluateFromAddon fetches the correct Addon row,
|
||||||
// that MacroDecoder.GetMacroTime()->SetTime() has been called
|
// that MacroDecoder.GetMacroTime()->SetTime() has been called
|
||||||
// and that local and global parameters have been read correctly.
|
// and that local and global parameters have been read correctly.
|
||||||
|
|
||||||
ImGui.TextUnformatted(seStringEvaluator.EvaluateFromAddon(31, [(uint)DateTimeOffset.UtcNow.ToUnixTimeSeconds()]).ExtractText());
|
ImGui.Text(seStringEvaluator.EvaluateFromAddon(31, [(uint)DateTimeOffset.UtcNow.ToUnixTimeSeconds()]).ExtractText());
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
this.step++;
|
this.step++;
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
ImGui.TextUnformatted("Checking pcname macro using the local player name...");
|
ImGui.Text("Checking pcname macro using the local player name..."u8);
|
||||||
|
|
||||||
// This makes sure that NameCache.Instance()->TryGetCharacterInfoByEntityId() has been called,
|
// This makes sure that NameCache.Instance()->TryGetCharacterInfoByEntityId() has been called,
|
||||||
// that it returned the local players name by using its EntityId,
|
// that it returned the local players name by using its EntityId,
|
||||||
|
|
@ -52,9 +52,9 @@ internal class SeStringEvaluatorSelfTestStep : ISelfTestStep
|
||||||
var localPlayer = clientState.LocalPlayer;
|
var localPlayer = clientState.LocalPlayer;
|
||||||
if (localPlayer is null)
|
if (localPlayer is null)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("You need to be logged in for this step.");
|
ImGui.Text("You need to be logged in for this step."u8);
|
||||||
|
|
||||||
if (ImGui.Button("Skip"))
|
if (ImGui.Button("Skip"u8))
|
||||||
return SelfTestStepResult.NotRan;
|
return SelfTestStepResult.NotRan;
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
@ -65,11 +65,11 @@ internal class SeStringEvaluatorSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (evaluatedPlayerName != localPlayerName)
|
if (evaluatedPlayerName != localPlayerName)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted("The player name doesn't match:");
|
ImGui.Text("The player name doesn't match:"u8);
|
||||||
ImGui.TextUnformatted($"Evaluated Player Name (got): {evaluatedPlayerName}");
|
ImGui.Text($"Evaluated Player Name (got): {evaluatedPlayerName}");
|
||||||
ImGui.TextUnformatted($"Local Player Name (expected): {localPlayerName}");
|
ImGui.Text($"Local Player Name (expected): {localPlayerName}");
|
||||||
|
|
||||||
if (ImGui.Button("Continue"))
|
if (ImGui.Button("Continue"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
|
||||||
|
|
@ -102,12 +102,12 @@ internal class SheetRedirectResolverSelfTestStep : ISelfTestStep
|
||||||
|
|
||||||
if (utf8SheetName->ToString() != sheetName2 || rowId1 != rowId2 || colIndex1 != colIndex2 || flags1 != flags2)
|
if (utf8SheetName->ToString() != sheetName2 || rowId1 != rowId2 || colIndex1 != colIndex2 || flags1 != flags2)
|
||||||
{
|
{
|
||||||
ImGui.TextUnformatted($"Mismatch detected (Test #{i}):");
|
ImGui.Text($"Mismatch detected (Test #{i}):");
|
||||||
ImGui.TextUnformatted($"Input: {redirect.SheetName}#{redirect.RowId}");
|
ImGui.Text($"Input: {redirect.SheetName}#{redirect.RowId}");
|
||||||
ImGui.TextUnformatted($"Game: {utf8SheetName->ToString()}#{rowId1}-{colIndex1} ({flags1})");
|
ImGui.Text($"Game: {utf8SheetName->ToString()}#{rowId1}-{colIndex1} ({flags1})");
|
||||||
ImGui.TextUnformatted($"Evaluated: {sheetName2}#{rowId2}-{colIndex2} ({flags2})");
|
ImGui.Text($"Evaluated: {sheetName2}#{rowId2}-{colIndex2} ({flags2})");
|
||||||
|
|
||||||
if (ImGui.Button("Continue"))
|
if (ImGui.Button("Continue"u8))
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
|
|
||||||
return SelfTestStepResult.Waiting;
|
return SelfTestStepResult.Waiting;
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ internal class TargetSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
ImGui.Text("Target a player...");
|
ImGui.Text("Target a player..."u8);
|
||||||
|
|
||||||
var cTarget = targetManager.Target;
|
var cTarget = targetManager.Target;
|
||||||
if (cTarget is PlayerCharacter)
|
if (cTarget is PlayerCharacter)
|
||||||
|
|
@ -42,7 +42,7 @@ internal class TargetSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
ImGui.Text("Focus-Target a Battle NPC...");
|
ImGui.Text("Focus-Target a Battle NPC..."u8);
|
||||||
|
|
||||||
var fTarget = targetManager.FocusTarget;
|
var fTarget = targetManager.FocusTarget;
|
||||||
if (fTarget is BattleNpc)
|
if (fTarget is BattleNpc)
|
||||||
|
|
@ -53,7 +53,7 @@ internal class TargetSelfTestStep : ISelfTestStep
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
ImGui.Text("Soft-Target an EventObj...");
|
ImGui.Text("Soft-Target an EventObj..."u8);
|
||||||
|
|
||||||
var sTarget = targetManager.SoftTarget;
|
var sTarget = targetManager.SoftTarget;
|
||||||
if (sTarget is EventObj)
|
if (sTarget is EventObj)
|
||||||
|
|
|
||||||
|
|
@ -25,15 +25,15 @@ internal class ToastSelfTestStep : ISelfTestStep
|
||||||
this.sentToasts = true;
|
this.sentToasts = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Text("Did you see a normal toast, a quest toast and an error toast?");
|
ImGui.Text("Did you see a normal toast, a quest toast and an error toast?"u8);
|
||||||
|
|
||||||
if (ImGui.Button("Yes"))
|
if (ImGui.Button("Yes"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Pass;
|
return SelfTestStepResult.Pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
if (ImGui.Button("No"))
|
if (ImGui.Button("No"u8))
|
||||||
{
|
{
|
||||||
return SelfTestStepResult.Fail;
|
return SelfTestStepResult.Fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue