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

namespace Toolbox.Library.Forms
{
    public class STTabControl : FlatTabControl.FlatTabControl
    {
        public STTabControl() : base()
        {
            myBackColor = FormThemes.BaseTheme.FormBackColor;
            InitializeComponent();
        }

        private const int WM_SETREDRAW = 11;

        [DllImport("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);



        private void tabForms_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (TabPage tpCheck in TabPages)
            {
                tpCheck.BackColor = FormThemes.BaseTheme.TabPageInactive;
                tpCheck.ForeColor = FormThemes.BaseTheme.DisabledItemColor;
            }

            if (SelectedTab != null)
            {
                SelectedTab.BackColor = FormThemes.BaseTheme.TabPageActive;
                SelectedTab.ForeColor = FormThemes.BaseTheme.TextForeColor;
            }

            if ((SelectedTab != null) &&
                (SelectedTab.Tag != null))
            {
                SendMessage(this.Handle, WM_SETREDRAW, false, 0);
                (SelectedTab.Tag as Form).Select();
                SendMessage(this.Handle, WM_SETREDRAW, true, 0);
                this.Refresh();
            }
        }

        private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // STTabControl
            // 
            this.SelectedIndexChanged += new System.EventHandler(this.tabForms_SelectedIndexChanged);
            this.Selected += new System.Windows.Forms.TabControlEventHandler(this.STTabControl_Selected);
            this.ResumeLayout(false);

        }

        private void STTabControl_Selected(object sender, TabControlEventArgs e)
        {
      
        }
    }
}