/// <summary> /// Shows a docking view /// </summary> public DockContent Show( IWorkspace workspace, DockingViewInfo dockView ) { Arguments.CheckNotNull( workspace, "workspace" ); Arguments.CheckNotNull( dockView, "dockView" ); if ( !m_Views.Contains( dockView ) ) { Arguments.ThrowArgumentException( "view", "View \"{0}\" did not appear in registered view list (use RegisterViews())", dockView.Name ); } DockContent content; if ( !m_ViewDocks.TryGetValue( dockView, out content ) ) { content = CreateViewDockContent( workspace, dockView ); content.Show( m_MainDockPanel, dockView.DefaultDockState ); } else if ( content.DockPanel != null ) { content.Show( ); // Content is just hidden } else { m_ViewDocks.Remove( dockView ); content = CreateViewDockContent( workspace, dockView ); content.Show( m_MainDockPanel, dockView.DefaultDockState ); } return content; }
/// <summary> /// Setup constructor /// </summary> /// <param name="commandUi">Command UI manager. Any show command attached to views get added to this object</param> /// <param name="mainPanel">Main docking panel</param> /// <param name="hostPaneName">Name of the host pane</param> public DockedHostPaneViewManager( ICommandUiManager commandUi, DockPanel mainPanel, string hostPaneName ) { Arguments.CheckNotNull( commandUi, "commandUi" ); Arguments.CheckNotNull( mainPanel, "mainPanel" ); m_UnhostedViewManager = new DockingViewManager( commandUi, mainPanel ); m_HostViewInfo = new DockingViewInfo( hostPaneName, CreateHostControl, DockState.DockLeft ); }
/// <summary> /// Creates a DockContent for a view, and registers it in the dock view map /// </summary> private DockContent CreateViewDockContent( IWorkspace workspace, DockingViewInfo dockView ) { Control control = dockView.CreateControl( workspace ); if ( control == null ) { return null; } DockContent content = new WindowDockContent( dockView.Name ); content.Text = dockView.Name; content.Controls.Add( control ); content.AutoScroll = true; // content.HideOnClose = true; control.Dock = DockStyle.Fill; m_ViewDocks.Add( dockView, content ); return content; }