Catalog/MaddoShared/PicSettings.cs
MaddoScientisto 73597689ed Cross-platform: remove System.Drawing deps, add #if WINDOWS
Refactored image creation APIs to use byte[] for logo data instead of System.Drawing.Image, enabling cross-platform support. Wrapped all GDI+/Windows-specific code in #if WINDOWS and updated project files to conditionally include Windows-only dependencies. Defaulted to ImageSharp on non-Windows, and updated UI and settings to reflect platform capabilities. Application now builds and runs on Linux/macOS with Avalonia and ImageSharp, while retaining full Windows functionality.
2026-02-26 19:17:23 +01:00

86 lines
No EOL
3.5 KiB
C#

using System;
using System.Drawing;
using System.IO;
namespace MaddoShared;
public class PicSettings
{
public string DirectorySorgente { get; set; }
public string DirectoryDestinazione { get; set; }
public string TestoFirmaStart { get; set; }
public string TestoFirmaStartV { get; set; }
public DateTime DataPartenza { get; set; }
public string TestoOrario { get; set; }
public int DimStandard { get; set; }
public int DimStandardMiniatura { get; set; }
public bool NomeData { get; set; }
public bool TestoNome { get; set; }
public bool UsaOrarioMiniatura { get; set; }
public bool UsaOrarioTestoApplicare { get; set; }
public bool UsaTempoGaraTestoApplicare { get; set; }
public bool UsaRotazioneAutomatica { get; set; }
public bool UsaForzaJpg { get; set; }
public int LarghezzaSmall { get; set; }
public int AltezzaSmall { get; set; }
public bool CreaMiniature { get; set; }
public bool AggiungiScritteMiniature { get; set; }
public string Suffisso { get; set; }
public string Codice { get; set; }
public int Trasparenza { get; set; }
public string IlFont { get; set; }
public bool Grassetto { get; set; }
public string Posizione { get; set; }
public string Allineamento { get; set; }
public int Margine { get; set; }
public int LogoAltezza { get; set; }
public int LogoLarghezza { get; set; }
public Color FontColoreRGB { get; set; }
public bool LogoAggiungi { get; set; }
// Initialize logo-related strings to safe defaults to avoid null reference issues
public string LogoNomeFile { get; set; } = string.Empty;
public string LogoTrasparenza { get; set; } = "100";
public string LogoMargine { get; set; } = "0";
public string LogoPosizioneH { get; set; }
public string LogoPosizioneV { get; set; }
// Color key transparency: hex color string (e.g. #FFFFFF) and whether to use it for non-PNG logos
public string TransparentColorHex { get; set; } = "#FFFFFF";
public bool UseTransparentColorKey { get; set; } = false;
// Aliases to support automatic mapping from DataModel properties
public string TransparentColor
{
get => TransparentColorHex;
set => TransparentColorHex = value;
}
public bool UseTransparentColor
{
get => UseTransparentColorKey;
set => UseTransparentColorKey = value;
}
public bool FotoGrandeDimOrigina { get; set; }
public int AltezzaBig { get; set; }
public int LarghezzaBig { get; set; }
public DirectoryInfo DestDir { get; set; }
public int DimVert { get; set; }
public int MargVert { get; set; }
public bool TestoMin { get; set; }
public int DimMin { get; set; }
public bool SecretDefault { get; set; }
public bool SecretBig { get; set; }
public bool SecretSmall { get; set; }
public string SecretPathSmall { get; set; }
public string SecretPathBig { get; set; }
public bool AggTempoGaraMin { get; set; }
public bool AggNumTempMin { get; set; }
public long JpegQuality { get; set; }
public long JpegQualityMin { get; set; }
public bool FotoRuotaADestra { get; set; } = false;
public bool FotoRuotaASinistra { get; set; } = false;
public string TempMinText { get; set; } = string.Empty;
public bool OverwriteFiles { get; set; } = false;
// Which image creator to use: "Sharp" for current implementation, "Alternate" for alternate library
public string ImageCreatorProvider { get; set; } = "Sharp";
}