Beispiel #1
0
		public static bool IsDockStateDocked(DockState dockState)
		{
			return (dockState == DockState.DockLeft ||
				dockState == DockState.DockRight ||
				dockState == DockState.DockTop ||
				dockState == DockState.DockBottom);
		}
 /// <summary>
 /// Setup constructor with non-default default dock state (if that makes sense...)
 /// </summary>
 /// <param name="group">Window group</param>
 /// <param name="menuName">Window name, decorated with an ampersand to designate the menu shortcut key </param>
 /// <param name="create">Window creation function</param>
 /// <param name="defaultDockState">Default dock state</param>
 public WorkspaceWindowInfo( string group, string menuName, FunctionDelegates.Function<Control> create, DockState defaultDockState )
 {
     m_Group = group;
     m_Name = menuName;
     m_Create = create;
     m_DefaultDockState = defaultDockState;
 }
Beispiel #3
0
        //public O2DockContent(Control controlToLoad, DockState controlDockState, string controlName)
        /*public O2DockContent(Control controlToLoad)
            : this(controlToLoad, DockState.Document)
        {
        }

        public O2DockContent(Control controlToLoad, DockState controlDockState)
            : this(controlToLoad, controlDockState, controlToLoad.Name)
        {
        }*/
        /// <summary>
        /// _note this will not create the Control, it expects a type and the control creation should be done by the form host 
        /// (this way we avoid the multi thread problems of this control being created on a diferent thread from the main hosting Form
        /// </summary>
        /// <param name="typeOfControlToLoad"></param>
        /// <param name="controlDockState"></param>
        /// <param name="controlName"></param>
        public O2DockContent(Type typeOfControlToLoad, DockState controlDockState, string controlName)
        {
            type = typeOfControlToLoad;
            dockContent = new GenericDockContent {Text = controlName};
            dockState = controlDockState;
            name = controlName;
        }
Beispiel #4
0
		public static bool IsValidRestoreState( DockState state ) {
			if( state == DockState.DockLeft || state == DockState.DockRight || state == DockState.DockTop ||
				state == DockState.DockBottom || state == DockState.Document )
				return true;
			else
				return false;
		}
Beispiel #5
0
		internal DockWindow(DockPanel dockPanel, DockState dockState) {
			m_nestedPanes = new NestedPaneCollection(this);
			m_dockPanel = dockPanel;
			m_dockState = dockState;
			Visible = false;

			SuspendLayout();

			if (DockState == DockState.DockLeft || DockState == DockState.DockRight ||
				DockState == DockState.DockTop || DockState == DockState.DockBottom) {
				m_splitter = new SplitterControl();
				Controls.Add(m_splitter);
			}

			if (DockState == DockState.DockLeft) {
				Dock = DockStyle.Left;
				m_splitter.Dock = DockStyle.Right;
			} else if (DockState == DockState.DockRight) {
				Dock = DockStyle.Right;
				m_splitter.Dock = DockStyle.Left;
			} else if (DockState == DockState.DockTop) {
				Dock = DockStyle.Top;
				m_splitter.Dock = DockStyle.Bottom;
			} else if (DockState == DockState.DockBottom) {
				Dock = DockStyle.Bottom;
				m_splitter.Dock = DockStyle.Top;
			} else if (DockState == DockState.Document) {
				Dock = DockStyle.Fill;
			}

			ResumeLayout();
		}
Beispiel #6
0
 //private DockPanel _DockPanel;
 //private DockState _DockState;
 public EditorContainer(Editor editor, DockPanel dock, DockState dockState = DockState.Document)
 {
     Editor = editor;
     Editor.UndoRedoStateChanged += Editor_UndoRedoStateChanged;
     Editor.TextChangedDelayed += Editor_TextChangedDelayed;
     Splitter = new Splitter() { Dock = DockStyle.Right, BackColor = SystemColors.ControlDarkDark, Width = 4 };
     DocumentMap = new DocumentMap() {
         Target = editor,
         Dock = DockStyle.Right,
         Width = DocumentMapInitialWidth,
         MinimumSize = new Size(DocumentMapMinimumWidth, 0),
         Scale = DocumentMapInitialWidth * DocumentMapScaleFactor,
         BackColor = EditorSyntax.Styles.Background,
         ForeColor = Color.FromArgb(0, 122, 204)
     };
     DocumentMap.DoubleClick += DocumentMap_DoubleClick;
     DocumentMap.MouseWheel += DocumentMap_MouseWheel;
     Splitter.SplitterMoved += Splitter_SplitterMoved;
     Name = Editor.File.FileName;
     ToolTipText = Editor.File.Path;
     Controls.Add(Editor);
     Controls.Add(Splitter);
     Controls.Add(DocumentMap);
     UpdateText(true);
     FormClosing += EditorContainer_FormClosing;
     FormClosed += EditorContainer_FormClosed;
     System.Threading.Thread.Sleep(10);
     dock.Invoke(new Action(() => { Show(dock, dockState); }));
 }
Beispiel #7
0
 public static bool IsDockWindowState(DockState state)
 {
     if (state == DockState.DockTop || state == DockState.DockBottom || state == DockState.DockLeft ||
         state == DockState.DockRight || state == DockState.Document)
         return true;
     return false;
 }
        public static bool IsDockStateValid(DockState dockState, DockAreas dockableAreas)
        {
            if (((dockableAreas & DockAreas.Float) == 0) &&
                (dockState == DockState.Float))
            {
                return false;
            }
            if (((dockableAreas & DockAreas.Document) == 0) &&
                (dockState == DockState.Document))
            {
                return false;
            }
            if (((dockableAreas & DockAreas.DockLeft) == 0) &&
                (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide))
            {
                return false;
            }
            if (((dockableAreas & DockAreas.DockRight) == 0) &&
                (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide))
            {
                return false;
            }
            if (((dockableAreas & DockAreas.DockTop) == 0) &&
                (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide))
            {
                return false;
            }
            if (((dockableAreas & DockAreas.DockBottom) == 0) &&
                (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide))
            {
                return false;
            }

            return true;
        }
 public UIToolBarSettings(string name, int priority, Bitmap icon, DockState dockState = DockState.DockTopAutoHide, bool mainToolbar=false)
 {
     Name = name;
     Priority = priority;
     Icon = icon;
     DockState = dockState;
     MainToolbar = mainToolbar;
 }
Beispiel #10
0
 private bool IsDockStateAutoHide(DockState dockState)
 {
     if (((dockState != DockState.DockLeftAutoHide) && (dockState != DockState.DockRightAutoHide)) && ((dockState != DockState.DockTopAutoHide) && (dockState != DockState.DockBottomAutoHide)))
     {
         return false;
     }
     return true;
 }
Beispiel #11
0
 public static bool IsDockStateAutoHide(DockState dockState)
 {
     if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide ||
         dockState == DockState.DockTopAutoHide || dockState == DockState.DockBottomAutoHide)
         return true;
     else
         return false;
 }
Beispiel #12
0
 public void AddForm(DockContent dc, DockState ds)
 {
     if (dc == null)
         return;
     //FIXME: set 'dc.ShowHint = ds' without failing from no active content
     dc.ShowHint = DockState.Document;
     dc.MdiParent = this;
     dc.Show(dockPanel1);
 }
		internal AutoHidePaneCollection(DockPanel panel, DockState dockState)
		{
			m_dockPanel = panel;
			m_states = new AutoHideStateCollection();
			States[DockState.DockTopAutoHide].Selected = (dockState==DockState.DockTopAutoHide);
			States[DockState.DockBottomAutoHide].Selected = (dockState==DockState.DockBottomAutoHide);
			States[DockState.DockLeftAutoHide].Selected = (dockState==DockState.DockLeftAutoHide);
			States[DockState.DockRightAutoHide].Selected = (dockState==DockState.DockRightAutoHide);
		}
Beispiel #14
0
 public static bool setDockState(string name, DockState state)
 {
     if (DI.dO2LoadedO2DockContent.ContainsKey(name))
     {
         DI.dO2LoadedO2DockContent[name].dockContent.DockState = state;
         return true;
     }
     return false;
 }
Beispiel #15
0
 public static bool IsDockRight(DockState dockState)
 {
     if (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
Beispiel #16
0
 public static bool IsDockBottom(DockState dockState)
 {
     if (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
Beispiel #17
0
 /// <include file='CodeDoc/AutoHideStripBase.xml' path='//CodeDoc/Class[@name="AutoHideStripBase"]/Method[@name="GetPanes(DockState)"]/*'/>
 protected internal AutoHidePaneCollection GetPanes(DockState dockState) {
   if (dockState == DockState.DockTopAutoHide)
     return PanesTop;
   else if (dockState == DockState.DockBottomAutoHide)
     return PanesBottom;
   else if (dockState == DockState.DockLeftAutoHide)
     return PanesLeft;
   else if (dockState == DockState.DockRightAutoHide)
     return PanesRight;
   else
     throw new IndexOutOfRangeException();
 }
		public AutoHideState this[DockState dockState]
		{
			get
			{
				for (int i=0; i<m_states.Length; i++)
				{
					if (m_states[i].DockState == dockState)
						return m_states[i];
				}
				throw new IndexOutOfRangeException();
			}
		}
        public ApplicationDockedWindow()
        {
            InitializeComponent();
            Icon = ApplicationIcons.Application;
            dock_state = DockState.Document;
            HideOnClose = true;

            activated = x => { };
            deactivated = x => { };
            closed = x => { };
            closing = x => { };
        }
Beispiel #20
0
        internal bool IsDockStateValid(DockState dockState)
        {
            foreach (var pane in NestedPanes)
            {
                foreach (var content in pane.Contents)
                {
                    if (!DockHelper.IsDockStateValid(dockState, content.DockHandler.DockAreas))
                        return false;
                }
            }

            return true;
        }
Beispiel #21
0
        public ViewGroup(DockingBase dockingOwner, DockState visibleOwnerDockState, DockState validDockStates)
        {
            if (dockingOwner == null)
                throw new ArgumentNullException("dockingOwner", "dockingOwner is null.");

            _validDockStates = validDockStates;
            DockingOwner = dockingOwner;
            DockState = visibleOwnerDockState;

            _viewsInternal = new ObservableCollection<View>();
            Views = new ReadOnlyObservableCollection<View>(_viewsInternal);
            _viewsInternal.CollectionChanged += OnViewsChangedInternal;
        }
Beispiel #22
0
 public Dock(int iconNumber)
 {
     iconNumber_ = iconNumber;
     hidingPoint_ = new Vector2(-58f, 42f);
     state_ = DockState.hide;
     displayTime = 0;
     dockBoundX_ = 0;
     for (int i = 0; i < iconNumber; i++)
     {
         icons_.Add(new Icon(i, hidingPoint_, 1 << i));
     }
     //initial state: move photo
     touchState = PieMenu.PieMode.DragPhoto;
 }
Beispiel #23
0
		private void InternalConstruct(IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show)
		{
			if (dockState == DockState.Hidden || dockState == DockState.Unknown)
				throw new ArgumentException(Strings.DockPane_SetDockState_InvalidState);

			if (content == null)
				throw new ArgumentNullException(Strings.DockPane_Constructor_NullContent);

			if (content.DockHandler.DockPanel == null)
				throw new ArgumentException(Strings.DockPane_Constructor_NullDockPanel);


			SuspendLayout();
			SetStyle(ControlStyles.Selectable, false);

			m_isFloat = (dockState == DockState.Float);

			m_contents = new DockContentCollection();
			m_displayingContents = new DockContentCollection(this);
			m_dockPanel = content.DockHandler.DockPanel;
			m_dockPanel.AddPane(this);

			m_splitter = new SplitterControl(this);

			m_nestedDockingStatus = new NestedDockingStatus(this);

			m_captionControl = DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this);
			m_tabStripControl = DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this);
			Controls.AddRange(new Control[] {	m_captionControl, m_tabStripControl	});
			
			DockPanel.SuspendLayout(true);
			if (flagBounds)
				FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds);
			else if (prevPane != null)
				DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion);

			SetDockState(dockState);
			if (show)
				content.DockHandler.Pane = this;
			else if (this.IsFloat)
				content.DockHandler.FloatPane = this;
			else
				content.DockHandler.PanelPane = this;

			ResumeLayout();
			DockPanel.ResumeLayout(true, true);
		}
 public void Execute()
 {
     if (_form.Visible)
     {
         dockState = _form.DockState;
         _form.Hide();
         _form.SaveCurrentFile();
         ((DockPanel)(_workbench as Form1).Controls["MainDockPanel"]).ActiveDocumentChanged -= ActiveDocumentChanged;
     }
     else
     {
         DockPanel mdp = (DockPanel)(_workbench as Form1).Controls["MainDockPanel"];
         _form.Show(mdp, dockState);
         ActiveDocumentChanged(null, null);
         ((DockPanel)(_workbench as Form1).Controls["MainDockPanel"]).ActiveDocumentChanged += ActiveDocumentChanged;
     }
 }
Beispiel #25
0
		/// <include file='CodeDoc\DockWindowCollection.xml' path='//CodeDoc/Class[@name="DockWindowCollection"]/Property[@name="Item"]/*'/>>
		public DockWindow this [DockState dockState]
		{
			get
			{
				if (dockState == DockState.Document)
					return InnerList[0] as DockWindow;
				else if (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide)
					return InnerList[1] as DockWindow;
				else if (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide)
					return InnerList[2] as DockWindow;
				else if (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide)
					return InnerList[3] as DockWindow;
				else if (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide)
					return InnerList[4] as DockWindow;

				throw (new ArgumentOutOfRangeException());
			}
		}
Beispiel #26
0
 private AutoHideMode MapDockStateToAutoHideMode( DockState state )
 {
     switch( state )
     {
     case DockState.Floating:
         return AutoHideMode.None;
     case DockState.LeftDock:
         return AutoHideMode.CollapseLeft;
     case DockState.TopDock:
         return AutoHideMode.CollapseTop;
     case DockState.RightDock:
         return AutoHideMode.CollapseRight;
     case DockState.BottomDock:
         return AutoHideMode.CollapseBottom;
     default:
         throw new InvalidOperationException( string.Format(
                         "Invalid DockState value: {0}", _docker.State ) );
     }
 }
Beispiel #27
0
		public static DockState ToggleAutoHideState( DockState state ) {
			if( state == DockState.DockLeft )
				return DockState.DockLeftAutoHide;
			else if( state == DockState.DockRight )
				return DockState.DockRightAutoHide;
			else if( state == DockState.DockTop )
				return DockState.DockTopAutoHide;
			else if( state == DockState.DockBottom )
				return DockState.DockBottomAutoHide;
			else if( state == DockState.DockLeftAutoHide )
				return DockState.DockLeft;
			else if( state == DockState.DockRightAutoHide )
				return DockState.DockRight;
			else if( state == DockState.DockTopAutoHide )
				return DockState.DockTop;
			else if( state == DockState.DockBottomAutoHide )
				return DockState.DockBottom;
			else
				return state;
		}
Beispiel #28
0
 public Dock(int iconNumber)
 {
     iconNumber_ = iconNumber;
     hidingPoint_ = new Vector2(-58f, 42f);
     state_ = DockState.hide;
     displayTime = 0;
     //if (state_ == DockState.show)
     //{
     //    dockBoundX_ = hideThreshold_;
     //    for (int i = 0; i < iconNumber - 1; i++)
     //    {
     //        icons_.Add(new Icon(i, new Vector2(42f, (float)(84 * i + 42)), 1 << i));
     //    }
     //    icons_.Add(new Icon(iconNumber - 1, new Vector2(42f, (float)(84 * iconNumber - 42)), 0));
     //}
     //else
     //{
         dockBoundX_ = 0;
         for (int i = 0; i < iconNumber; i++)
         {
             icons_.Add(new Icon(i, hidingPoint_, 1 << i));
         }
     //}
 }
Beispiel #29
0
        internal void SetDockState(bool isHidden, DockState visibleState, DockPane oldPane)
        {
            if (IsSuspendSetDockState)
            {
                return;
            }

            if (DockPanel == null && visibleState != DockState.Unknown)
            {
                throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_NullPanel);
            }

            if (visibleState == DockState.Hidden || (visibleState != DockState.Unknown && !IsDockStateValid(visibleState)))
            {
                throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_InvalidState);
            }

            DockPanel dockPanel = DockPanel;

            if (dockPanel != null)
            {
                dockPanel.SuspendLayout(true);
            }

            SuspendSetDockState();

            DockState oldDockState = DockState;

            if (m_isHidden != isHidden || oldDockState == DockState.Unknown)
            {
                m_isHidden = isHidden;
            }
            m_visibleState = visibleState;
            m_dockState    = isHidden ? DockState.Hidden : visibleState;

            //Remove hidden content (shown content is added last so removal is done first to invert the operation)
            bool hidingContent = (DockState == DockState.Hidden) || (DockState == DockState.Unknown) || DockHelper.IsDockStateAutoHide(DockState);

            if (PatchController.EnableContentOrderFix == true && oldDockState != DockState)
            {
                if (hidingContent)
                {
                    if (!Win32Helper.IsRunningOnMono)
                    {
                        DockPanel.ContentFocusManager.RemoveFromList(Content);
                    }
                }
            }

            if (visibleState == DockState.Unknown)
            {
                Pane = null;
            }
            else
            {
                m_isFloat = (m_visibleState == DockState.Float);

                if (Pane == null)
                {
                    Pane = DockPanel.Theme.Extender.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                }
                else if (Pane.DockState != visibleState)
                {
                    if (Pane.Contents.Count == 1)
                    {
                        Pane.SetDockState(visibleState);
                    }
                    else
                    {
                        Pane = DockPanel.Theme.Extender.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                    }
                }
            }

            if (Form.ContainsFocus)
            {
                if (DockState == DockState.Hidden || DockState == DockState.Unknown)
                {
                    if (!Win32Helper.IsRunningOnMono)
                    {
                        DockPanel.ContentFocusManager.GiveUpFocus(Content);
                    }
                }
            }

            SetPaneAndVisible(Pane);

            if (oldPane != null && !oldPane.IsDisposed && oldDockState == oldPane.DockState)
            {
                RefreshDockPane(oldPane);
            }

            if (Pane != null && DockState == Pane.DockState)
            {
                if ((Pane != oldPane) ||
                    (Pane == oldPane && oldDockState != oldPane.DockState))
                {
                    // Avoid early refresh of hidden AutoHide panes
                    if ((Pane.DockWindow == null || Pane.DockWindow.Visible || Pane.IsHidden) && !Pane.IsAutoHide)
                    {
                        RefreshDockPane(Pane);
                    }
                }
            }

            if (oldDockState != DockState)
            {
                if (PatchController.EnableContentOrderFix == true)
                {
                    //Add content that is being shown
                    if (!hidingContent)
                    {
                        if (!Win32Helper.IsRunningOnMono)
                        {
                            DockPanel.ContentFocusManager.AddToList(Content);
                        }
                    }
                }
                else
                {
                    if (DockState == DockState.Hidden || DockState == DockState.Unknown ||
                        DockHelper.IsDockStateAutoHide(DockState))
                    {
                        if (!Win32Helper.IsRunningOnMono)
                        {
                            DockPanel.ContentFocusManager.RemoveFromList(Content);
                        }
                    }
                    else if (!Win32Helper.IsRunningOnMono)
                    {
                        DockPanel.ContentFocusManager.AddToList(Content);
                    }
                }

                ResetAutoHidePortion(oldDockState, DockState);
                OnDockStateChanged(EventArgs.Empty);
            }

            ResumeSetDockState();

            if (dockPanel != null)
            {
                dockPanel.ResumeLayout(true, true);
            }
        }
Beispiel #30
0
 private void ResumeRefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState)
 {
     ResumeRefreshStateChange();
     RefreshStateChange(oldContainer, oldDockState);
 }
 internal Rectangle GetTabStripRectangle(DockState dockState)
 {
     return(AutoHideStripControl.GetTabStripRectangle(dockState));
 }
Beispiel #32
0
        private void RefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState)
        {
            if (IsRefreshStateChangeSuspended)
            {
                return;
            }

            SuspendRefreshStateChange();

            DockPanel.SuspendLayout(true);

            var contentFocused = GetFocusedContent();

            if (contentFocused != null)
            {
                DockPanel.SaveFocus();
            }
            SetParent();

            ActiveContent?.DockHandler.SetDockState(ActiveContent.DockHandler.IsHidden, DockState, ActiveContent.DockHandler.Pane);
            foreach (var content in Contents.Where(content => content.DockHandler.Pane == this))
            {
                content.DockHandler.SetDockState(content.DockHandler.IsHidden, DockState, content.DockHandler.Pane);
            }

            var oldContainerControl = (Control)oldContainer;

            if (oldContainer?.DockState == oldDockState && !oldContainerControl.IsDisposed)
            {
                oldContainerControl.PerformLayout();
            }
            if (DockHelper.IsDockStateAutoHide(oldDockState))
            {
                DockPanel.RefreshActiveAutoHideContent();
            }

            if (NestedPanesContainer.DockState == DockState)
            {
                ((Control)NestedPanesContainer).PerformLayout();
            }
            if (DockHelper.IsDockStateAutoHide(DockState))
            {
                DockPanel.RefreshActiveAutoHideContent();
            }

            if (DockHelper.IsDockStateAutoHide(oldDockState) ||
                DockHelper.IsDockStateAutoHide(DockState))
            {
                DockPanel.RefreshAutoHideStrip();
                DockPanel.PerformLayout();
            }

            ResumeRefreshStateChange();

            contentFocused?.DockHandler.Activate();

            DockPanel.ResumeLayout(true, true);

            if (oldDockState != DockState)
            {
                OnDockStateChanged(EventArgs.Empty);
            }
        }
Beispiel #33
0
 public DockPane CreateDockPane(IDockContent content, DockState visibleState, bool show)
 {
     return(new DockPane(content, visibleState, show));
 }
Beispiel #34
0
 public AutoHideState(DockState dockState)
 {
     m_dockState = dockState;
 }
Beispiel #35
0
 public static Syncfusion.Windows.Tools.Controls.DockState ToSfDockState(this DockState dockState) =>
 dockState switch
 {
Beispiel #36
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VS2012DockWindow"/> class.
 /// </summary>
 /// <param name="dockPanel">The dock panel.</param>
 /// <param name="dockState">State of the dock.</param>
 public VS2012DockWindow(DockPanel dockPanel, DockState dockState) : base(dockPanel, dockState)
 {
 }
Beispiel #37
0
 /// <summary>
 /// This function allows DockContents to place themselves within the
 /// DockPanel of the main IDE.
 /// </summary>
 /// <param name="dc">The DockContent to place in the IDE.</param>
 /// <param name="state">Where and how the DockContent should be placed.</param>
 public void ShowDock(DockContent dc, DockState state)
 {
     dc.Show(this.c_DockWorkspace, state);
 }
Beispiel #38
0
 public void Show(DockPanel dockPanel, DockState dockState)
 {
     DockHandler.Show(dockPanel, dockState);
 }
Beispiel #39
0
        private void InternalConstruct(IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show)
        {
            if (dockState == DockState.Hidden || dockState == DockState.Unknown)
            {
                throw new ArgumentException(Strings.DockPane_SetDockState_InvalidState);
            }

            if (content == null)
            {
                throw new ArgumentNullException(Strings.DockPane_Constructor_NullContent);
            }

            if (content.DockHandler.DockPanel == null)
            {
                throw new ArgumentException(Strings.DockPane_Constructor_NullDockPanel);
            }


            SuspendLayout();
            SetStyle(ControlStyles.Selectable, false);

            IsFloat = dockState == DockState.Float;

            Contents           = new DockContentCollection();
            DisplayingContents = new DockContentCollection(this);
            DockPanel          = content.DockHandler.DockPanel;
            DockPanel.AddPane(this);

            Splitter = content.DockHandler.DockPanel.Extender.DockPaneSplitterControlFactory.CreateSplitterControl(this);

            NestedDockingStatus = new NestedDockingStatus(this);

            CaptionControl  = DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this);
            TabStripControl = DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this);
            Controls.AddRange(new Control[] { CaptionControl, TabStripControl });

            DockPanel.SuspendLayout(true);
            if (flagBounds)
            {
                FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds);
            }
            else if (prevPane != null)
            {
                DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion);
            }

            SetDockState(dockState);
            if (show)
            {
                content.DockHandler.Pane = this;
            }
            else if (IsFloat)
            {
                content.DockHandler.FloatPane = this;
            }
            else
            {
                content.DockHandler.PanelPane = this;
            }

            ResumeLayout();
            DockPanel.ResumeLayout(true, true);
        }
        private void DrawTab(Graphics g, TabVS2003 tab)
        {
            Rectangle rectTab = GetTabRectangle(tab);

            if (rectTab.IsEmpty)
            {
                return;
            }

            DockState    dockState = tab.Content.DockHandler.DockState;
            IDockContent content   = tab.Content;

            OnBeginDrawTab(tab);

            Brush brushTabBackGround = BrushTabBackground;
            Pen   penTabBorder       = PenTabBorder;
            Brush brushTabText       = BrushTabText;

            g.FillRectangle(brushTabBackGround, rectTab);

            g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Left, rectTab.Bottom);
            g.DrawLine(penTabBorder, rectTab.Right, rectTab.Top, rectTab.Right, rectTab.Bottom);
            if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide)
            {
                g.DrawLine(penTabBorder, rectTab.Left, rectTab.Bottom, rectTab.Right, rectTab.Bottom);
            }
            else
            {
                g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Right, rectTab.Top);
            }

            // Set no rotate for drawing icon and text
            Matrix matrixRotate = g.Transform;

            g.Transform = MatrixIdentity;

            // Draw the icon
            Rectangle rectImage = rectTab;

            rectImage.X += ImageGapLeft;
            rectImage.Y += ImageGapTop;
            int imageHeight = rectTab.Height - ImageGapTop - ImageGapBottom;
            int imageWidth  = ImageWidth;

            if (imageHeight > ImageHeight)
            {
                imageWidth = ImageWidth * (imageHeight / ImageHeight);
            }
            rectImage.Height = imageHeight;
            rectImage.Width  = imageWidth;
            rectImage        = GetTransformedRectangle(dockState, rectImage);
            g.DrawIcon(((Form)content).Icon, rectImage);

            // Draw the text
            if (content == content.DockHandler.Pane.ActiveContent)
            {
                Rectangle rectText = rectTab;
                rectText.X     += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText        = GetTransformedRectangle(dockState, rectText);
                if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
                {
                    g.DrawString(content.DockHandler.TabText, Font, brushTabText, rectText, StringFormatTabVertical);
                }
                else
                {
                    g.DrawString(content.DockHandler.TabText, Font, brushTabText, rectText, StringFormatTabHorizontal);
                }
            }

            // Set rotate back
            g.Transform = matrixRotate;

            OnEndDrawTab(tab);
        }
 private Rectangle GetLogicalTabStripRectangle(DockState dockState)
 {
     return(GetLogicalTabStripRectangle(dockState, false));
 }
        private Rectangle GetLogicalTabStripRectangle(DockState dockState, bool transformed)
        {
            if (!DockHelper.IsDockStateAutoHide(dockState))
            {
                return(Rectangle.Empty);
            }

            int leftPanes   = GetPanes(DockState.DockLeftAutoHide).Count;
            int rightPanes  = GetPanes(DockState.DockRightAutoHide).Count;
            int topPanes    = GetPanes(DockState.DockTopAutoHide).Count;
            int bottomPanes = GetPanes(DockState.DockBottomAutoHide).Count;

            int x, y, width, height;

            height = MeasureHeight();
            if (dockState == DockState.DockLeftAutoHide && leftPanes > 0)
            {
                x     = 0;
                y     = (topPanes == 0) ? 0 : height;
                width = Height - (topPanes == 0 ? 0 : height) - (bottomPanes == 0 ? 0 : height);
            }
            else if (dockState == DockState.DockRightAutoHide && rightPanes > 0)
            {
                x = Width - height;
                if (leftPanes != 0 && x < height)
                {
                    x = height;
                }
                y     = (topPanes == 0) ? 0 : height;
                width = Height - (topPanes == 0 ? 0 : height) - (bottomPanes == 0 ? 0 : height);
            }
            else if (dockState == DockState.DockTopAutoHide && topPanes > 0)
            {
                x     = leftPanes == 0 ? 0 : height;
                y     = 0;
                width = Width - (leftPanes == 0 ? 0 : height) - (rightPanes == 0 ? 0 : height);
            }
            else if (dockState == DockState.DockBottomAutoHide && bottomPanes > 0)
            {
                x = leftPanes == 0 ? 0 : height;
                y = Height - height;
                if (topPanes != 0 && y < height)
                {
                    y = height;
                }
                width = Width - (leftPanes == 0 ? 0 : height) - (rightPanes == 0 ? 0 : height);
            }
            else
            {
                return(Rectangle.Empty);
            }

            if (!transformed)
            {
                return(new Rectangle(x, y, width, height));
            }
            else
            {
                return(GetTransformedRectangle(dockState, new Rectangle(x, y, width, height)));
            }
        }
Beispiel #43
0
        internal void SetDockState(bool isHidden, DockState visibleState, DockPane oldPane)
        {
            if (IsSuspendSetDockState)
            {
                return;
            }

            if (DockPanel == null && visibleState != DockState.Unknown)
            {
                throw new InvalidOperationException(ResourceHelper.GetString("IDockContent.SetDockState.NullPanel"));
            }

            if (visibleState == DockState.Hidden || (visibleState != DockState.Unknown && !IsDockStateValid(visibleState)))
            {
                throw new InvalidOperationException(ResourceHelper.GetString("IDockContent.SetDockState.InvalidState"));
            }

            SuspendSetDockState();

            DockState oldDockState = DockState;

            if (_isHidden != isHidden || oldDockState == DockState.Unknown)
            {
                _isHidden = isHidden;
            }
            _visibleState = visibleState;
            _dockState    = isHidden ? DockState.Hidden : visibleState;

            if (visibleState == DockState.Unknown)
            {
                Pane = null;
            }
            else
            {
                _isFloat = (_visibleState == DockState.Float);

                if (Pane == null)
                {
                    Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                }
                else if (Pane.DockState != visibleState)
                {
                    if (Pane.Contents.Count == 1)
                    {
                        Pane.SetDockState(visibleState);
                    }
                    else
                    {
                        Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                    }
                }
            }

            SetPane(Pane);
            SetVisible();

            if (oldPane != null && !oldPane.IsDisposed && oldDockState == oldPane.DockState)
            {
                RefreshDockPane(oldPane);
            }

            if (Pane != null && DockState == Pane.DockState)
            {
                if ((Pane != oldPane) ||
                    (Pane == oldPane && oldDockState != oldPane.DockState))
                {
                    RefreshDockPane(Pane);
                }
            }

            if (oldDockState != DockState)
            {
                OnDockStateChanged(EventArgs.Empty);
            }

            ResumeSetDockState();
        }
Beispiel #44
0
 public bool IsDockStateValid(DockState dockState)
 {
     return(DockHandler.IsDockStateValid(dockState));
 }
Beispiel #45
0
 internal int GetNumberOfPanes(DockState dockState)
 {
     return(GetPanes(dockState).Count);
 }
Beispiel #46
0
        internal void SetDockState(bool isHidden, DockState visibleState, DockPane oldPane)
        {
            if (IsSuspendSetDockState)
            {
                return;
            }

            if (DockPanel == null && visibleState != DockState.Unknown)
            {
                throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_NullPanel);
            }

            if (visibleState == DockState.Hidden || (visibleState != DockState.Unknown && !IsDockStateValid(visibleState)))
            {
                throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_InvalidState);
            }

            DockPanel dockPanel = DockPanel;

            if (dockPanel != null)
            {
                dockPanel.SuspendLayout(true);
            }

            SuspendSetDockState();

            DockState oldDockState = DockState;

            if (m_isHidden != isHidden || oldDockState == DockState.Unknown)
            {
                m_isHidden = isHidden;
            }
            m_visibleState = visibleState;
            m_dockState    = isHidden ? DockState.Hidden : visibleState;

            if (visibleState == DockState.Unknown)
            {
                Pane = null;
            }
            else
            {
                m_isFloat = (m_visibleState == DockState.Float);

                if (Pane == null)
                {
                    Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                }
                else if (Pane.DockState != visibleState)
                {
                    if (Pane.Contents.Count == 1)
                    {
                        Pane.SetDockState(visibleState);
                    }
                    else
                    {
                        Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true);
                    }
                }
            }

            if (Form.ContainsFocus)
            {
                if (DockState == DockState.Hidden || DockState == DockState.Unknown)
                {
                    DockPanel.ContentFocusManager.GiveUpFocus(Content);
                }
            }

            SetPaneAndVisible(Pane);

            if (oldPane != null && !oldPane.IsDisposed && oldDockState == oldPane.DockState)
            {
                RefreshDockPane(oldPane);
            }

            if (Pane != null && DockState == Pane.DockState)
            {
                if ((Pane != oldPane) ||
                    (Pane == oldPane && oldDockState != oldPane.DockState))
                {
                    RefreshDockPane(Pane);
                }
            }

            if (oldDockState != DockState)
            {
                if (DockState == DockState.Hidden || DockState == DockState.Unknown ||
                    DockHelper.IsDockStateAutoHide(DockState))
                {
                    DockPanel.ContentFocusManager.RemoveFromList(Content);
                }
                else
                {
                    DockPanel.ContentFocusManager.AddToList(Content);
                }

                OnDockStateChanged(EventArgs.Empty);
            }
            ResumeSetDockState();

            if (dockPanel != null)
            {
                dockPanel.ResumeLayout(true, true);
            }
        }
Beispiel #47
0
 public void LoadDockContent(DockContent DockContent, DockState dockState)
 {
     dockContent = DockContent;
     dockContent.Show(dockPanel, dockState);
 }
Beispiel #48
0
 private void ResumeSetDockState(bool isHidden, DockState visibleState, DockPane oldPane)
 {
     ResumeSetDockState();
     SetDockState(isHidden, visibleState, oldPane);
 }
Beispiel #49
0
 public DockWindow CreateDockWindow(DockPanel dockPanel, DockState dockState)
 {
     return(new VS2012LightDockWindow(dockPanel, dockState));
 }
Beispiel #50
0
        private void DrawTab(Graphics g, TabVS2005 tab)
        {
            Rectangle rectTabOrigin = GetTabRectangle(tab);

            if (rectTabOrigin.IsEmpty)
            {
                return;
            }

            DockState    dockState = tab.Content.DockHandler.DockState;
            IDockContent content   = tab.Content;

            GraphicsPath       path         = GetTabOutline(tab, false, true);
            Color              startColor   = DockPanel.Skin.AutoHideStripSkin.TabGradient.StartColor;
            Color              endColor     = DockPanel.Skin.AutoHideStripSkin.TabGradient.EndColor;
            LinearGradientMode gradientMode = DockPanel.Skin.AutoHideStripSkin.TabGradient.LinearGradientMode;

            g.FillPath(new LinearGradientBrush(rectTabOrigin, startColor, endColor, gradientMode), path);
            g.DrawPath(PenTabBorder, path);

            // Set no rotate for drawing icon and text
            using (Matrix matrixRotate = g.Transform)
            {
                g.Transform = MatrixIdentity;

                // Draw the icon
                Rectangle rectImage = rectTabOrigin;
                rectImage.X += ImageGapLeft;
                rectImage.Y += ImageGapTop;
                int imageHeight = rectTabOrigin.Height - ImageGapTop - ImageGapBottom;
                int imageWidth  = ImageWidth;
                if (imageHeight > ImageHeight)
                {
                    imageWidth = ImageWidth * (imageHeight / ImageHeight);
                }
                rectImage.Height = imageHeight;
                rectImage.Width  = imageWidth;
                rectImage        = GetTransformedRectangle(dockState, rectImage);

                if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
                {
                    // The DockState is DockLeftAutoHide or DockRightAutoHide, so rotate the image 90 degrees to the right.
                    Rectangle rectTransform  = RtlTransform(rectImage, dockState);
                    Point[]   rotationPoints =
                    {
                        new Point(rectTransform.X + rectTransform.Width, rectTransform.Y),
                        new Point(rectTransform.X + rectTransform.Width, rectTransform.Y + rectTransform.Height),
                        new Point(rectTransform.X,                       rectTransform.Y)
                    };

                    using (Icon rotatedIcon = new Icon(((Form)content).Icon, 16, 16))
                    {
                        g.DrawImage(rotatedIcon.ToBitmap(), rotationPoints);
                    }
                }
                else
                {
                    // Draw the icon normally without any rotation.
                    g.DrawIcon(((Form)content).Icon, RtlTransform(rectImage, dockState));
                }

                // Draw the text
                Rectangle rectText = rectTabOrigin;
                rectText.X     += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText        = RtlTransform(GetTransformedRectangle(dockState, rectText), dockState);

                Color textColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.TextColor;

                if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
                {
                    g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabVertical);
                }
                else
                {
                    g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabHorizontal);
                }

                // Set rotate back
                g.Transform = matrixRotate;
            }
        }
Beispiel #51
0
 public DockWindow CreateDockWindow(DockPanel dockPanel, DockState dockState)
 {
     return(new DefaultDockWindow(dockPanel, dockState));
 }
Beispiel #52
0
        private void DrawTab(Graphics g, AutoHideTabFromBase tab)
        {
            Rectangle rectTab = GetTabRectangle(tab);

            if (rectTab.IsEmpty)
            {
                return;
            }

            DockState   dockState = tab.Content.DockState;
            DockContent content   = tab.Content;

            BeginDrawTab();


            Pen   penTabBorder = PenTabBorder;
            Brush brushTabText = new SolidBrush(ColorMixer.AutoHideTabTextColor);

            if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide)
            {
                DrawUtil.DrawTab(g, rectTab, Corners.RB, GradientType.Bell, ColorMixer.DarkColor, ColorMixer.LightColor, Color.Black, false);
            }
            else
            {
                DrawUtil.DrawTab(g, rectTab, Corners.RT, GradientType.Bell, ColorMixer.DarkColor, ColorMixer.LightColor, Color.Black, false);
            }

//			g.FillRectangle(new LinearGradientBrush(rectTab,ColorMixer.DarkColor,ColorMixer.LightColor,LinearGradientMode.Vertical)
//				, rectTab);
//
//			g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Left, rectTab.Bottom);
//			g.DrawLine(penTabBorder, rectTab.Right, rectTab.Top, rectTab.Right, rectTab.Bottom);
//			if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide)
//				g.DrawLine(penTabBorder, rectTab.Left, rectTab.Bottom, rectTab.Right, rectTab.Bottom);
//			else
//				g.DrawLine(penTabBorder, rectTab.Left, rectTab.Top, rectTab.Right, rectTab.Top);


            // Set no rotate for drawing icon and text
            Matrix matrixRotate = g.Transform;

            g.Transform = MatrixIdentity;

            // Draw the icon
            Rectangle rectImage = rectTab;

            rectImage.X += ImageGapLeft;
            rectImage.Y += ImageGapTop;
            int imageHeight = rectTab.Height - ImageGapTop - ImageGapBottom;
            int imageWidth  = ImageWidth;

            if (imageHeight > ImageHeight)
            {
                imageWidth = ImageWidth * (imageHeight / ImageHeight);
            }
            rectImage.Height = imageHeight;
            rectImage.Width  = imageWidth;
            rectImage        = GetTransformedRectangle(dockState, rectImage);
            g.DrawIcon(content.Icon, rectImage);

            // Draw the text
            if (content == content.Pane.ActiveContent)
            {
                Rectangle rectText = rectTab;
                rectText.X     += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
                rectText        = GetTransformedRectangle(dockState, rectText);
                if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
                {
                    g.DrawString(content.TabText, Font, brushTabText, rectText, StringFormatTabVertical);
                }
                else
                {
                    g.DrawString(content.TabText, Font, brushTabText, rectText, StringFormatTabHorizontal);
                }
            }

            // Set rotate back
            g.Transform = matrixRotate;

            EndDrawTab();
        }
Beispiel #53
0
 bool IDockDragSource.IsDockStateValid(DockState dockState)
 {
     return(IsDockStateValid(dockState));
 }
Beispiel #54
0
 public AutoHideState(DockState dockState)
 {
     m_dockState = dockState;
     m_selected  = false;
 }
Beispiel #55
0
        public int GetDockWindowSize(DockState dockState)
        {
            if (dockState == DockState.DockLeft || dockState == DockState.DockRight)
            {
                int width = ClientRectangle.Width - DockPadding.Left - DockPadding.Right;
                int dockLeftSize = m_dockLeftPortion >= 1 ? (int)m_dockLeftPortion : (int)(width * m_dockLeftPortion);
                int dockRightSize = m_dockRightPortion >= 1 ? (int)m_dockRightPortion : (int)(width * m_dockRightPortion);

                if (dockLeftSize < MeasurePane.MinSize)
                    dockLeftSize = MeasurePane.MinSize;
                if (dockRightSize < MeasurePane.MinSize)
                    dockRightSize = MeasurePane.MinSize;

                if (dockLeftSize + dockRightSize > width - MeasurePane.MinSize)
                {
                    int adjust = (dockLeftSize + dockRightSize) - (width - MeasurePane.MinSize);
                    dockLeftSize -= adjust / 2;
                    dockRightSize -= adjust / 2;
                }

                return dockState == DockState.DockLeft ? dockLeftSize : dockRightSize;
            }
            else if (dockState == DockState.DockTop || dockState == DockState.DockBottom)
            {
                int height = ClientRectangle.Height - DockPadding.Top - DockPadding.Bottom;
                int dockTopSize = m_dockTopPortion >= 1 ? (int)m_dockTopPortion : (int)(height * m_dockTopPortion);
                int dockBottomSize = m_dockBottomPortion >= 1 ? (int)m_dockBottomPortion : (int)(height * m_dockBottomPortion);

                if (dockTopSize < MeasurePane.MinSize)
                    dockTopSize = MeasurePane.MinSize;
                if (dockBottomSize < MeasurePane.MinSize)
                    dockBottomSize = MeasurePane.MinSize;

                if (dockTopSize + dockBottomSize > height - MeasurePane.MinSize)
                {
                    int adjust = (dockTopSize + dockBottomSize) - (height - MeasurePane.MinSize);
                    dockTopSize -= adjust / 2;
                    dockBottomSize -= adjust / 2;
                }

                return dockState == DockState.DockTop ? dockTopSize : dockBottomSize;
            }
            else
                return 0;
        }
        private void DrawTab(Graphics g, TabVS2012Light tab)
        {
            Rectangle rectTabOrigin = GetTabRectangle(tab);

            if (rectTabOrigin.IsEmpty)
            {
                return;
            }

            DockState    dockState = tab.Content.DockHandler.DockState;
            IDockContent content   = tab.Content;

            Color textColor;

            if (tab.Content.DockHandler.IsActivated || tab.IsMouseOver)
            {
                textColor = DockPanel.Skin.AutoHideStripSkin.DockStripGradient.StartColor;
            }
            else
            {
                textColor = DockPanel.Skin.AutoHideStripSkin.DockStripGradient.EndColor;
            }

            Rectangle rectThickLine = rectTabOrigin;

            rectThickLine.X     += _TabGapLeft + _TextGapLeft + _ImageGapLeft + _ImageWidth;
            rectThickLine.Width  = TextRenderer.MeasureText(tab.Content.DockHandler.TabText, TextFont).Width - 8;
            rectThickLine.Height = Measures.AutoHideTabLineWidth;

            if (dockState == DockState.DockBottomAutoHide || dockState == DockState.DockLeftAutoHide)
            {
                rectThickLine.Y += rectTabOrigin.Height - Measures.AutoHideTabLineWidth;
            }
            else
            if (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide)
            {
                rectThickLine.Y += 0;
            }

            g.FillRectangle(new SolidBrush(textColor), rectThickLine);

            //Set no rotate for drawing icon and text
            Matrix matrixRotate = g.Transform;

            g.Transform = MatrixIdentity;

            // Draw the icon
            Rectangle rectImage = rectTabOrigin;

            rectImage.X += ImageGapLeft;
            rectImage.Y += ImageGapTop;
            int imageHeight = rectTabOrigin.Height - ImageGapTop - ImageGapBottom;
            int imageWidth  = ImageWidth;

            if (imageHeight > ImageHeight)
            {
                imageWidth = ImageWidth * (imageHeight / ImageHeight);
            }
            rectImage.Height = imageHeight;
            rectImage.Width  = imageWidth;
            rectImage        = GetTransformedRectangle(dockState, rectImage);

            if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
            {
                // The DockState is DockLeftAutoHide or DockRightAutoHide, so rotate the image 90 degrees to the right.
                Rectangle rectTransform  = RtlTransform(rectImage, dockState);
                Point[]   rotationPoints =
                {
                    new Point(rectTransform.X + rectTransform.Width, rectTransform.Y),
                    new Point(rectTransform.X + rectTransform.Width, rectTransform.Y + rectTransform.Height),
                    new Point(rectTransform.X,                       rectTransform.Y)
                };

                using (Icon rotatedIcon = new Icon(((Form)content).Icon, 16, 16))
                {
                    g.DrawImage(rotatedIcon.ToBitmap(), rotationPoints);
                }
            }
            else
            {
                // Draw the icon normally without any rotation.
                g.DrawIcon(((Form)content).Icon, RtlTransform(rectImage, dockState));
            }

            // Draw the text
            Rectangle rectText = rectTabOrigin;

            rectText.X     += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
            rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft;
            rectText        = RtlTransform(GetTransformedRectangle(dockState, rectText), dockState);

            if (DockPanel.ActiveContent == content || tab.IsMouseOver)
            {
                textColor = DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveTabGradient.TextColor;
            }
            else
            {
                textColor = DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveTabGradient.TextColor;
            }

            if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide)
            {
                g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabVertical);
            }
            else
            {
                g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabHorizontal);
            }

            // Set rotate back
            g.Transform = matrixRotate;
        }
Beispiel #57
0
 public bool IsDockStateValid(DockState dockState)
 {
     return(Contents.All(content => content.DockHandler.IsDockStateValid(dockState)));
 }
Beispiel #58
0
 internal DefaultDockWindow(DockPanel dockPanel, DockState dockState) : base(dockPanel, dockState)
 {
 }
Beispiel #59
0
 internal Rectangle GetTabStripRectangle(DockState dockState)
 {
     return AutoHideStripControl.GetTabStripRectangle(dockState);
 }
Beispiel #60
0
 protected internal DockPane(IDockContent content, DockState visibleState, bool show)
 {
     InternalConstruct(content, visibleState, false, Rectangle.Empty, null, DockAlignment.Right, 0.5, show);
 }