public CCTabControl()
        {
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.OptimizedDoubleBuffer, true);

            // The tab renderer and layout engine should be initialized before
            // doing anything that changes the font, size, or location of the
            // window since UpdateDisplayRectangle accesses _renderer and
            // _layoutEngine.

            // Get the dpi since the height in pixels of the font depends on it
            using (Graphics g = this.CreateGraphics())
            {
                _dpiY = g.DpiY;
            }

            _renderer     = new CCTabRenderer();
            _layoutEngine = new HorizontalRowLayoutEngine();

            _layoutEngine.LayoutRectangle = new Rectangle(_tabIndent, new Size(65536, (int)(_dpiY * (this.Font.Height + _renderer.TextPadding * 2) / 96F)));
            _layoutEngine.Spacing         = _renderer.TabSpacing.X;

            _selectedIndex      = -1;
            _tabPages           = new TabPageCollection(this);
            _GradientColor      = DefaultGradientColor;
            _PanelColor         = DefaultPanelColor;
            _SelectedPanelColor = DefaultSelectedPanelColor;
            _SelectedTextColor  = DefaultSelectedTextColor;
            _LineColor          = DefaultLineColor;
            _DisabledTextColor  = DefaultDisabledTextColor;
            ForeColor           = DefaultForeColor;

            Font = DefaultFont;
            Size = new Size(200, 100);
            UpdateDisplayRectangle();
        }
 public TabInfo(Control ctl, CCTabRenderer c, string caption)
 {
     Text  = caption;
     State = TabState.Visible | TabState.Enabled;
 }