Beispiel #1
0
        public Pane(DockManager dockManager, DockableContent content)
        {
            _dockManager = dockManager;

            if (content != null)
                Add(content);
        }
Beispiel #2
0
 public virtual void Add(DockableContent content)
 {
     if (DockManager != null)
         DockManager.Add(content);
     content.SetContainerPane(this);
     Contents.Add(content);
 }
        public OverlayDockablePane(DockManager dockManager, DockableContent content, Dock initialDock)
            : base(dockManager, initialDock)
        {
            btnAutoHide.LayoutTransform = new RotateTransform(90);
            ReferencedPane = content.ContainerPane as DockablePane;
            ReferencedContent = content;
            Add(ReferencedContent);
            Show(ReferencedContent);
            ReferencedContent.SetContainerPane(ReferencedPane);

            _state = PaneState.AutoHide;
        }
Beispiel #4
0
        public override void Show(DockableContent content)
        {
            if (!Contents.Contains(content))
                Add(content);

            base.Show(content);
        }
Beispiel #5
0
        //void OnUnloaded(object sender, EventArgs e)
        //{
        //    foreach (ManagedContent content in Documents)
        //        content.Close();
        //    Documents.Clear();
        //}
        public override void Add(DockableContent content)
        {
            System.Diagnostics.Debug.Assert(content != null);
            if (content == null)
                return;

            Documents.Add(content);
            AddItem(content);

            base.Add(content);
        }
 void SetTabItemHeader(TabItem item, DockableContent content)
 {
     StackPanel spHeader = new StackPanel();
     spHeader.Orientation = Orientation.Horizontal;
     Image iconContent = new Image();
     iconContent.Source = content.Icon;
     spHeader.Children.Add(iconContent);
     TextBlock titleContent = new TextBlock();
     titleContent.Text = content.Title;
     titleContent.Margin = new Thickness(2, 0, 0, 0);
     spHeader.Children.Add(titleContent);
     item.Header = spHeader;
 }
 /// <summary>
 /// Add dockable content to layout management
 /// </summary>
 /// <param name="content">Content to add</param>
 /// <returns></returns>
 internal void Add(DockableContent content)
 {
     if (!Contents.Contains(content))
         Contents.Add(content);
 }
        protected virtual void RemoveItem(DockableContent content)
        {
            foreach (TabItem item in tbcContents.Items)
                if ((item.Content as ContentPresenter).Content == content.Content)
                {
                    //item.PreviewMouseDown -= new MouseButtonEventHandler(OnTabItemMouseDown);
                    //item.MouseMove -= new MouseEventHandler(OnTabItemMouseMove);
                    //item.MouseUp -= new MouseButtonEventHandler(OnTabItemMouseUp);

                    item.Content = null;
                    tbcContents.Items.Remove(item);
                    //ChangeTitle();
                    break;
                }
        }
 void HideSingleContent(DockableContent content)
 {
     cpClientWindowContent.Content = null;
     cpClientWindowContent.Visibility = Visibility.Collapsed;
 }
        /// <summary>
        /// Hide a contained dockable content
        /// </summary>
        /// <param name="content">DockableContent object to hide</param>
        /// <remarks>Pane is automatically hidden if no more visible contents are shown</remarks>
        public override void Hide(DockableContent content)
        {
            RemoveVisibleContent(content);

            if (VisibleContents.Count == 0 && State==PaneState.Docked)
                Hide();

            base.Hide(content);
        }
        /// <summary>
        /// Show a content previuosly added
        /// </summary>
        /// <param name="content">DockableContent object to show</param>
        public override void Show(DockableContent content)
        {
            AddVisibleContent(content);

            if (VisibleContents.Count == 1 && State == PaneState.Hidden)
            {
                ChangeState(PaneState.Docked);
                DockManager.DragPaneServices.Register(this);
            }

            base.Show(content);
        }
        /// <summary>
        /// Add a docable content to default documents pane
        /// </summary>
        /// <param name="content">Dockable content to add</param>
        /// <returns>Documents pane where dockable content is added</returns>
        internal DocumentsPane AddDocument(DockableContent content)
        {
            System.Diagnostics.Debug.Assert(!Contents.Contains(content));
            System.Diagnostics.Debug.Assert(!gridDocking.DocumentsPane.Contents.Contains(content));

            if (!gridDocking.DocumentsPane.Contents.Contains(content))
            {
                gridDocking.DocumentsPane.Add(content);
                gridDocking.ArrangeLayout();
            }

            return gridDocking.DocumentsPane;
        }
        /// <summary>
        /// Add a dockable content to Contents list
        /// </summary>
        /// <param name="content">Content to add</param>
        /// <remarks>Content is automatically shown.</remarks>
        public override void Add(DockableContent content)
        {
            if (Contents.Count == 0)
            {
                SaveFloatingWindowSizeAndPosition(content);
            }

            base.Add(content);
        }
Beispiel #14
0
 protected virtual void DragContent(DockableContent contentToDrag, Point startDragPoint, Point offset)
 {
     Remove(contentToDrag);
     DockablePane pane = new DockablePane(DockManager);
     //pane = new DockablePane();
     //pane.DockManager = DockManager;
     pane.Add(contentToDrag);
     pane.Show();
     DockManager.Add(pane);
     //DockManager.Add(contentToDrag);
     FloatingWindow wnd = new FloatingWindow(pane);
     pane.ChangeState(PaneState.DockableWindow);
     DockManager.Drag(wnd, startDragPoint, offset);
 }
Beispiel #15
0
 public virtual void Show(DockableContent content)
 {
     System.Diagnostics.Debug.Assert(Contents.Contains(content));
 }
Beispiel #16
0
 public virtual void Remove(DockableContent content)
 {
     if (DockManager != null)
         DockManager.Remove(content);
     content.SetContainerPane(null);
     Contents.Remove(content);
 }
Beispiel #17
0
 public virtual void Hide(DockableContent content)
 {
 }
 /// <summary>
 /// Remove a dockable content from internal contents list
 /// </summary>
 /// <param name="content"></param>
 internal void Remove(DockableContent content)
 {
     Contents.Remove(content);
 }
 /// <summary>
 /// Close a dockable content
 /// </summary>
 /// <param name="content">DockableContent object to close</param>
 /// <remarks>In this library version this method simply hide the content</remarks>
 public override void Close(DockableContent content)
 {
     Hide(content);
 }
Beispiel #20
0
 public virtual void Close(DockableContent content)
 {
 }
        /// <summary>
        /// Remove a content from pane Contents list
        /// </summary>
        /// <param name="content">Content to remove</param>
        /// <remarks>Notice that when no more contents are present in a pane, it is automatically removed</remarks>
        public override void Remove(DockableContent content)
        {
            Hide(content);

            base.Remove(content);

            if (Contents.Count == 0)
                DockManager.Remove(this);
        }
Beispiel #22
0
        public Pane GetPaneFromContent(DockableContent content)
        {
            if (AttachedPane != null && AttachedPane.Contents.Contains(content))
                return AttachedPane;

            if (FirstChildGroup != null)
            {
                Pane pane = FirstChildGroup.GetPaneFromContent(content);
                if (pane != null)
                    return pane;
            }

            if (SecondChildGroup != null)
                return SecondChildGroup.GetPaneFromContent(content);

            return null;
        }
        protected virtual void AddItem(DockableContent content)
        {
            TabItem item = new TabItem();
            DockPanel tabPanel = new DockPanel();

            //SetTabItemHeader(item, content);

            item.Style = FindResource("DockablePaneTabItemStyle") as Style;
            item.Content = new ContentPresenter();
            (item.Content as ContentPresenter).Content = content.Content;

            //item.PreviewMouseDown += new MouseButtonEventHandler(OnTabItemMouseDown);
            //item.MouseMove += new MouseEventHandler(OnTabItemMouseMove);
            //item.MouseUp += new MouseButtonEventHandler(OnTabItemMouseUp);
            //item.Focusable = true;
            //item.GotFocus += new RoutedEventHandler(item_GotFocus);
            tbcContents.Items.Add(item);
            tbcContents.SelectedItem = item;

            RefreshTitle();
        }
 public override void Remove(DockableContent content)
 {
     ReferencedPane.Remove(content);
     base.Remove(content);
 }
        /// <summary>
        /// Add a visible content
        /// </summary>
        /// <param name="content">DockableContent object to add</param>
        /// <remarks>If more then one contents are visible, this method dinamically creates a tab control and
        /// adds new content to it.</remarks>
        void AddVisibleContent(DockableContent content)
        {
            if (VisibleContents.Contains(content))
                return;

            if (VisibleContents.Count == 0)
            {
                VisibleContents.Add(content);
                ShowSingleContent(content);
            }
            else if (VisibleContents.Count == 1)
            {
                HideSingleContent(VisibleContents[0]);
                AddItem(VisibleContents[0]);
                VisibleContents.Add(content);
                AddItem(content);
                ShowTabs();
            }
            else
            {
                VisibleContents.Add(content);
                AddItem(content);
            }
        }
 public override void Close(DockableContent content)
 {
     ChangeState(PaneState.Hidden);
 }
        /// <summary>
        /// Remove a visible content from pane
        /// </summary>
        /// <param name="content">DockableContent object to remove</param>
        /// <remarks>Remove related tab item from contents tab control. if only one content is visible than hide tab control.</remarks>
        void RemoveVisibleContent(DockableContent content)
        {
            if (!VisibleContents.Contains(content))
                return;

            if (VisibleContents.Count == 1)
            {
                VisibleContents.Remove(content);
                HideSingleContent(content);
                HideTabs();
            }
            else if (VisibleContents.Count == 2)
            {
                RemoveItem(VisibleContents[0]);
                RemoveItem(VisibleContents[1]);
                VisibleContents.Remove(content);
                ShowSingleContent(VisibleContents[0]);
                HideTabs();
            }
            else
            {
                VisibleContents.Remove(content);
                RemoveItem(content);
            }
        }
Beispiel #28
0
        public override void Remove(DockableContent content)
        {
            System.Diagnostics.Debug.Assert(content != null);
            if (content == null)
                return;

            RemoveItem(content);
            Documents.Remove(content);
            DockManager.Remove(content);

            base.Remove(content);
        }
 void ShowSingleContent(DockableContent content)
 {
     cpClientWindowContent.Content = content.Content;
     cpClientWindowContent.Visibility = Visibility.Visible;
     RefreshTitle();
 }
Beispiel #30
0
 public Pane GetPaneFromContent(DockableContent content)
 {
     return _rootGroup.GetPaneFromContent(content);
 }