feat: add command help
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
using System.Numerics;
|
||||
using ChatTwo.Util;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Utility;
|
||||
using ImGuiNET;
|
||||
using Lumina.Excel.GeneratedSheets;
|
||||
|
||||
namespace ChatTwo.Ui;
|
||||
|
||||
internal class CommandHelp {
|
||||
private ChatLog Log { get; }
|
||||
private TextCommand Command { get; }
|
||||
|
||||
internal CommandHelp(ChatLog log, TextCommand command) {
|
||||
this.Log = log;
|
||||
this.Command = command;
|
||||
}
|
||||
|
||||
internal void Draw() {
|
||||
var width = 350 * ImGuiHelpers.GlobalScale;
|
||||
|
||||
var pos = this.Log.LastWindowPos;
|
||||
switch (this.Log.Ui.Plugin.Config.CommandHelpSide) {
|
||||
case CommandHelpSide.Right:
|
||||
pos.X += this.Log.LastWindowSize.X;
|
||||
break;
|
||||
case CommandHelpSide.Left:
|
||||
pos.X -= width;
|
||||
break;
|
||||
case CommandHelpSide.None:
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui.SetNextWindowPos(pos);
|
||||
|
||||
ImGui.SetNextWindowSizeConstraints(
|
||||
new Vector2(width, 0),
|
||||
new Vector2(width, this.Log.LastWindowSize.Y)
|
||||
);
|
||||
|
||||
const ImGuiWindowFlags flags = ImGuiWindowFlags.NoSavedSettings
|
||||
| ImGuiWindowFlags.NoTitleBar
|
||||
| ImGuiWindowFlags.NoMove
|
||||
| ImGuiWindowFlags.NoResize
|
||||
| ImGuiWindowFlags.NoFocusOnAppearing
|
||||
| ImGuiWindowFlags.AlwaysAutoResize;
|
||||
if (!ImGui.Begin($"command help {this.Command.RowId}", flags)) {
|
||||
ImGui.End();
|
||||
return;
|
||||
}
|
||||
|
||||
this.Log.DrawChunks(ChunkUtil.ToChunks(this.Command.Description.ToDalamudString(), null).ToList());
|
||||
|
||||
ImGui.End();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user