66 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Dalamud.Interface.Utility;
 | |
| using Dalamud.Interface.Utility.Raii;
 | |
| using ImGuiNET;
 | |
| using MareSynchronos.Services.ServerConfiguration;
 | |
| using System.Numerics;
 | |
| 
 | |
| namespace MareSynchronos.UI.Components.Popup;
 | |
| 
 | |
| public class CensusPopupHandler : IPopupHandler
 | |
| {
 | |
|     private readonly ServerConfigurationManager _serverConfigurationManager;
 | |
|     private readonly UiSharedService _uiSharedService;
 | |
| 
 | |
|     public CensusPopupHandler(ServerConfigurationManager serverConfigurationManager, UiSharedService uiSharedService)
 | |
|     {
 | |
|         _serverConfigurationManager = serverConfigurationManager;
 | |
|         _uiSharedService = uiSharedService;
 | |
|     }
 | |
| 
 | |
|     private Vector2 _size = new(600, 450);
 | |
|     public Vector2 PopupSize => _size;
 | |
| 
 | |
|     public bool ShowClose => false;
 | |
| 
 | |
|     public void DrawContent()
 | |
|     {
 | |
|         var start = 0f;
 | |
|         using (ImRaii.PushFont(_uiSharedService.UidFont))
 | |
|         {
 | |
|             start = ImGui.GetCursorPosY() - ImGui.CalcTextSize("Mare Census Data").Y;
 | |
|             UiSharedService.TextWrapped("Mare Census Participation");
 | |
|         }
 | |
|         ImGuiHelpers.ScaledDummy(5f);
 | |
|         UiSharedService.TextWrapped("If you are seeing this popup you are updating from a Mare version that did not collect census data. Please read the following carefully.");
 | |
|         ImGui.Separator();
 | |
|         UiSharedService.TextWrapped("Mare Census is a data collecting service that can be used for statistical purposes. " +
 | |
|             "All data collected through Mare Census is temporary and will be stored associated with your UID on the connected service as long as you are connected. " +
 | |
|             "The data cannot be used for long term tracking of individuals.");
 | |
|         UiSharedService.TextWrapped("If enabled, Mare Census will collect following data:" + Environment.NewLine
 | |
|             + "- Currently connected World" + Environment.NewLine
 | |
|             + "- Current Gender (reflecting Glamourer changes)" + Environment.NewLine
 | |
|             + "- Current Race (reflecting Glamourer changes)" + Environment.NewLine
 | |
|             + "- Current Clan (i.e. Seeker of the Sun, Keeper of the Moon, etc., reflecting Glamourer changes)");
 | |
|         UiSharedService.TextWrapped("To consent to collecting census data press the appropriate button below.");
 | |
|         UiSharedService.TextWrapped("This setting can be changed anytime in the Mare Settings.");
 | |
|         var width = ImGui.GetWindowContentRegionMax().X - ImGui.GetWindowContentRegionMin().X;
 | |
|         var buttonSize = ImGuiHelpers.GetButtonSize("I consent to send my census data");
 | |
|         ImGuiHelpers.ScaledDummy(5f);
 | |
|         if (ImGui.Button("I consent to send my census data", new Vector2(width, buttonSize.Y * 2.5f)))
 | |
|         {
 | |
|             _serverConfigurationManager.SendCensusData = true;
 | |
|             _serverConfigurationManager.ShownCensusPopup = true;
 | |
|             ImGui.CloseCurrentPopup();
 | |
|         }
 | |
|         ImGuiHelpers.ScaledDummy(1f);
 | |
|         if (ImGui.Button("I do not consent to send my census data", new Vector2(width, buttonSize.Y)))
 | |
|         {
 | |
|             _serverConfigurationManager.SendCensusData = false;
 | |
|             _serverConfigurationManager.ShownCensusPopup = true;
 | |
|             ImGui.CloseCurrentPopup();
 | |
|         }
 | |
|         var height = ImGui.GetCursorPosY() - start;
 | |
|         _size = _size with { Y = height };
 | |
|     }
 | |
| }
 | 
