using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Exferia_Aplicacion.Visualizacion;

namespace Exferia_Controles
{
    public partial class Exferia_Button_MenuSuperior : UserControl
    {
        #region Propiedades Publicas

        private bool g_bol_Seleccionado = false;
        public bool Exferia_Button_MenuSuperior_Seleccionar
        {
            set
            {
                g_bol_Seleccionado = value;
                Seleccionar(g_bol_Seleccionado);
            }
            get
            {
                return g_bol_Seleccionado;
            }
        }

        private string g_str_ToolTip = "";
        public string Exferia_Button_MenuSuperior_ToolTip
        {
            set
            {
                g_str_ToolTip = value;

                toolTip1.SetToolTip(this, value);
                toolTip1.SetToolTip(lbl_Empresa_Codigo, value);
                toolTip1.SetToolTip(lbl_NombrePantalla, value);
                toolTip1.SetToolTip(lbl_CodigoAModificar, value);
                toolTip1.SetToolTip(lbl_TipoAccion, value);

                toolTip1.SetToolTip(pnl_Contenedor, value);
                toolTip1.SetToolTip(pnl_Separador_2, value);
                toolTip1.SetToolTip(pnl_Separador_1, value);
                toolTip1.SetToolTip(pnl_Separador_3, value);
            }
            get
            {
                return g_str_ToolTip;
            }
        }

        public string Exferia_Button_MenuSuperior_EmpresaCodigo
        {
            set
            {
                lbl_Empresa_Codigo.Text = value;
            }
            get
            {
                return lbl_Empresa_Codigo.Text;
            }
        }
        public string Exferia_Button_MenuSuperior_NombrePantalla
        {
            set
            {
                lbl_NombrePantalla.Text = value;
            }
            get
            {
                return lbl_NombrePantalla.Text;
            }
        }
        public string Exferia_Button_MenuSuperior_CodigoAModificar
        {
            set
            {
                lbl_CodigoAModificar.Text = value;
            }
            get
            {
                return lbl_CodigoAModificar.Text;
            }
        }
        public string Exferia_Button_MenuSuperior_TipoAccion
        {
            set
            {
                lbl_TipoAccion.Text = value;
            }
            get
            {
                return lbl_TipoAccion.Text;
            }
        }
        public string Exferia_Button_MenuSuperior_Indentificador
        {
            set;
            get;
        }

        #region Objetos para la modificaion del tamño y posicion
        public Label Interna_EmpresaCodigo_Label
        {
            set
            {
                lbl_Empresa_Codigo = value;
            }
            get
            {
                return lbl_Empresa_Codigo;
            }
        }
        public Label Interna_NombrePantalla_Label
        {
            set
            {
                lbl_NombrePantalla = value;
            }
            get
            {
                return lbl_NombrePantalla;
            }
        }
        public Label Interna_CodigoAModificar_Label
        {
            set
            {
                lbl_CodigoAModificar = value;
            }
            get
            {
                return lbl_CodigoAModificar;
            }
        }
        public Label Interna_TipoAccion_Label
        {
            set
            {
                lbl_TipoAccion = value;
            }
            get
            {
                return lbl_TipoAccion;
            }
        }

        public Panel Interna_Separador1_Panel
        {
            set
            {
                pnl_Separador_1 = value;
            }
            get
            {
                return pnl_Separador_1;
            }
        }
        public Panel Interna_Separador2_Panel
        {
            set
            {
                pnl_Separador_2 = value;
            }
            get
            {
                return pnl_Separador_2;
            }
        }
        public Panel Interna_Separador3_Panel
        {
            set
            {
                pnl_Separador_3 = value;
            }
            get
            {
                return pnl_Separador_3;
            }
        }

        public Exferia_Button Exferia_Button_Cerrar
        {
            get
            {
                return btn_Cerrar;
            }
        }

        #endregion

        #endregion

        private bool g_bol_EstaDentro = false;

        public void Cambiar_Fuente()
        {
            lbl_Empresa_Codigo.Font = Fuentes.G_FONT_TEXTOS_GRANDE;
            lbl_NombrePantalla.Font = Fuentes.G_FONT_TEXTOS_GRANDE;
            lbl_CodigoAModificar.Font = Fuentes.G_FONT_TEXTOS_GRANDE;
            lbl_TipoAccion.Font = Fuentes.G_FONT_TEXTOS_GRANDE;
        }

        public Exferia_Button_MenuSuperior()
        {
            InitializeComponent();

            Repintar.Empezar(this);
        }

        //Efecto al Pulsar y Soltar el Control ....................................................
        private void ControlPulsado(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Seleccionar(true);
        }

        private void ControlNoPulsado(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Seleccionar(false);
        }

        private void Seleccionar(bool _bol_Valor)
        {
            if (_bol_Valor)
            {
                BackColor = Colores.G_COLOR_LETRA_SELECCION;
                pnl_Contenedor.BackColor = Colores.G_COLOR_FONDO_SELECCION;
                pnl_Separador_2.BackColor = Colores.G_COLOR_LETRA_SELECCION;
                pnl_Separador_1.BackColor = Colores.G_COLOR_LETRA_SELECCION;
                pnl_Separador_3.BackColor = Colores.G_COLOR_LETRA_SELECCION;

                lbl_Empresa_Codigo.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                lbl_NombrePantalla.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                lbl_CodigoAModificar.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                lbl_TipoAccion.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
            }
            else
            {
                BackColor = Colores.G_COLOR_PRINCIPAL_BASE;
                pnl_Contenedor.BackColor = Colores.G_COLOR_FONDO_BASE;
                pnl_Separador_2.BackColor = Colores.G_COLOR_PRINCIPAL_BASE;
                pnl_Separador_1.BackColor = Colores.G_COLOR_PRINCIPAL_BASE;
                pnl_Separador_3.BackColor = Colores.G_COLOR_PRINCIPAL_BASE;

                lbl_Empresa_Codigo.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                lbl_NombrePantalla.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                lbl_CodigoAModificar.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                lbl_TipoAccion.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
            }
        }

        private void ProcessMouseEvent(object obj, EventArgs e)
        {
            if (ClientRectangle.Contains(PointToClient(MousePosition)))
            {
                if (!g_bol_EstaDentro)
                {
                    g_bol_EstaDentro = true;

                    pnl_Contenedor.BackColor = Colores.G_COLOR_FONDO_SELECCION_PASARPORENCIMA;

                    lbl_Empresa_Codigo.ForeColor = Colores.G_COLOR_LETRA_SELECCION_PASARPORENCIMA;
                    lbl_NombrePantalla.ForeColor = Colores.G_COLOR_LETRA_SELECCION_PASARPORENCIMA;
                    lbl_CodigoAModificar.ForeColor = Colores.G_COLOR_LETRA_SELECCION_PASARPORENCIMA;
                    lbl_TipoAccion.ForeColor = Colores.G_COLOR_LETRA_SELECCION_PASARPORENCIMA;
                }
            }
            else
            {
                if (g_bol_EstaDentro)
                {
                    g_bol_EstaDentro = false;

                    if (g_bol_Seleccionado)
                    {
                        pnl_Contenedor.BackColor = Colores.G_COLOR_FONDO_SELECCION;

                        lbl_Empresa_Codigo.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                        lbl_NombrePantalla.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                        lbl_CodigoAModificar.ForeColor = Colores.G_COLOR_LETRA_SELECCION;
                        lbl_TipoAccion.ForeColor = Colores.G_COLOR_LETRA_SELECCION;

                    }
                    else
                    {
                        pnl_Contenedor.BackColor = Colores.G_COLOR_FONDO_BASE;

                        lbl_Empresa_Codigo.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                        lbl_NombrePantalla.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                        lbl_CodigoAModificar.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                        lbl_TipoAccion.ForeColor = Colores.G_COLOR_PRINCIPAL_BASE;
                    }
                }
            }
        }

        #region Eventos Publicos
        public event EventHandler Exferia_Button_MenuSuperior_Evento_Click;
        private void UserControl_Boton_PantallaAbierta_Click(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            Exferia_Button_MenuSuperior_Evento_Click?.Invoke(this, e);
        }

        public event EventHandler Exferia_Button_MenuSuperior_Evento_Cerrar;
        private void btn_Cerrar_Click(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            Exferia_Button_MenuSuperior_Evento_Cerrar?.Invoke(this, e);
        }
    #endregion
    }
}
