feat(style): put the chat log on the same floor as the settings
The motes were too subtle to register, so: seventy instead of twenty-four, wider radius range, and each one is a soft halo with a brighter core rather than a flat disc. At this size a single filled circle reads as a speck of dirt on the screen; the ring around it is what makes it look lit. The backdrop moves into its own component and the chat log gets it too. Two windows in one plugin looking like two separate products was half the reason the settings window read as untouched -- the chat had been reworked in v1.10.0 and the settings had not, and no amount of work inside one window closes that gap. No accent wash over the message list. It works on a settings pane, where the top of the surface is a heading; over a chat log the oldest visible messages would sit in a tinted band and read as highlighted. Registered transient rather than singleton, so two surfaces on screen own separate mote sets instead of sharing one drift pattern -- which would be visible the moment a popout sits next to the main window. MainWindow's constructor changed, so this needs the DI smoke pass.
This commit is contained in:
@@ -31,6 +31,7 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
private readonly Components.StatusBar _status;
|
||||
private readonly Lender<PayloadHandler> _handlerLender;
|
||||
private readonly ChannelPopoutPool _pool;
|
||||
private readonly Ui.StyleEngine.SurfaceBackdrop _backdrop;
|
||||
|
||||
private Tab? _activeTab;
|
||||
|
||||
@@ -53,7 +54,8 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
Components.InputBar input,
|
||||
Components.StatusBar status,
|
||||
Lender<PayloadHandler> handlerLender,
|
||||
ChannelPopoutPool pool
|
||||
ChannelPopoutPool pool,
|
||||
Ui.StyleEngine.SurfaceBackdrop backdrop
|
||||
)
|
||||
: base($"{Plugin.PluginName}###hellion-main")
|
||||
{
|
||||
@@ -65,6 +67,7 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
_status = status;
|
||||
_handlerLender = handlerLender;
|
||||
_pool = pool;
|
||||
_backdrop = backdrop;
|
||||
|
||||
Size = new Vector2(DefaultWidth, DefaultHeight);
|
||||
SizeCondition = ImGuiCond.FirstUseEver;
|
||||
@@ -380,8 +383,16 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
|
||||
)
|
||||
)
|
||||
{
|
||||
if (messages.Success && _activeTab is not null)
|
||||
_messages.Draw(_activeTab);
|
||||
if (messages.Success)
|
||||
{
|
||||
// No accent wash here. It works on a settings pane, where the
|
||||
// top of the surface is a heading; over a chat log the first
|
||||
// messages would sit in a tinted band and read as highlighted.
|
||||
_backdrop.Draw(accentWashHeight: 0f);
|
||||
|
||||
if (_activeTab is not null)
|
||||
_messages.Draw(_activeTab);
|
||||
}
|
||||
}
|
||||
|
||||
// Inside-mode inline render: measure first so PreviewHeight is fresh
|
||||
|
||||
Reference in New Issue
Block a user