1548 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1548 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#if FRAMEWORK20
 | 
						|
using System;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
using System.Runtime.InteropServices;
 | 
						|
using System.Windows.Forms;
 | 
						|
using DevComponents.DotNetBar.Rendering;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar
 | 
						|
{
 | 
						|
    [ToolboxItem(true), ComVisible(false)]
 | 
						|
    [Designer("DevComponents.DotNetBar.Design.SuperTabStripDesigner, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf")]
 | 
						|
    public class SuperTabStrip : ItemControl, ISupportInitialize
 | 
						|
    {
 | 
						|
        #region Events
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab is added to the Tabs collection
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab is added to the Tabs collection.")]
 | 
						|
        public event EventHandler<SuperTabStripTabItemOpenEventArgs> TabItemOpen;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab is about to Close
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab is about to Close.")]
 | 
						|
        public event EventHandler<SuperTabStripTabItemCloseEventArgs> TabItemClose;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab is removed from the Tabs collection
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab is removed from the Tabs collection.")]
 | 
						|
        public event EventHandler<SuperTabStripTabRemovedEventArgs> TabRemoved;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab is about to be displayed
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab is about to be displayed.")]
 | 
						|
        public event EventHandler<SuperTabStripBeforeTabDisplayEventArgs> BeforeTabDisplay;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab is being moved or dragged by the user
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab is being moved or dragged by the user.")]
 | 
						|
        public event EventHandler<SuperTabStripTabMovingEventArgs> TabMoving;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when a tab has been moved or dragged by the user
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when a tab has been moved or dragged by the user.")]
 | 
						|
        public event EventHandler<SuperTabStripTabMovedEventArgs> TabMoved;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the Selected tab is changing
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the Selected tab is changing.")]
 | 
						|
        public event EventHandler<SuperTabStripSelectedTabChangingEventArgs> SelectedTabChanging;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the Selected tab has changed
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the Selected tab has changed.")]
 | 
						|
        public event EventHandler<SuperTabStripSelectedTabChangedEventArgs> SelectedTabChanged;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs a tab's bordering path
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs a tab's bordering path.")]
 | 
						|
        public event EventHandler<SuperTabGetTabItemPathEventArgs> GetTabItemPath;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs a tab's Content Rectangle
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs a tab's Content Rectangle.")]
 | 
						|
        public event EventHandler<SuperTabGetTabItemContentRectangleEventArgs> GetTabItemContentRectangle;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs to measure a tab
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs to measure a tab.")]
 | 
						|
        public event EventHandler<SuperTabMeasureTabItemEventArgs> MeasureTabItem;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs before any tab rendering is done
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs before any tab rendering is done.")]
 | 
						|
        public event EventHandler<SuperTabPreRenderTabItemEventArgs> PreRenderTabItem;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs After all tab rendering is complete
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs After all tab rendering is complete.")]
 | 
						|
        public event EventHandler<SuperTabPostRenderTabItemEventArgs> PostRenderTabItem;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs to get the tab's Text Bounds
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs to get the tab's Text Bounds.")]
 | 
						|
        public event EventHandler<SuperTabGetTabTextBoundsEventArgs> GetTabTextBounds;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs to get the tab's Image Bounds
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs to get the tab's Image Bounds.")]
 | 
						|
        public event EventHandler<SuperTabGetTabImageBoundsEventArgs> GetTabImageBounds;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the control needs to get the tab's Close Button Bounds
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the control needs to get the tab's Close Button Bounds.")]
 | 
						|
        public event EventHandler<SuperTabGetTabCloseBoundsEventArgs> GetTabCloseBounds;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the TabStrip background needs painted
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the TabStrip background needs painted.")]
 | 
						|
        public event EventHandler<SuperTabStripPaintBackgroundEventArgs> TabStripPaintBackground;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when the TabStrip TabColor has changed
 | 
						|
        /// </summary>
 | 
						|
        [Description("Occurs when the TabStrip TabColor has changed.")]
 | 
						|
        public event EventHandler<SuperTabStripTabColorChangedEventArgs> TabStripTabColorChanged;
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Private variables
 | 
						|
 | 
						|
        private BaseItem _DesignTimeSelection;
 | 
						|
        private SuperTabStripItem _TabStripItem;
 | 
						|
 | 
						|
        private bool _IsInitializing;
 | 
						|
        private bool _Available = true;
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Constructor
 | 
						|
        /// </summary>
 | 
						|
        public SuperTabStrip()
 | 
						|
        {
 | 
						|
            _TabStripItem = new SuperTabStripItem(this);
 | 
						|
 | 
						|
            _TabStripItem.GlobalItem = false;
 | 
						|
            _TabStripItem.ContainerControl = this;
 | 
						|
            _TabStripItem.Stretch = false;
 | 
						|
            _TabStripItem.Displayed = true;
 | 
						|
            _TabStripItem.SetOwner(this);
 | 
						|
 | 
						|
            SetBaseItemContainer(_TabStripItem);
 | 
						|
 | 
						|
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
 | 
						|
 | 
						|
            HookEvents(true);
 | 
						|
 | 
						|
            StyleManager.Register(this);
 | 
						|
        }
 | 
						|
 | 
						|
        #region Public properties
 | 
						|
 | 
						|
        #region AutoSelectAttachedControl
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether the control attached to the TabItem.AttachedControl property
 | 
						|
        /// is automatically selected when TabItem becomes the selected tab. Default value is true.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        public bool AutoSelectAttachedControl
 | 
						|
        {
 | 
						|
            get { return (TabStripItem.AutoSelectAttachedControl); }
 | 
						|
            set { TabStripItem.AutoSelectAttachedControl = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Close button properties
 | 
						|
 | 
						|
        #region AutoCloseTabs
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether tabs are automatically closed when a close button is clicked
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(true), Category("Close Button")]
 | 
						|
        [Description("Indicates whether tab is automatically closed when close button is clicked.")]
 | 
						|
        public bool AutoCloseTabs
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.AutoCloseTabs); }
 | 
						|
            set { _TabStripItem.AutoCloseTabs = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CloseButtonOnTabsAlwaysDisplayed
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether the tab's visible close button is displayed for every tab state
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(true), DevCoBrowsable(true), Category("Close Button")]
 | 
						|
        [Description("Indicates whether the tab's visible close button is displayed for every tab state.")]
 | 
						|
        public bool CloseButtonOnTabsAlwaysDisplayed
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.CloseButtonOnTabsAlwaysDisplayed); }
 | 
						|
            set { _TabStripItem.CloseButtonOnTabsAlwaysDisplayed = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CloseButtonOnTabsVisible
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether close button is visible on each tab
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(false), DevCoBrowsable(true), Category("Close Button")]
 | 
						|
        [Description("Indicates whether close button is visible on each tab.")]
 | 
						|
        public bool CloseButtonOnTabsVisible
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.CloseButtonOnTabsVisible); }
 | 
						|
            set { _TabStripItem.CloseButtonOnTabsVisible = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CloseButtonPosition
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the position of the tab close button
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(eTabCloseButtonPosition.Right), DevCoBrowsable(true)]
 | 
						|
        [Category("Close Button"), Description("Indicates the position of the tab close button.")]
 | 
						|
        public eTabCloseButtonPosition CloseButtonPosition
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.CloseButtonPosition); }
 | 
						|
            set { _TabStripItem.CloseButtonPosition = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabCloseButtonNormal
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the custom tab Close button image
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(null), Category("Close Button")]
 | 
						|
        [Description("Indicates the custom tab Close button image.")]
 | 
						|
        public Image TabCloseButtonNormal
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabCloseButtonNormal); }
 | 
						|
            set { _TabStripItem.TabCloseButtonNormal = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabCloseButtonHot
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the custom Close button image that is used on tabs when the mouse is over the close button
 | 
						|
        /// </summary>
 | 
						|
        public Image TabCloseButtonHot
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabCloseButtonHot); }
 | 
						|
            set { _TabStripItem.TabCloseButtonHot = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabCloseButtonPressed
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the custom Close button image that is used on tabs when the button has been pressed
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(null), Category("Close Button")]
 | 
						|
        [Description("Indicates custom Close button image that is used on tabs when the button has been pressed.")]
 | 
						|
        public Image TabCloseButtonPressed
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabCloseButtonPressed); }
 | 
						|
            set { _TabStripItem.TabCloseButtonPressed = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Visible
 | 
						|
 | 
						|
        public new bool Visible
 | 
						|
        {
 | 
						|
            get { return (base.Visible); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _Available = value;
 | 
						|
 | 
						|
                base.Visible = value;
 | 
						|
 | 
						|
                SuperTabControl stc = Parent as SuperTabControl;
 | 
						|
 | 
						|
                if (stc != null)
 | 
						|
                    stc.RefreshPanelsStyle();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ControlBox
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the TabStrip ControlBox
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), Category("Appearance")]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | 
						|
        [Description("Gets the TabStrip ControlBox.")]
 | 
						|
        public SuperTabControlBox ControlBox
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.ControlBox); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DesignTimeSelection
 | 
						|
 | 
						|
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public BaseItem DesignTimeSelection
 | 
						|
        {
 | 
						|
            get { return (_DesignTimeSelection); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _DesignTimeSelection = value;
 | 
						|
 | 
						|
                Invalidate();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DisplaySelectedTextOnly
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether the only Text displayed is for the SelectedTab
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true), Category("Behavior"), DefaultValue(false)]
 | 
						|
        [Description("Specifies whether the only Text displayed is for the SelectedTab.")]
 | 
						|
        public bool DisplaySelectedTextOnly
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.DisplaySelectedTextOnly); }
 | 
						|
            set { _TabStripItem.DisplaySelectedTextOnly = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region HorizontalText
 | 
						|
 | 
						|
        [Browsable(true), DefaultValue(true), Category("Appearance")]
 | 
						|
        [Description("Indicates whether text is drawn horizontally regardless of tab orientation.")]
 | 
						|
        public bool HorizontalText
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.HorizontalText); }
 | 
						|
            set { _TabStripItem.HorizontalText = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ImageAlignment
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the default alignment of the Image within the tab
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(ImageAlignment.NotSet), Category("Appearance")]
 | 
						|
        [Description("Indicates the default alignment of the Image within the tab.")]
 | 
						|
        public ImageAlignment ImageAlignment
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.ImageAlignment); }
 | 
						|
            set { _TabStripItem.ImageAlignment = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ImageList
 | 
						|
 | 
						|
        [Browsable(true), DevCoBrowsable(true), Category("Appearance"), DefaultValue(null)]
 | 
						|
        public ImageList ImageList
 | 
						|
        {
 | 
						|
            get { return (Images); }
 | 
						|
            set { Images = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ItemPadding
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets BaseItem tab padding in pixels.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), Category("Layout")]
 | 
						|
        [Description("Indicates BaseItem tab padding in pixels.")]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | 
						|
        public Padding ItemPadding
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.ItemPadding); }
 | 
						|
            set { _TabStripItem.ItemPadding = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region RotateVerticalText
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether vertical tab text is rotated 180 degrees
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(false), Category("Layout")]
 | 
						|
        [Description("Indicates whether vertical tab text is rotated 180 degrees.")]
 | 
						|
        public bool RotateVerticalText
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.RotateVerticalText); }
 | 
						|
            set { _TabStripItem.RotateVerticalText = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ShowFocusRectangle
 | 
						|
 | 
						|
        [Browsable(true), DefaultValue(false), Category("Behavior")]
 | 
						|
        [Description("Indicates whether focus rectangle is displayed when tab has input focus.")]
 | 
						|
        public bool ShowFocusRectangle
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.ShowFocusRectangle); }
 | 
						|
            set { _TabStripItem.ShowFocusRectangle = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Tab properties
 | 
						|
 | 
						|
        #region FixedTabSize
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the fixed tab size in pixels. Either Height, Width, or both can be set
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), Category("Appearance")]
 | 
						|
        [Description("Indicates the fixed tab size in pixels. Either Height, Width, or both can be set.")]
 | 
						|
        public Size FixedTabSize
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.FixedTabSize); }
 | 
						|
            set { _TabStripItem.FixedTabSize = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public bool ShouldSerializeFixedTabSize()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.ShouldSerializeFixedTabSize());
 | 
						|
        }
 | 
						|
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetFixedTabSize()
 | 
						|
        {
 | 
						|
            TypeDescriptor.GetProperties(this)["FixedTabSize"].SetValue(this, Size.Empty);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IsTabDragging
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether a tab is currently in a drag operation
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        public bool IsTabDragging
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.IsTabDragging); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ReorderTabsEnabled
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether tabs can be reordered through the user interface
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true), Category("Behavior")]
 | 
						|
        [Description("Indicates whether the control tabs can be reordered through the user interface.")]
 | 
						|
        public bool ReorderTabsEnabled
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.ReorderTabsEnabled); }
 | 
						|
            set { _TabStripItem.ReorderTabsEnabled = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SelectedTab
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the selected tab
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false), DevCoBrowsable(false), Category("Behavior")]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public SuperTabItem SelectedTab
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.SelectedTab); }
 | 
						|
            set {_TabStripItem.SelectedTab = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SelectedTabFont
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the selected tab Font
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true),  Localizable(true), Category("Style"), DefaultValue(null)]
 | 
						|
        [Description("Indicates the selected tab Font")]
 | 
						|
        public Font SelectedTabFont
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.SelectedTabFont); }
 | 
						|
            set { _TabStripItem.SelectedTabFont = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public bool ShouldSerializeSelectedTabFont()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.ShouldSerializeSelectedTabFont());
 | 
						|
        }
 | 
						|
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetSelectedTabFont()
 | 
						|
        {
 | 
						|
            _TabStripItem.ResetSelectedTabFont();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SelectedTabIndex
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the index of the selected tab
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true), Category("Behavior")]
 | 
						|
        [Description("Indicates the index of the selected tab.")]
 | 
						|
        public int SelectedTabIndex
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.SelectedTabIndex); }
 | 
						|
            set {_TabStripItem.SelectedTabIndex = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabAlignment
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the tab alignment within the Tab-Strip control
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(eTabStripAlignment.Top), DevCoBrowsable(true)]
 | 
						|
        [Category("Appearance"), Description("Indicates the tab alignment within the Tab-Strip control.")]
 | 
						|
        public eTabStripAlignment TabAlignment
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabAlignment); }
 | 
						|
            set {_TabStripItem.TabAlignment = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabFont
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the tab Font
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true),  Localizable(true), Category("Style"), DefaultValue(null)]
 | 
						|
        [Description("Indicates the tab Font")]
 | 
						|
        public Font TabFont
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabFont); }
 | 
						|
            set { _TabStripItem.TabFont = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public bool ShouldSerializeTabFont()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.ShouldSerializeTabFont());
 | 
						|
        }
 | 
						|
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetTabFont()
 | 
						|
        {
 | 
						|
            _TabStripItem.ResetTabFont();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabHorizontalSpacing
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Horizontal spacing around tab elements
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(5), Category("Appearance")]
 | 
						|
        [Description("Indicates the Horizontal spacing around tab elements.")]
 | 
						|
        public int TabHorizontalSpacing
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabHorizontalSpacing); }
 | 
						|
            set { _TabStripItem.TabHorizontalSpacing = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabLayoutType
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the type of the tab layout
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(eSuperTabLayoutType.SingleLine), Category("Appearance")]
 | 
						|
        [Description("Indicates the type of the tab layout.")]
 | 
						|
        public eSuperTabLayoutType TabLayoutType
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabLayoutType); }
 | 
						|
            set { _TabStripItem.TabLayoutType = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Tabs
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the collection of Tabs
 | 
						|
        /// </summary>
 | 
						|
        [Editor("DevComponents.DotNetBar.Design.SuperTabStripTabsEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | 
						|
        [Category("Data"), Description("Returns the collection of Tabs.")]
 | 
						|
        public SubItemsCollection Tabs
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.SubItems); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Color of the TabStrip
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), Category("Appearance")]
 | 
						|
        [Description("Indicates the Color of the TabStrip.")]
 | 
						|
        public SuperTabColorTable TabStripColor
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabStripColor); }
 | 
						|
            set { _TabStripItem.TabStripColor = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public bool ShouldSerializeTabStripColor()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.TabStripColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetTabStripColor()
 | 
						|
        {
 | 
						|
            _TabStripItem.TabStripColor = new SuperTabColorTable();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStyle
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the tab style
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DevCoBrowsable(true), DefaultValue(eSuperTabStyle.Office2007)]
 | 
						|
        [Category("Appearance"), Description("Indicates the tab style.")]
 | 
						|
        public eSuperTabStyle TabStyle
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabStyle); }
 | 
						|
            set { _TabStripItem.TabStyle = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabVerticalSpacing
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Vertical spacing around tab elements
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(4), Category("Appearance")]
 | 
						|
        [Description("Indicates the Vertical spacing around tab elements.")]
 | 
						|
        public int TabVerticalSpacing
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabVerticalSpacing); }
 | 
						|
            set { _TabStripItem.TabVerticalSpacing = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the TabStrip associated TabStripItem
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        public SuperTabStripItem TabStripItem
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TextAlignment
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets tab text alignment
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DefaultValue(eItemAlignment.Near)]
 | 
						|
        [DevCoBrowsable(true), Category("Layout"), Description("Indicates tab text alignment.")]
 | 
						|
        public eItemAlignment TextAlignment
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TextAlignment); }
 | 
						|
            set { _TabStripItem.TextAlignment = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Internal properties
 | 
						|
 | 
						|
        #region Available
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether the tabStrip is visually available
 | 
						|
        /// </summary>
 | 
						|
        internal bool Available
 | 
						|
        {
 | 
						|
            get { return (_Available); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IsDesignMode
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the Design state for the control
 | 
						|
        /// </summary>
 | 
						|
        internal bool IsDesignMode
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (Parent != null && Parent is SuperTabControl && Parent.Site != null)
 | 
						|
                    return (Parent.Site.DesignMode);
 | 
						|
 | 
						|
                return (DesignMode);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IsInitializing
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the ISupportInitialize state
 | 
						|
        /// </summary>
 | 
						|
        internal bool IsInitializing
 | 
						|
        {
 | 
						|
            get { return (_IsInitializing); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabDisplay
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the TabDisplay
 | 
						|
        /// </summary>
 | 
						|
        internal SuperTabStripBaseDisplay TabDisplay
 | 
						|
        {
 | 
						|
            get { return (_TabStripItem.TabDisplay); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ApplicationButton
 | 
						|
        private BaseItem _ApplicationButton;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the reference to ribbon application button when tab control is used as backstage ribbon control.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public BaseItem ApplicationButton
 | 
						|
        {
 | 
						|
            get { return _ApplicationButton; }
 | 
						|
            set { _ApplicationButton = value; }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region HookEvents
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Hooks or unhooks TabStripItem events
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="hook">true to hook</param>
 | 
						|
        private void HookEvents(bool hook)
 | 
						|
        {
 | 
						|
            if (hook == true)
 | 
						|
            {
 | 
						|
                _TabStripItem.TabItemOpen += TabStripItemTabItemOpen;
 | 
						|
                _TabStripItem.TabItemClose += TabStripItem_TabItemClose;
 | 
						|
                _TabStripItem.TabRemoved += TabStripItem_TabRemoved;
 | 
						|
                _TabStripItem.TabMoving += TabStripItem_TabMoving;
 | 
						|
                _TabStripItem.TabMoved += TabStripItem_TabMoved;
 | 
						|
 | 
						|
                _TabStripItem.GetTabItemPath += TabStripItem_GetTabItemPath;
 | 
						|
                _TabStripItem.GetTabItemContentRectangle += TabStripItem_GetTabItemContentRectangle;
 | 
						|
 | 
						|
                _TabStripItem.BeforeTabDisplay += TabStripItem_BeforeTabDisplay;
 | 
						|
                _TabStripItem.MeasureTabItem += TabStripItem_MeasureTabItem;
 | 
						|
                _TabStripItem.PreRenderTabItem += TabStripItem_PreRenderTabItem;
 | 
						|
                _TabStripItem.PostRenderTabItem += TabStripItem_PostRenderTabItem;
 | 
						|
 | 
						|
                _TabStripItem.GetTabTextBounds += TabStripItem_GetTabTextBounds;
 | 
						|
                _TabStripItem.GetTabImageBounds += TabStripItem_GetTabImageBounds;
 | 
						|
                _TabStripItem.GetTabCloseBounds += TabStripItem_GetTabCloseBounds;
 | 
						|
 | 
						|
                _TabStripItem.TabStripPaintBackground += TabStripItem_TabStripPaintBackground;
 | 
						|
 | 
						|
                _TabStripItem.SelectedTabChanging += TabStripItem_SelectedTabChanging;
 | 
						|
                _TabStripItem.SelectedTabChanged += TabStripItem_SelectedTabChanged;
 | 
						|
 | 
						|
                _TabStripItem.TabStripTabColorChanged += TabStripItem_TabStripTabColorChanged;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                _TabStripItem.TabItemOpen -= TabStripItemTabItemOpen;
 | 
						|
                _TabStripItem.TabItemClose -= TabStripItem_TabItemClose;
 | 
						|
                _TabStripItem.TabRemoved -= TabStripItem_TabRemoved;
 | 
						|
                _TabStripItem.TabMoving -= TabStripItem_TabMoving;
 | 
						|
                _TabStripItem.TabMoved -= TabStripItem_TabMoved;
 | 
						|
 | 
						|
                _TabStripItem.GetTabItemPath -= TabStripItem_GetTabItemPath;
 | 
						|
                _TabStripItem.GetTabItemContentRectangle -= TabStripItem_GetTabItemContentRectangle;
 | 
						|
 | 
						|
                _TabStripItem.BeforeTabDisplay -= TabStripItem_BeforeTabDisplay;
 | 
						|
                _TabStripItem.MeasureTabItem -= TabStripItem_MeasureTabItem;
 | 
						|
                _TabStripItem.PreRenderTabItem -= TabStripItem_PreRenderTabItem;
 | 
						|
                _TabStripItem.PostRenderTabItem -= TabStripItem_PostRenderTabItem;
 | 
						|
 | 
						|
                _TabStripItem.GetTabTextBounds -= TabStripItem_GetTabTextBounds;
 | 
						|
                _TabStripItem.GetTabImageBounds -= TabStripItem_GetTabImageBounds;
 | 
						|
                _TabStripItem.GetTabCloseBounds -= TabStripItem_GetTabCloseBounds;
 | 
						|
 | 
						|
                _TabStripItem.TabStripPaintBackground -= TabStripItem_TabStripPaintBackground;
 | 
						|
 | 
						|
                _TabStripItem.SelectedTabChanging -= TabStripItem_SelectedTabChanging;
 | 
						|
                _TabStripItem.SelectedTabChanged -= TabStripItem_SelectedTabChanged;
 | 
						|
 | 
						|
                _TabStripItem.TabStripTabColorChanged -= TabStripItem_TabStripTabColorChanged;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Event processing
 | 
						|
 | 
						|
        #region TabStripItem_TabItemOpen
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabItemOpen
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItemTabItemOpen(object sender, SuperTabStripTabItemOpenEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabItemOpen != null)
 | 
						|
                TabItemOpen(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabItemClose
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabItemClose
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabItemClose(object sender, SuperTabStripTabItemCloseEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabItemClose != null)
 | 
						|
                TabItemClose(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabRemoved
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabRemoved
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabRemoved(object sender, SuperTabStripTabRemovedEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabRemoved != null)
 | 
						|
                TabRemoved(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabMoving
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabMoving
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabMoving(object sender, SuperTabStripTabMovingEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabMoving != null)
 | 
						|
                TabMoving(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabMoved
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabMoved
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabMoved(object sender, SuperTabStripTabMovedEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabMoved != null)
 | 
						|
                TabMoved(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_GetTabItemPath
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_GetTabItemPath
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_GetTabItemPath(object sender, SuperTabGetTabItemPathEventArgs e)
 | 
						|
        {
 | 
						|
            if (GetTabItemPath != null)
 | 
						|
                GetTabItemPath(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_GetTabItemContentRectangle
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_GetTabItemContentRectangle
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_GetTabItemContentRectangle(object sender, SuperTabGetTabItemContentRectangleEventArgs e)
 | 
						|
        {
 | 
						|
            if (GetTabItemContentRectangle != null)
 | 
						|
                GetTabItemContentRectangle(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_BeforeTabDisplay
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_BeforeTabDisplay
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_BeforeTabDisplay(object sender, SuperTabStripBeforeTabDisplayEventArgs e)
 | 
						|
        {
 | 
						|
            if (BeforeTabDisplay != null)
 | 
						|
                BeforeTabDisplay(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_MeasureTabItem
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_MeasureTabItem
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_MeasureTabItem(object sender, SuperTabMeasureTabItemEventArgs e)
 | 
						|
        {
 | 
						|
            if (MeasureTabItem != null)
 | 
						|
                MeasureTabItem(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_PreRenderTabItem
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_PreRenderTabItem
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        private void TabStripItem_PreRenderTabItem(object sender, SuperTabPreRenderTabItemEventArgs e)
 | 
						|
        {
 | 
						|
            if (PreRenderTabItem != null)
 | 
						|
                PreRenderTabItem(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_PostRenderTabItem
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_PostRenderTabItem
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_PostRenderTabItem(object sender, SuperTabPostRenderTabItemEventArgs e)
 | 
						|
        {
 | 
						|
            if (PostRenderTabItem != null)
 | 
						|
                PostRenderTabItem(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_GetTabCloseBounds
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_GetTabCloseBounds
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_GetTabCloseBounds(object sender, SuperTabGetTabCloseBoundsEventArgs e)
 | 
						|
        {
 | 
						|
            if (GetTabCloseBounds != null)
 | 
						|
                GetTabCloseBounds(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_GetTabImageBounds
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_GetTabImageBounds
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_GetTabImageBounds(object sender, SuperTabGetTabImageBoundsEventArgs e)
 | 
						|
        {
 | 
						|
            if (GetTabImageBounds != null)
 | 
						|
                GetTabImageBounds(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_GetTabTextBounds
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_GetTabTextBounds
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_GetTabTextBounds(object sender, SuperTabGetTabTextBoundsEventArgs e)
 | 
						|
        {
 | 
						|
            if (GetTabTextBounds != null)
 | 
						|
                GetTabTextBounds(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabStripPaintBackground
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabStripPaintBackground
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabStripPaintBackground(object sender, SuperTabStripPaintBackgroundEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabStripPaintBackground != null)
 | 
						|
                TabStripPaintBackground(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_SelectedTabChanging
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_SelectedTabChanging
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_SelectedTabChanging(object sender, SuperTabStripSelectedTabChangingEventArgs e)
 | 
						|
        {
 | 
						|
            if (SelectedTabChanging != null)
 | 
						|
                SelectedTabChanging(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_SelectedTabChanged
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_SelectedTabChanged
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_SelectedTabChanged(object sender, SuperTabStripSelectedTabChangedEventArgs e)
 | 
						|
        {
 | 
						|
            if (SelectedTabChanged != null)
 | 
						|
                SelectedTabChanged(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region TabStripItem_TabStripTabColorChanged
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// TabStripItem_TabStripTabColorChanged
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        void TabStripItem_TabStripTabColorChanged(object sender, SuperTabStripTabColorChangedEventArgs e)
 | 
						|
        {
 | 
						|
            if (TabStripTabColorChanged != null)
 | 
						|
                TabStripTabColorChanged(this, e);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Theme Changing
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Called by StyleManager to notify control that style on manager has changed and that control should refresh its appearance if
 | 
						|
        /// its style is controlled by StyleManager.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="newStyle">New active style.</param>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void StyleManagerStyleChanged(eDotNetBarStyle newStyle)
 | 
						|
        {
 | 
						|
            if (BarFunctions.IsHandleValid(this))
 | 
						|
                this.Invalidate(true);
 | 
						|
 | 
						|
            TabDisplay.SetDefaultColorTable();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DefaultSize
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the DefaultSize
 | 
						|
        /// </summary>
 | 
						|
        protected override Size DefaultSize
 | 
						|
        {
 | 
						|
            get { return new Size(236, 25); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region RecalcLayout
 | 
						|
        private bool _RecalcLayoutInProgress = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Performs layout recalculation
 | 
						|
        /// </summary>
 | 
						|
        public override void RecalcLayout()
 | 
						|
        {
 | 
						|
            if (!this.IsHandleCreated || _RecalcLayoutInProgress) return; // Do not force creation of Control Handle by going through RecalcLayout. It breaks up the actual layout of controls when Anchor and Dock properties are used.
 | 
						|
 | 
						|
            _RecalcLayoutInProgress = true;
 | 
						|
            try
 | 
						|
            {
 | 
						|
                base.RecalcLayout();
 | 
						|
 | 
						|
                if (_IsInitializing == false)
 | 
						|
                {
 | 
						|
                    if (_TabStripItem != null)
 | 
						|
                        _TabStripItem.RecalcSize();
 | 
						|
                }
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                _RecalcLayoutInProgress = false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region EnsureVisible
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Ensures that the given tab is visible on the TabStrip
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="tab"></param>
 | 
						|
        public void EnsureVisible(SuperTabItem tab)
 | 
						|
        {
 | 
						|
            _TabStripItem.EnsureVisible(tab);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetTabFromPoint
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the SuperTabItem from the given Point
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="pt"></param>
 | 
						|
        /// <returns>SuperTabItem or null</returns>
 | 
						|
        public SuperTabItem GetTabFromPoint(Point pt)
 | 
						|
        {
 | 
						|
            return (_TabStripItem.GetTabFromPoint(pt));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetItemFromPoint
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the BaseItem from the given Point
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="pt"></param>
 | 
						|
        /// <returns>BaseItem or null</returns>
 | 
						|
        public BaseItem GetItemFromPoint(Point pt)
 | 
						|
        {
 | 
						|
            return (_TabStripItem.GetItemFromPoint(pt));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CloseTab
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Closes the given tab
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="tab"></param>
 | 
						|
        public void CloseTab(SuperTabItem tab)
 | 
						|
        {
 | 
						|
            _TabStripItem.CloseTab(tab);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SelectPreviousTab
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Selects the previous tab
 | 
						|
        /// </summary>
 | 
						|
        /// <returns>true if successful</returns>
 | 
						|
        public bool SelectPreviousTab()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.SelectPreviousTab());
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SelectNextTab
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Selects the next tab
 | 
						|
        /// </summary>
 | 
						|
        /// <returns>true if successful</returns>
 | 
						|
        public bool SelectNextTab()
 | 
						|
        {
 | 
						|
            return (_TabStripItem.SelectNextTab());
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region OnResize
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// OnResize processing
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected override void OnResize(EventArgs e)
 | 
						|
        {
 | 
						|
            base.OnResize(e);
 | 
						|
            
 | 
						|
            if (_TabStripItem != null)
 | 
						|
                _TabStripItem.VisibleTab = null;
 | 
						|
 | 
						|
            RecalcLayout();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region OnGotFocus
 | 
						|
 | 
						|
        protected override void OnGotFocus(EventArgs e)
 | 
						|
        {
 | 
						|
            base.OnGotFocus(e);
 | 
						|
 | 
						|
            if (SelectedTab != null)
 | 
						|
                SelectedTab.Refresh();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region OnLostFocus
 | 
						|
 | 
						|
        protected override void OnLostFocus(EventArgs e)
 | 
						|
        {
 | 
						|
            base.OnLostFocus(e);
 | 
						|
 | 
						|
            if (SelectedTab != null)
 | 
						|
                SelectedTab.Refresh();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region OnKeyDown
 | 
						|
 | 
						|
        protected override void OnKeyDown(KeyEventArgs e)
 | 
						|
        {
 | 
						|
            base.OnKeyDown(e);
 | 
						|
 | 
						|
            if (e.Handled == false)
 | 
						|
            {
 | 
						|
                switch (e.KeyData)
 | 
						|
                {
 | 
						|
                    case Keys.Tab:
 | 
						|
                        Parent.SelectNextControl(this, true, true, true, true);
 | 
						|
 | 
						|
                        if (SelectedTab != null)
 | 
						|
                            SelectedTab.Refresh();
 | 
						|
                        break;
 | 
						|
 | 
						|
                    case Keys.Tab | Keys.Shift:
 | 
						|
                        Parent.SelectNextControl(this, false, true, true, true);
 | 
						|
 | 
						|
                        if (SelectedTab != null)
 | 
						|
                            SelectedTab.Refresh();
 | 
						|
                        break;
 | 
						|
 | 
						|
                    case Keys.Left:
 | 
						|
                    case Keys.Right:
 | 
						|
                    case Keys.Up:
 | 
						|
                    case Keys.Down:
 | 
						|
                        switch (GetKeyDir(e.KeyData))
 | 
						|
                        {
 | 
						|
                            case KeyDir.Previous:
 | 
						|
                                if (SelectPreviousTab() == true)
 | 
						|
                                    e.Handled = true;
 | 
						|
                                break;
 | 
						|
 | 
						|
                            case KeyDir.Next:
 | 
						|
                                if (SelectNextTab() == true)
 | 
						|
                                    e.Handled = true;
 | 
						|
                                break;
 | 
						|
                        }
 | 
						|
                        break;
 | 
						|
 | 
						|
                    case Keys.Home:
 | 
						|
                        SuperTabItem ftab = TabStripItem.FirstVisibleTab;
 | 
						|
 | 
						|
                        if (ftab != null)
 | 
						|
                        {
 | 
						|
                            TabStripItem.SelectTab(ftab, eEventSource.Keyboard);
 | 
						|
                            e.Handled = true;
 | 
						|
                        }
 | 
						|
                        break;
 | 
						|
 | 
						|
                    case Keys.End:
 | 
						|
                        SuperTabItem ltab = TabStripItem.LastVisibleTab;
 | 
						|
 | 
						|
                        if (ltab != null)
 | 
						|
                        {
 | 
						|
                            TabStripItem.SelectTab(ltab, eEventSource.Keyboard);
 | 
						|
                            e.Handled = true;
 | 
						|
                        }
 | 
						|
                        break;
 | 
						|
                }
 | 
						|
 | 
						|
                if (e.Handled == true)
 | 
						|
                    Focus();            
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #region GetKeyDir
 | 
						|
 | 
						|
        private enum KeyDir
 | 
						|
        {
 | 
						|
            None,
 | 
						|
            Previous,
 | 
						|
            Next
 | 
						|
        }
 | 
						|
 | 
						|
        private KeyDir GetKeyDir(Keys keys)
 | 
						|
        {
 | 
						|
            switch (keys)
 | 
						|
            {
 | 
						|
                case Keys.Left:
 | 
						|
                    if (TabStripItem.HorizontalText == false)
 | 
						|
                    {
 | 
						|
                        if ((TabStripItem.TabAlignment == eTabStripAlignment.Left && TabStripItem.RotateVerticalText == false) ||
 | 
						|
                            (TabStripItem.TabAlignment == eTabStripAlignment.Right && TabStripItem.RotateVerticalText == true))
 | 
						|
                        {
 | 
						|
                            return (KeyDir.Next);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
 | 
						|
                    return (KeyDir.Previous);
 | 
						|
 | 
						|
                case Keys.Right:
 | 
						|
                    if (TabStripItem.HorizontalText == false)
 | 
						|
                    {
 | 
						|
                        if ((TabStripItem.TabAlignment == eTabStripAlignment.Left && TabStripItem.RotateVerticalText == false) ||
 | 
						|
                            (TabStripItem.TabAlignment == eTabStripAlignment.Right && TabStripItem.RotateVerticalText == true))
 | 
						|
                        {
 | 
						|
                            return (KeyDir.Previous);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    return (KeyDir.Next);
 | 
						|
 | 
						|
                case Keys.Up:
 | 
						|
                    return (KeyDir.Previous);
 | 
						|
 | 
						|
                case Keys.Down:
 | 
						|
                    return (KeyDir.Next);
 | 
						|
            }
 | 
						|
 | 
						|
            return (KeyDir.None);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IsInputKey
 | 
						|
 | 
						|
        protected override bool IsInputKey(Keys keyData)
 | 
						|
        {
 | 
						|
            switch (keyData)
 | 
						|
            {
 | 
						|
                case Keys.Right:
 | 
						|
                case Keys.Left:
 | 
						|
                case Keys.Up:
 | 
						|
                case Keys.Down:
 | 
						|
                case Keys.Tab:
 | 
						|
                    return true;
 | 
						|
            }
 | 
						|
 | 
						|
            return (base.IsInputKey(keyData));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Mnemonic Processing
 | 
						|
        protected override bool ProcessItemMnemonicKey(BaseItem item)
 | 
						|
        {
 | 
						|
            if (item != null && item.Visible && item.GetEnabled())
 | 
						|
            {
 | 
						|
                if (item is SuperTabItem)
 | 
						|
                {
 | 
						|
                    SuperTabItem tab = (SuperTabItem)item;
 | 
						|
                    SuperTabControl tabControl = Parent as SuperTabControl;
 | 
						|
                    if (tabControl != null && !tabControl.ContainsFocus) return false;
 | 
						|
                    if (!tab.IsSelected)
 | 
						|
                    {
 | 
						|
                        _TabStripItem.SelectTab((SuperTabItem)item, eEventSource.Keyboard);
 | 
						|
                        return true;
 | 
						|
                    }
 | 
						|
                    return false;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return base.ProcessItemMnemonicKey(item);
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ISupportInitialize Members
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// BeginInit
 | 
						|
        /// </summary>
 | 
						|
        void ISupportInitialize.BeginInit()
 | 
						|
        {
 | 
						|
            _IsInitializing = true;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// EndInit
 | 
						|
        /// </summary>
 | 
						|
        void ISupportInitialize.EndInit()
 | 
						|
        {
 | 
						|
            _IsInitializing = false;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region KeyTips
 | 
						|
        public override bool ProcessMnemonicEx(char charCode)
 | 
						|
        {
 | 
						|
            bool processed = base.ProcessMnemonicEx(charCode);
 | 
						|
            if (processed)
 | 
						|
            {
 | 
						|
                if (ShowKeyTips)
 | 
						|
                    ShowKeyTips = false;
 | 
						|
 | 
						|
                if (ApplicationButton is ApplicationButton)
 | 
						|
                    ((ApplicationButton)ApplicationButton).BackstageMnemonicProcessed(charCode);
 | 
						|
 | 
						|
                else if (ApplicationButton is Metro.MetroAppButton)
 | 
						|
                    ((Metro.MetroAppButton)ApplicationButton).BackstageMnemonicProcessed(charCode);
 | 
						|
            }
 | 
						|
 | 
						|
            return processed;
 | 
						|
        }
 | 
						|
 | 
						|
        protected override Rectangle GetKeyTipRectangle(Graphics g, BaseItem item, Font font, string keyTip)
 | 
						|
        {
 | 
						|
            if (ApplicationButton != null)
 | 
						|
            {
 | 
						|
                Size padding = KeyTipsPainter.KeyTipsPadding;
 | 
						|
                Size size = TextDrawing.MeasureString(g, keyTip, font);
 | 
						|
                size.Width += padding.Width;
 | 
						|
                size.Height += padding.Height;
 | 
						|
 | 
						|
                Rectangle ib = item.DisplayRectangle;
 | 
						|
                Rectangle r;
 | 
						|
                if (item is SuperTabItem)
 | 
						|
                    r = new Rectangle(ib.X + 2, ib.Y, size.Width, size.Height);
 | 
						|
                else
 | 
						|
                    r = new Rectangle(ib.X + 24, ib.Y - 2, size.Width, size.Height);
 | 
						|
 | 
						|
                return r;
 | 
						|
            }
 | 
						|
 | 
						|
            return base.GetKeyTipRectangle(g, item, font, keyTip);
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Dispose
 | 
						|
 | 
						|
        protected override void Dispose(bool disposing)
 | 
						|
        {
 | 
						|
            if (disposing == true && IsDisposed == false)
 | 
						|
                HookEvents(false);
 | 
						|
 | 
						|
            base.Dispose(disposing);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif |