using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GtaVUsersInfo.Sources { [Serializable] public class WindowParameters { public int width; public int height; public int leftPos; public int rightPos; public bool isFullScreen; public string? prevFile; public WindowParameters() { } public WindowParameters(Size window, Size pos, bool isfull) { width = window.Width; height = window.Height; leftPos = pos.Width; rightPos = pos.Height; isFullScreen = isfull; } public WindowParameters(Size window, Size pos, bool isfull, string file) { width = window.Width; height = window.Height; leftPos = pos.Width; rightPos = pos.Height; isFullScreen = isfull; prevFile = file; } public static void SaveWindowParameters(WindowParameters fontSettings) { string json = JsonConvert.SerializeObject(fontSettings, Formatting.Indented); if (!Directory.Exists(Path.GetDirectoryName(Resources.windowParametersJsonPath))) { Directory.CreateDirectory(Path.GetDirectoryName(Resources.windowParametersJsonPath)); } File.WriteAllText(Resources.windowParametersJsonPath, json); } public static WindowParameters LoadWindowParameters() { try { string json = File.ReadAllText(Resources.windowParametersJsonPath); return JsonConvert.DeserializeObject(json); } catch (FileNotFoundException) { Console.WriteLine($"Файл с параметрами окна не найден: {Resources.windowParametersJsonPath}"); return null; } catch (JsonException ex) { Console.WriteLine($"Ошибка при десериализации JSON параметрами окна: {ex.Message}"); return null; } catch (Exception ex) { Console.WriteLine($"Произошла неожиданная ошибка при открытии файла с параметрами окна: {ex.Message}"); return null; } } } }