feat(style): a lab window for the input-row decision

Four elements, three variants each, drawn side by side in real ImGui against the
live theme. Reachable with /hellion lab.

The alternative was drawing mockups, and mockups are what sent this cycle wrong
once already -- they predate the settings window learning that structure is
typography and only controls get a fill. A picture also cannot show the part that
matters most here: switching themes switches which variant works.

Everything it draws comes from helpers that were already in DrawListExtensions
and had almost no callers. DrawSlipPolygon and DrawVerticalGradient had one
between them, in SegmentedControl. DrawGlowBorder had none at all.

Temporary, and deliberately not behind DEBUG: the decision happens in the build
Flo runs. It comes out once the variants are picked.
This commit is contained in:
2026-08-19 18:22:34 +02:00
parent 6449a51daa
commit df6296024b
4 changed files with 424 additions and 0 deletions
+10
View File
@@ -112,6 +112,7 @@ public sealed class Plugin : IAsyncDalamudPlugin
#if DEBUG
internal Ui.Windows.WidgetGalleryWindow WidgetGallery { get; private set; } = null!;
#endif
internal Ui.Windows.InputBarLabWindow InputBarLab { get; private set; } = null!;
public FirstRunWizard FirstRunWizard { get; private set; } = null!;
internal DebuggerWindow DebuggerWindow { get; private set; } = null!;
@@ -456,6 +457,7 @@ public sealed class Plugin : IAsyncDalamudPlugin
#if DEBUG
WidgetGallery = _host.Services.GetRequiredService<Ui.Windows.WidgetGalleryWindow>();
#endif
InputBarLab = _host.Services.GetRequiredService<Ui.Windows.InputBarLabWindow>();
DebuggerWindow = _host.Services.GetRequiredService<DebuggerWindow>();
FirstRunWizard = _host.Services.GetRequiredService<FirstRunWizard>();
ChannelPopoutPool = _host.Services.GetRequiredService<Ui.Windows.ChannelPopoutPool>();
@@ -1042,6 +1044,14 @@ public sealed class Plugin : IAsyncDalamudPlugin
WidgetGallery.Toggle();
return;
}
#endif
if (arg.Equals("lab", StringComparison.OrdinalIgnoreCase))
{
InputBarLab.Toggle();
return;
}
#if DEBUG
#endif
if (arg.Equals("reset", StringComparison.OrdinalIgnoreCase))
{