PalacePal/Pal.Client/Windows/AgreementWindow.cs

106 lines
3.4 KiB
C#
Raw Normal View History

2023-02-15 22:17:19 +00:00
using System;
using Dalamud.Interface.Colors;
using Dalamud.Interface.Windowing;
using ECommons;
using ImGuiNET;
using System.Numerics;
2023-02-15 22:17:19 +00:00
using Pal.Client.Configuration;
2023-02-21 13:58:30 +00:00
using Pal.Client.Extensions;
2023-02-10 19:48:14 +00:00
using Pal.Client.Properties;
2022-10-26 18:43:24 +00:00
namespace Pal.Client.Windows
{
2023-02-15 22:17:19 +00:00
internal sealed class AgreementWindow : Window, IDisposable, ILanguageChanged
{
private const string WindowId = "###PalPalaceAgreement";
2023-02-15 22:17:19 +00:00
private readonly WindowSystem _windowSystem;
private readonly ConfigurationManager _configurationManager;
private readonly IPalacePalConfiguration _configuration;
private int _choice;
2023-02-15 22:17:19 +00:00
public AgreementWindow(
WindowSystem windowSystem,
ConfigurationManager configurationManager,
IPalacePalConfiguration configuration)
: base(WindowId)
{
2023-02-15 22:17:19 +00:00
_windowSystem = windowSystem;
_configurationManager = configurationManager;
_configuration = configuration;
2023-02-11 23:41:48 +00:00
LanguageChanged();
Flags = ImGuiWindowFlags.NoCollapse;
Size = new Vector2(500, 500);
SizeCondition = ImGuiCond.FirstUseEver;
PositionCondition = ImGuiCond.FirstUseEver;
Position = new Vector2(310, 310);
SizeConstraints = new WindowSizeConstraints
{
MinimumSize = new Vector2(500, 500),
MaximumSize = new Vector2(2000, 2000),
};
2023-02-15 22:17:19 +00:00
IsOpen = configuration.FirstUse;
_windowSystem.AddWindow(this);
}
2023-02-15 22:17:19 +00:00
public void Dispose()
=> _windowSystem.RemoveWindow(this);
public void LanguageChanged()
=> WindowName = $"{Localization.Palace_Pal}{WindowId}";
public override void OnOpen()
{
_choice = -1;
}
public override void Draw()
{
2023-02-10 19:48:14 +00:00
ImGui.TextWrapped(Localization.Explanation_1);
ImGui.TextWrapped(Localization.Explanation_2);
ImGui.Spacing();
2023-02-10 19:48:14 +00:00
ImGui.TextWrapped(Localization.Explanation_3);
ImGui.TextWrapped(Localization.Explanation_4);
2022-10-26 18:43:24 +00:00
PalImGui.RadioButtonWrapped(Localization.Config_UploadMyDiscoveries_ShowOtherTraps, ref _choice,
(int)EMode.Online);
PalImGui.RadioButtonWrapped(Localization.Config_NeverUploadDiscoveries_ShowMyTraps, ref _choice,
(int)EMode.Offline);
2022-10-26 18:43:24 +00:00
ImGui.Separator();
ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudRed);
ImGui.TextWrapped(Localization.Agreement_Warning1);
ImGui.TextWrapped(Localization.Agreement_Warning2);
ImGui.TextWrapped(Localization.Agreement_Warning3);
ImGui.PopStyleColor();
ImGui.Separator();
if (_choice == -1)
2023-02-10 19:48:14 +00:00
ImGui.TextDisabled(Localization.Agreement_PickOneOption);
ImGui.BeginDisabled(_choice == -1);
2023-02-10 19:48:14 +00:00
if (ImGui.Button(Localization.Agreement_UsingThisOnMyOwnRisk))
{
2023-02-15 22:17:19 +00:00
_configuration.Mode = (EMode)_choice;
_configuration.FirstUse = false;
_configurationManager.Save(_configuration);
IsOpen = false;
}
2023-02-15 22:17:19 +00:00
ImGui.EndDisabled();
ImGui.Separator();
2023-02-10 19:48:14 +00:00
if (ImGui.Button(Localization.Agreement_ViewPluginAndServerSourceCode))
GenericHelpers.ShellStart("https://github.com/carvelli/PalPalace");
}
}
}