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.General;
using Exferia_Aplicacion.Visualizacion;

namespace Exferia_Agenda._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_P_Agenda_ContenedorCita : UserControl
    {
        #region Variables privadas
        private int g_int_UltimaLocalizacion = 0;
        private int g_int_Ancho_Inicial = 0;
        #endregion

        #region Eventos publicos
        public event EventHandler<INTERNO_EventArgs_Boolean> CTU_P_Agenda_ContenedorCita_Mostrar;
        #endregion

        #region Constructor
        public CTU_P_Agenda_ContenedorCita()
        {
            InitializeComponent();

            Repintar.Empezar(this);
        }
        #endregion

        #region Panel
        public void AgregarControles(Control _clr_Objeto, bool _bol_Cita)
        {
            pnl_Principal.Controls.Add(_clr_Objeto);

            if (_bol_Cita)
            {
                g_int_UltimaLocalizacion = _clr_Objeto.Location.X + _clr_Objeto.Width;
            }

            //Se almacena solo una vez
            if (g_int_Ancho_Inicial == 0)
            {
                g_int_Ancho_Inicial = this.Width;
            }

            if (g_int_UltimaLocalizacion > g_int_Ancho_Inicial)
            {
                CTU_P_Agenda_ContenedorCita_Mostrar?.Invoke(this, new INTERNO_EventArgs_Boolean(true));
            }
            else
            {
                CTU_P_Agenda_ContenedorCita_Mostrar?.Invoke(this, new INTERNO_EventArgs_Boolean(false));
            }
        }
        #endregion

        #region Scroll

        public void Mover_Panel_Scroll(int _int_Nuevo_Valor)
        {
            try
            {
                int int_Calculo = ((g_int_UltimaLocalizacion - g_int_Ancho_Inicial) * _int_Nuevo_Valor) / 91;
                pnl_Principal.Location = new Point(-int_Calculo, pnl_Principal.Location.Y);
                pnl_Principal.Size = new Size(g_int_Ancho_Inicial + int_Calculo, pnl_Principal.Height);
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(CTU_P_Agenda_ContenedorCita) + "/" + nameof(Mover_Panel_Scroll));
            }
        }
        #endregion
    }
}
