using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Exferia_Controles
{
    public partial class Exferia_TabControl : TabControl
    {
        #region Propiedades Publicas


        internal Color g_clr_Fondo_Cambiado = Color.WhiteSmoke;
        public Color Exferia_TabControl_Fondo_TabPage_Cambiado
        {
            set
            {
                g_clr_Fondo_Cambiado = value;
            }
            get
            {
                return g_clr_Fondo_Cambiado;
            }
        }
        internal Color g_clr_Letra_Cambiado = Color.Black;
        public Color Exferia_TabControl_Letra_TabPage_Cambiado
        {
            set
            {
                g_clr_Letra_Cambiado = value;
            }
            get
            {
                return g_clr_Letra_Cambiado;
            }
        }

        internal Color g_clr_Fondo_Normal = Color.WhiteSmoke;
        public Color Exferia_TabControl_Fondo_TabPage_Normal
        {
            set
            {
                g_clr_Fondo_Normal = value;
            }
            get
            {
                return g_clr_Fondo_Normal;
            }
        }
        internal Color g_clr_Letra_Normal = Color.Black;
        public Color Exferia_TabControl_Letra_TabPage_Normal
        {
            set
            {
                g_clr_Letra_Normal = value;
            }
            get
            {
                return g_clr_Letra_Normal;
            }
        }

        internal Color g_clr_Fondo_Seleccionado = Color.WhiteSmoke;
        public Color Exferia_TabControl_Fondo_TabPage_Seleccionado
        {
            set
            {
                g_clr_Fondo_Seleccionado = value;
            }
            get
            {
                return g_clr_Fondo_Seleccionado;
            }
        }
        internal Color g_clr_Letra_Seleccionado = Color.Black;
        public Color Exferia_TabControl_Letra_TabPage_Seleccionado
        {
            set
            {
                g_clr_Letra_Seleccionado = value;
            }
            get
            {
                return g_clr_Letra_Seleccionado;
            }
        }


        #endregion

        #region Constructor
        public Exferia_TabControl()
        {
            this.SuspendLayout();

            this.DrawMode = TabDrawMode.OwnerDrawFixed;
            // 
            // Exferia_TabControl
            // 
            this.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.Exferia_TabControl_DrawItem);
            this.ResumeLayout(false);
        }
        #endregion

        private void Exferia_TabControl_DrawItem(object sender, DrawItemEventArgs e)
        {
            TabPage obj_TabPage = this.TabPages[e.Index];

            int int_yOffset = 1;

            //Colores
            Color obj_Color_Fuente = Color.Black;
            if (obj_TabPage.Tag!=null && obj_TabPage.Tag.ToString().Equals("1"))
            {
                e.Graphics.FillRectangle(new SolidBrush(g_clr_Fondo_Cambiado), e.Bounds);
                obj_Color_Fuente = g_clr_Letra_Cambiado;
            }
            else
            {
                //Seleccionado
                if (e.State == DrawItemState.Selected)
                {
                    e.Graphics.FillRectangle(new SolidBrush(g_clr_Fondo_Seleccionado), e.Bounds);
                    obj_Color_Fuente = g_clr_Letra_Seleccionado;
                    int_yOffset = -2 ;
                }
                else
                {
                    e.Graphics.FillRectangle(new SolidBrush(g_clr_Fondo_Normal), e.Bounds);
                    obj_Color_Fuente = g_clr_Letra_Normal;
                    int_yOffset = 1;
                }
            }
           
            Rectangle obj_Rectangle = e.Bounds;


            obj_Rectangle.Offset(1, int_yOffset);
            TextRenderer.DrawText(e.Graphics, obj_TabPage.Text, Font, obj_Rectangle, obj_Color_Fuente);
        }
    }
}
