diff --git a/imgui/Dalamud.Bindings.ImGui/Custom/ImGui.InputScalar.cs b/imgui/Dalamud.Bindings.ImGui/Custom/ImGui.InputScalar.cs index 1f8bef6ed..390000ca9 100644 --- a/imgui/Dalamud.Bindings.ImGui/Custom/ImGui.InputScalar.cs +++ b/imgui/Dalamud.Bindings.ImGui/Custom/ImGui.InputScalar.cs @@ -307,4 +307,60 @@ public static unsafe partial class ImGui return res; } } + + public static bool InputScalar( + ImU8String label, scoped ref T data, + scoped in T step, scoped in T stepFast, + ImU8String format = default, + ImGuiInputTextFlags flags = ImGuiInputTextFlags.None) + where T : unmanaged, IBinaryNumber + { + fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference()) + fixed (byte* formatPtr = &format.GetPinnableNullTerminatedReference()) + fixed (T* dataPtr = &data) + fixed (T* stepPtr = &step) + fixed (T* stepFastPtr = &stepFast) + { + var res = ImGuiNative.InputScalar( + labelPtr, + GetImGuiDataType(), + dataPtr, + stepPtr, + stepFastPtr, + formatPtr, + flags) != 0; + label.Dispose(); + format.Dispose(); + return res; + } + } + + public static bool InputScalar( + ImU8String label, Span data, + scoped in T step, scoped in T stepFast, + ImU8String format = default, + ImGuiInputTextFlags flags = ImGuiInputTextFlags.None) + where T : unmanaged, INumber, IBinaryNumber + { + fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference()) + fixed (byte* formatPtr = &format.GetPinnableNullTerminatedReference()) + fixed (T* dataPtr = data) + fixed (T* stepPtr = &step) + fixed (T* stepFastPtr = &stepFast) + { + var res = ImGuiNative.InputScalarN( + labelPtr, + GetImGuiDataType(), + dataPtr, + data.Length, + stepPtr, + stepFastPtr, + formatPtr, + flags) != 0; + label.Dispose(); + format.Dispose(); + return res; + } + } + }