Auto-Formatting and some imgui layouting.

This commit is contained in:
Ottermandias 2023-11-29 18:00:30 +01:00
parent e0749bb791
commit e497414cb7

View file

@ -11,9 +11,7 @@ namespace Penumbra.UI.AdvancedWindow;
public class ResourceTreeViewer public class ResourceTreeViewer
{ {
private const ResourceTreeFactory.Flags ResourceTreeFactoryFlags = private const ResourceTreeFactory.Flags ResourceTreeFactoryFlags =
ResourceTreeFactory.Flags.RedactExternalPaths | ResourceTreeFactory.Flags.RedactExternalPaths | ResourceTreeFactory.Flags.WithUiData | ResourceTreeFactory.Flags.WithOwnership;
ResourceTreeFactory.Flags.WithUiData |
ResourceTreeFactory.Flags.WithOwnership;
private readonly Configuration _config; private readonly Configuration _config;
private readonly ResourceTreeFactory _treeFactory; private readonly ResourceTreeFactory _treeFactory;
@ -83,6 +81,7 @@ public class ResourceTreeViewer
ImGuiUtil.HoverTooltip( ImGuiUtil.HoverTooltip(
$"Object Index: {tree.GameObjectIndex}\nObject Address: 0x{tree.GameObjectAddress:X16}\nDraw Object Address: 0x{tree.DrawObjectAddress:X16}"); $"Object Index: {tree.GameObjectIndex}\nObject Address: 0x{tree.GameObjectAddress:X16}\nDraw Object Address: 0x{tree.DrawObjectAddress:X16}");
} }
if (!isOpen) if (!isOpen)
continue; continue;
} }
@ -117,29 +116,29 @@ public class ResourceTreeViewer
if (ImGui.Button("Refresh Character List")) if (ImGui.Button("Refresh Character List"))
_task = RefreshCharacterList(); _task = RefreshCharacterList();
ImGui.SameLine(); var checkSpacing = ImGui.GetStyle().ItemInnerSpacing.X;
ImGui.Dummy(ImGuiHelpers.ScaledVector2(20, 0)); var checkPadding = 10 * ImGuiHelpers.GlobalScale + ImGui.GetStyle().ItemSpacing.X;
ImGui.SameLine(0, checkPadding);
using (var id = ImRaii.PushId("TreeCategoryFilter")) using (var id = ImRaii.PushId("TreeCategoryFilter"))
{ {
var spacing = ImGui.GetStyle().ItemInnerSpacing.X;
var categoryFilter = (uint)_categoryFilter; var categoryFilter = (uint)_categoryFilter;
foreach (var category in Enum.GetValues<TreeCategory>()) foreach (var category in Enum.GetValues<TreeCategory>())
{ {
ImGui.SameLine(0.0f, spacing);
using var c = ImRaii.PushColor(ImGuiCol.CheckMark, CategoryColor(category).Value()); using var c = ImRaii.PushColor(ImGuiCol.CheckMark, CategoryColor(category).Value());
ImGui.CheckboxFlags($"##{category}", ref categoryFilter, (uint)category); ImGui.CheckboxFlags($"##{category}", ref categoryFilter, (uint)category);
ImGuiUtil.HoverTooltip(CategoryFilterDescription(category)); ImGuiUtil.HoverTooltip(CategoryFilterDescription(category));
ImGui.SameLine(0.0f, checkSpacing);
} }
_categoryFilter = (TreeCategory)categoryFilter; _categoryFilter = (TreeCategory)categoryFilter;
} }
ImGui.SameLine(); ImGui.SameLine(0, checkPadding);
ImGui.Dummy(ImGuiHelpers.ScaledVector2(20, 0));
ImGui.SameLine();
_changedItemDrawer.DrawTypeFilter(ref _typeFilter, -yOffset); _changedItemDrawer.DrawTypeFilter(ref _typeFilter, -yOffset);
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
ImGui.InputTextWithHint("##TreeNameFilter", "Filter by Character/Entity Name...", ref _nameFilter, 128); ImGui.InputTextWithHint("##TreeNameFilter", "Filter by Character/Entity Name...", ref _nameFilter, 128);
} }
@ -161,7 +160,6 @@ public class ResourceTreeViewer
private void DrawNodes(IEnumerable<ResourceNode> resourceNodes, int level, nint pathHash) private void DrawNodes(IEnumerable<ResourceNode> resourceNodes, int level, nint pathHash)
{ {
var debugMode = _config.DebugMode; var debugMode = _config.DebugMode;
var frameHeight = ImGui.GetFrameHeight(); var frameHeight = ImGui.GetFrameHeight();
var cellHeight = _actionCapacity > 0 ? frameHeight : 0.0f; var cellHeight = _actionCapacity > 0 ? frameHeight : 0.0f;
@ -175,6 +173,7 @@ public class ResourceTreeViewer
return NodeVisibility.Visible; return NodeVisibility.Visible;
if ((_typeFilter & node.DescendentIcons) != 0) if ((_typeFilter & node.DescendentIcons) != 0)
return NodeVisibility.DescendentsOnly; return NodeVisibility.DescendentsOnly;
return NodeVisibility.Hidden; return NodeVisibility.Hidden;
} }
@ -214,6 +213,7 @@ public class ResourceTreeViewer
_unfolded.Add(nodePathHash); _unfolded.Add(nodePathHash);
unfolded = true; unfolded = true;
} }
ImGui.Dummy(new Vector2(ImGui.GetFrameHeight())); ImGui.Dummy(new Vector2(ImGui.GetFrameHeight()));
ImGui.SameLine(0f, ImGui.GetStyle().ItemInnerSpacing.X); ImGui.SameLine(0f, ImGui.GetStyle().ItemInnerSpacing.X);
} }