The legacy ChatLogWindow.cs and its tightly coupled neighbours are gone: PayloadHandler, Popout, ChatInputBar, AutoCompleteInfo, AutoTellTabTint, the three tab-icon helpers, the old Ui/StatusBar and Ui/SymbolPicker behind the components-layer replacements, HellionStyle + helpers, the CompactInputSubmitter test mirror and the QuickPickerSelfTestStep. The new component layer (MainWindow + the five components + GlobalStyleScope) now drives the whole chat surface. InputPreview, CommandHelpWindow and Debugger lose their ChatLogWindow backref. The first two are skeleton windows for now — DrawConditions always returns false until the new chat layer exposes equivalent state. Debugger keeps the current-tab and vanilla-chat blocks; the payload counters are explicitly marked offline. DbViewer renders Sender/Content columns as plain TextValue strings instead of the removed DrawChunks. GameFunctions.Chat and GameFunctions.KeybindManager keep the hook plumbing intact but mark every ChatLogWindow.Activated / ChangeTabDelta / TellSpecial site as offline so the FFXIV-side integration still compiles and runs without an Activated entry point. TypingIpc.BuildState reports the IPC state as not-typing / not-focused until the new chat layer surfaces real focus and buffer state again. Plugin.cs Draw uses StyleEngine.GlobalStyleScope.Push for the per-frame theme push and stops calling BeginFrame / FinalizeFrame / HideStateCheck / DefaultText through the dead window. ImGuiUtil drops PostPayload + WrapText + the surrounding word-wrap pipeline. PluginHostFactory and PluginLifecycle drop the legacy DI singletons and AddWindow entries. Build is clean and csharpier is clean across the trimmed 131-file tree.
36 lines
1.0 KiB
C#
36 lines
1.0 KiB
C#
using Dalamud.Bindings.ImGui;
|
|
using Dalamud.Interface.Windowing;
|
|
|
|
namespace HellionChat.Ui;
|
|
|
|
// Pre-send chunk preview is offline while the chat input pipeline is
|
|
// rebuilt. The window stays in the system so the DI graph keeps a single
|
|
// shape across cycles, but DrawConditions always returns false until the
|
|
// new preview lands on top of the components layer.
|
|
public class InputPreview : Window
|
|
{
|
|
private readonly Plugin _plugin;
|
|
|
|
internal InputPreview(Plugin plugin)
|
|
: base("##chat2-inputpreview")
|
|
{
|
|
_plugin = plugin;
|
|
Flags =
|
|
ImGuiWindowFlags.NoSavedSettings
|
|
| ImGuiWindowFlags.NoTitleBar
|
|
| ImGuiWindowFlags.NoMove
|
|
| ImGuiWindowFlags.NoResize
|
|
| ImGuiWindowFlags.NoFocusOnAppearing
|
|
| ImGuiWindowFlags.NoScrollbar;
|
|
RespectCloseHotkey = false;
|
|
DisableWindowSounds = true;
|
|
IsOpen = false;
|
|
}
|
|
|
|
public void Dispose() { }
|
|
|
|
public override bool DrawConditions() => false;
|
|
|
|
public override void Draw() { }
|
|
}
|