diff --git a/ChatTwo/Plugin.cs b/ChatTwo/Plugin.cs index eb3f7fe..7ce3c9a 100755 --- a/ChatTwo/Plugin.cs +++ b/ChatTwo/Plugin.cs @@ -49,6 +49,7 @@ public sealed class Plugin : IDalamudPlugin public ChatLogWindow ChatLogWindow { get; } public CommandHelpWindow CommandHelpWindow { get; } public SeStringDebugger SeStringDebugger { get; } + public DebuggerWindow DebuggerWindow { get; } internal LegacyMessageImporterWindow LegacyMessageImporterWindow { get; } internal Configuration Config { get; } @@ -94,11 +95,13 @@ public sealed class Plugin : IDalamudPlugin SettingsWindow = new SettingsWindow(this); CommandHelpWindow = new CommandHelpWindow(ChatLogWindow); SeStringDebugger = new SeStringDebugger(this); + DebuggerWindow = new DebuggerWindow(this); WindowSystem.AddWindow(ChatLogWindow); WindowSystem.AddWindow(SettingsWindow); WindowSystem.AddWindow(CommandHelpWindow); WindowSystem.AddWindow(SeStringDebugger); + WindowSystem.AddWindow(DebuggerWindow); FontManager.BuildFonts(); Interface.UiBuilder.DisableCutsceneUiHide = true; diff --git a/ChatTwo/Ui/ChatLogWindow.cs b/ChatTwo/Ui/ChatLogWindow.cs index 570a8db..41e7fcc 100644 --- a/ChatTwo/Ui/ChatLogWindow.cs +++ b/ChatTwo/Ui/ChatLogWindow.cs @@ -66,6 +66,8 @@ public sealed class ChatLogWindow : Window private int AutoCompleteSelection; private bool AutoCompleteShouldScroll; + public int CursorPos; + public Vector2 LastWindowPos { get; private set; } = Vector2.Zero; public Vector2 LastWindowSize { get; private set; } = Vector2.Zero; @@ -1341,6 +1343,8 @@ public sealed class ChatLogWindow : Window } var ptr = new ImGuiInputTextCallbackDataPtr(data); + + CursorPos = ptr.CursorPos; if (data->EventFlag == ImGuiInputTextFlags.CallbackCompletion) { if (ptr.CursorPos == 0) diff --git a/ChatTwo/Ui/Debugger.cs b/ChatTwo/Ui/Debugger.cs new file mode 100644 index 0000000..d193dac --- /dev/null +++ b/ChatTwo/Ui/Debugger.cs @@ -0,0 +1,44 @@ +using System.Numerics; +using Dalamud.Interface.Windowing; +using ImGuiNET; + +namespace ChatTwo.Ui; + +public class DebuggerWindow : Window +{ + private readonly Plugin Plugin; + private readonly ChatLogWindow ChatLogWindow; + + public DebuggerWindow(Plugin plugin) : base($"Debugger###chat2-debugger") + { + Plugin = plugin; + ChatLogWindow = plugin.ChatLogWindow; + + SizeConstraints = new WindowSizeConstraints + { + MinimumSize = new Vector2(475, 600), + MaximumSize = new Vector2(float.MaxValue, float.MaxValue) + }; + + RespectCloseHotkey = false; + DisableWindowSounds = true; + + #if DEBUG + Plugin.Commands.Register("/chat2Debugger").Execute += Toggle; + #endif + } + + public void Dispose() + { + #if DEBUG + Plugin.Commands.Register("/chat2Debugger").Execute -= Toggle; + #endif + } + + private void Toggle(string _, string __) => Toggle(); + + public override void Draw() + { + ImGui.TextUnformatted($"Current Cursor Pos: {ChatLogWindow.CursorPos}"); + } +} diff --git a/ChatTwo/Ui/SeStringDebugger.cs b/ChatTwo/Ui/SeStringDebugger.cs index 1c25afa..3d28426 100644 --- a/ChatTwo/Ui/SeStringDebugger.cs +++ b/ChatTwo/Ui/SeStringDebugger.cs @@ -27,14 +27,14 @@ public class SeStringDebugger : Window DisableWindowSounds = true; #if DEBUG - Plugin.Commands.Register("/chat2Debugger").Execute += Toggle; + Plugin.Commands.Register("/chat2SeString").Execute += Toggle; #endif } public void Dispose() { #if DEBUG - Plugin.Commands.Register("/chat2Debugger").Execute -= Toggle; + Plugin.Commands.Register("/chat2SeString").Execute -= Toggle; #endif }