f37369cdda
Co-authored-by: Cursor <cursoragent@cursor.com>
78 lines
2.0 KiB
C#
78 lines
2.0 KiB
C#
using Dalamud.Interface.Windowing;
|
|
using HSUI.Helpers;
|
|
using Dalamud.Bindings.ImGui;
|
|
using System;
|
|
using System.Numerics;
|
|
|
|
namespace HSUI.Config.Windows
|
|
{
|
|
public class ChangelogWindow : Window
|
|
{
|
|
public string Changelog { get; set; }
|
|
private bool _needsToSetSize = true;
|
|
|
|
public bool AutoClose = false;
|
|
private double _openTime = -1;
|
|
|
|
private bool _popColors = false;
|
|
|
|
public ChangelogWindow(string name, string changelog) : base(name)
|
|
{
|
|
Changelog = changelog;
|
|
}
|
|
|
|
public override void PreDraw()
|
|
{
|
|
if (ConfigurationManager.Instance.OverrideDalamudStyle)
|
|
{
|
|
ImGui.PushStyleColor(ImGuiCol.WindowBg, new Vector4(10f / 255f, 10f / 255f, 10f / 255f, 0.95f));
|
|
_popColors = true;
|
|
}
|
|
|
|
if (_needsToSetSize)
|
|
{
|
|
float height = ImGui.CalcTextSize(Changelog).Y + 100;
|
|
ImGui.SetNextWindowSize(new Vector2(500, Math.Min(height, 500)), ImGuiCond.FirstUseEver);
|
|
_needsToSetSize = false;
|
|
}
|
|
}
|
|
|
|
public override void Draw()
|
|
{
|
|
Vector2 size = ImGui.GetWindowSize();
|
|
ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + size.X - 24);
|
|
ImGui.TextWrapped(Changelog);
|
|
|
|
if (AutoClose &&
|
|
_openTime > 0 &&
|
|
ImGui.GetTime() - _openTime > 10)
|
|
{
|
|
IsOpen = false;
|
|
}
|
|
}
|
|
|
|
public override void PostDraw()
|
|
{
|
|
if (_popColors)
|
|
{
|
|
ImGui.PopStyleColor();
|
|
_popColors = false;
|
|
}
|
|
}
|
|
|
|
public override void OnOpen()
|
|
{
|
|
_openTime = ImGui.GetTime();
|
|
}
|
|
|
|
public override void OnClose()
|
|
{
|
|
if (AutoClose && InputsHelper.Instance != null)
|
|
{
|
|
AutoClose = false;
|
|
Plugin.LoadTime = ImGui.GetTime() - InputsHelper.InitializationDelay;
|
|
}
|
|
}
|
|
}
|
|
}
|