Allow resetting text mod filter with right-click on arrow.

This commit is contained in:
Ottermandias 2023-06-02 15:58:53 +02:00
parent 3dc1553429
commit 768016a897
2 changed files with 12 additions and 9 deletions

@ -1 +1 @@
Subproject commit 7d0fcdbadf70f59675e8666de014e5dcb67da35d
Subproject commit dc4ad8a5fd0347642d3fdae5f2dc17a7fbfacaa1

View file

@ -652,12 +652,13 @@ public sealed class ModFileSystemSelector : FileSystemSelector<Mod, ModFileSyste
return false;
}
private void DrawFilterCombo(ref bool everything)
private bool DrawFilterCombo(ref bool everything)
{
using var combo = ImRaii.Combo("##filterCombo", string.Empty,
ImGuiComboFlags.NoPreview | ImGuiComboFlags.PopupAlignLeft | ImGuiComboFlags.HeightLargest);
ImGuiComboFlags.NoPreview | ImGuiComboFlags.PopupAlignLeft | ImGuiComboFlags.HeightLargest);
var ret = ImGui.IsItemClicked(ImGuiMouseButton.Right);
if (!combo)
return;
return ret;
using var style = ImRaii.PushStyle(ImGuiStyleVar.ItemSpacing,
ImGui.GetStyle().ItemSpacing with { Y = 3 * UiHelpers.Scale });
@ -679,10 +680,12 @@ public sealed class ModFileSystemSelector : FileSystemSelector<Mod, ModFileSyste
SetFilterDirty();
}
}
return ret;
}
/// <summary> Add the state filter combo-button to the right of the filter box. </summary>
protected override float CustomFilters(float width)
protected override (float, bool) CustomFilters(float width)
{
var pos = ImGui.GetCursorPos();
var remainingWidth = width - ImGui.GetFrameHeight();
@ -693,17 +696,17 @@ public sealed class ModFileSystemSelector : FileSystemSelector<Mod, ModFileSyste
ImGui.SetCursorPos(comboPos);
// Draw combo button
using var color = ImRaii.PushColor(ImGuiCol.Button, Colors.FilterActive, !everything);
DrawFilterCombo(ref everything);
var rightClick = DrawFilterCombo(ref everything);
_tutorial.OpenTutorial(BasicTutorialSteps.ModFilters);
if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
if (rightClick)
{
_stateFilter = ModFilterExtensions.UnfilteredStateMods;
_stateFilter = ModFilterExtensions.UnfilteredStateMods;
SetFilterDirty();
}
ImGuiUtil.HoverTooltip("Filter mods for their activation status.\nRight-Click to clear all filters.");
ImGui.SetCursorPos(pos);
return remainingWidth;
return (remainingWidth, rightClick);
}
#endregion