chore: add raii, tables code from OtterGui into new Dalamud.Interface assembly

This commit is contained in:
goat 2023-03-06 20:52:21 +01:00
parent e0d4e60aad
commit 6bf1376515
No known key found for this signature in database
GPG key ID: 49E2AA8C6A76498B
22 changed files with 1356 additions and 0 deletions

View file

@ -0,0 +1,34 @@
using ImGuiNET;
namespace Dalamud.Interface.Table;
public class Column<TItem>
{
public string Label = string.Empty;
public ImGuiTableColumnFlags Flags = ImGuiTableColumnFlags.NoResize;
public virtual float Width
=> -1f;
public string FilterLabel
=> $"##{this.Label}Filter";
public virtual bool DrawFilter()
{
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted(this.Label);
return false;
}
public virtual bool FilterFunc(TItem item)
=> true;
public virtual int Compare(TItem lhs, TItem rhs)
=> 0;
public virtual void DrawColumn(TItem item, int idx)
{ }
public int CompareInv(TItem lhs, TItem rhs)
=> this.Compare(rhs, lhs);
}