namespace GMLL00ImportadorXsd.Presentacion.Configuracion
{
    using System.Configuration;
    using System.Drawing;
    using System.Globalization;
    using Infragistics.Win;

    internal static class Pantalla
    {
        public static bool ConfiguracionActiva
        {
            get
            {
                return bool.Parse(ConfigurationManager.AppSettings["Pantalla.ConfiguracionActiva"]);
            }
        }

        public static string NombreFicheroImagenFondoDifuminada
        {
            get
            {
                return ConfigurationManager.AppSettings["Pantalla.NombreFicheroImagenFondoDifuminada"];
            }
        }

        public static string NombreFicheroImagenFondoInicial
        {
            get
            {
                return ConfigurationManager.AppSettings["Pantalla.NombreFicheroImagenFondoInicial"];
            }
        }

        public static Degradado Degradado
        {
            get
            {
                return new Degradado
                {
                    Angulo = float.Parse(ConfigurationManager.AppSettings["Pantalla.Degradado.Angulo"], CultureInfo.InvariantCulture),
                    ColorFinal = Color.FromName(ConfigurationManager.AppSettings["Pantalla.Degradado.ColorFinal"]),
                    ColorInicial = Color.FromName(ConfigurationManager.AppSettings["Pantalla.Degradado.ColorInicial"])
                };
            }
        }

        public static Color VentanaColorFondo
        {
            get
            {
                var rgb = ConfigurationManager.AppSettings["Pantalla.Ventana.ColorFondo"].Split(new[] { ';' });
                return Color.FromArgb(int.Parse(rgb[0], CultureInfo.InvariantCulture), int.Parse(rgb[1],
                    CultureInfo.InvariantCulture), int.Parse(rgb[2], CultureInfo.InvariantCulture));
            }
        }

        public static Color VentanaBarraTituloColorTexto
        {
            get
            {
                return Color.FromName(ConfigurationManager.AppSettings["Pantalla.Ventana.BarraTitulo.ColorTexto"]);
            }
        }

        public static Color VentanaBarraTituloDegradadoColorFinal
        {
            get
            {
                return Color.FromName(ConfigurationManager.AppSettings["Pantalla.Ventana.BarraTitulo.Degradado.ColorFinal"]);
            }
        }

        public static Color VentanaBarraTituloDegradadoColorInicial
        {
            get
            {
                return Color.FromName(ConfigurationManager.AppSettings["Pantalla.Ventana.BarraTitulo.Degradado.ColorInicial"]);
            }
        }

        public static GradientStyle VentanaBarraTituloDegradadoTipoDegradado
        {
            get
            {
                GradientStyle tipoDegradado;

                switch (ConfigurationManager.AppSettings["Pantalla.Ventana.BarraTitulo.Degradado.TipoDegradado"])
                {
                    case "Vertical":
                        tipoDegradado = GradientStyle.Vertical;
                        break;

                    case "None":
                        tipoDegradado = GradientStyle.None;
                        break;

                    default:
                        tipoDegradado = GradientStyle.Default;
                        break;
                }

                return tipoDegradado;
            }
        }
    }
}
