PalacePal/Pal.Client/Windows/AgreementWindow.cs

105 lines
3.1 KiB
C#
Raw Normal View History

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