mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-31 21:03:43 +01:00
95 lines
3.9 KiB
C#
95 lines
3.9 KiB
C#
using System;
|
|
using System.Numerics;
|
|
|
|
using CheapLoc;
|
|
using Dalamud.Configuration.Internal;
|
|
using Dalamud.Interface.Windowing;
|
|
using ImGuiNET;
|
|
using Serilog;
|
|
|
|
namespace Dalamud.Interface.Internal.Windows
|
|
{
|
|
/// <summary>
|
|
/// For major updates, an in-game Changelog window.
|
|
/// </summary>
|
|
internal sealed class FallbackFontNoticeWindow : Window, IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Initializes a new instance of the <see cref="FallbackFontNoticeWindow"/> class.
|
|
/// </summary>
|
|
public FallbackFontNoticeWindow()
|
|
: base(Title, ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus)
|
|
{
|
|
this.Namespace = "FallbackFontNoticeWindow";
|
|
this.RespectCloseHotkey = false;
|
|
|
|
this.Size = new Vector2(885, 463);
|
|
this.SizeCondition = ImGuiCond.Appearing;
|
|
|
|
var interfaceManager = Service<InterfaceManager>.Get();
|
|
var dalamud = Service<Dalamud>.Get();
|
|
|
|
Service<InterfaceManager>.Get().FallbackFontModeChange += this.OnFallbackFontModeChange;
|
|
}
|
|
|
|
private static string Title => Loc.Localize("FallbackFontNoticeWindowTitle", "Fallback Font Mode Active");
|
|
|
|
/// <inheritdoc/>
|
|
public override void Draw()
|
|
{
|
|
ImGui.Text(Title);
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
|
|
ImGui.Text(Loc.Localize("FallbackFontNoticeWindowBody", "The text used by Dalamud and plugins has been made blurry in order to prevent possible crash."));
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
|
|
ImGui.Text(Loc.Localize("FallbackFontNoticeWindowSolution1", "* You may attempt to increase the limits on text quality. This may result in a crash."));
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
ImGui.SameLine();
|
|
if (ImGui.Button(Loc.Localize("FallbackFontNoticeWindowOpenDalamudSettings", "Open Dalamud Settings")))
|
|
Service<DalamudInterface>.Get().OpenSettings();
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
ImGui.SameLine();
|
|
ImGui.Text(string.Format(
|
|
Loc.Localize(
|
|
"FallbackFontNoticeWindowSolution1Instructions",
|
|
"In \"{0}\" tab, choose a better option for \"{1}\"."),
|
|
Loc.Localize("DalamudSettingsVisual", "Look & Feel"),
|
|
Loc.Localize("DalamudSettingsFontResolutionLevel", "Font resolution level")));
|
|
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
|
|
ImGui.Text(Loc.Localize("FallbackFontNoticeWindowSolution2", "* You may disable custom fonts, or make fonts smaller, from individual plugin settings."));
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
ImGui.SameLine();
|
|
if (ImGui.Button(Loc.Localize("FallbackFontNoticeWindowOpenDalamudPlugins", "Open Plugin Installer")))
|
|
Service<DalamudInterface>.Get().OpenPluginInstaller();
|
|
|
|
ImGuiHelpers.ScaledDummy(10);
|
|
|
|
if (ImGui.Button(Loc.Localize("FallbackFontNoticeWindowDoNotShowAgain", "Do not show again")))
|
|
{
|
|
this.IsOpen = false;
|
|
Service<DalamudConfiguration>.Get().DisableFontFallbackNotice = true;
|
|
Service<DalamudConfiguration>.Get().Save();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Dispose this window.
|
|
/// </summary>
|
|
public void Dispose()
|
|
{
|
|
Service<InterfaceManager>.Get().FallbackFontModeChange -= this.OnFallbackFontModeChange;
|
|
}
|
|
|
|
private void OnFallbackFontModeChange(bool mode)
|
|
{
|
|
Log.Verbose("[{0}] OnFallbackFontModeChange called: {1} (disable={2})", this.Namespace, mode, Service<DalamudConfiguration>.Get().DisableFontFallbackNotice);
|
|
if (!mode)
|
|
this.IsOpen = false;
|
|
else if (!Service<DalamudConfiguration>.Get().DisableFontFallbackNotice)
|
|
this.IsOpen = true;
|
|
}
|
|
}
|
|
}
|