/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create a canvas for containing the selected page and put old root inside it _drawGroup = new ViewDrawCanvas(Navigator.StateNormal.HeaderGroup.Back, Navigator.StateNormal.HeaderGroup.Border, VisualOrientation.Top); _drawGroup.Add(_oldRoot); // Create the view element that lays out the check/tab buttons ViewLayoutBarForTabs layoutBar = new ViewLayoutBarForTabs(Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, Navigator.Bar.TabBorderStyle, true); _layoutBar = layoutBar; // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingTabs, PaletteMetricInt.CheckButtonGap, Navigator.Bar.BarOrientation, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Add a separators for insetting items _layoutBarSeparatorFirst = new ViewLayoutSeparator(0); _layoutBarSeparatorLast = new ViewLayoutSeparator(0); _layoutBarDocker.Add(_layoutBarSeparatorFirst, ViewDockStyle.Left); _layoutBarDocker.Add(_layoutBarSeparatorLast, ViewDockStyle.Right); // Create the layout that insets the contents to allow for rounding of the group border _layoutOverlap = new ViewLayoutInsetOverlap(_drawGroup); _layoutOverlap.Add(_layoutBarDocker); // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDockerOverlap(_drawGroup, _layoutOverlap, layoutBar); _layoutPanelDocker.Add(_layoutOverlap, ViewDockStyle.Top); _layoutPanelDocker.Add(_drawGroup, ViewDockStyle.Fill); // Create the top level panel and put a layout docker inside it _drawPanel = new ViewDrawPanel(Navigator.StateNormal.Back); _drawPanel.Add(_layoutPanelDocker); _newRoot = _drawPanel; // Set the correct tab style UpdateTabStyle(); // Must call the base class to perform common actions base.CreateCheckItemView(); }
/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create the view element that lays out the check buttons _layoutBar = new ViewLayoutBar(Navigator.StateCommon.Bar, PaletteMetricInt.CheckButtonGap, Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, false); // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingInside, PaletteMetricInt.CheckButtonGap, Navigator.Header.HeaderPositionBar, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Place the bar inside a header style area _viewHeadingBar = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.HeaderBar.Back, Navigator.StateNormal.HeaderGroup.HeaderBar.Border, Navigator.StateNormal.HeaderGroup.HeaderBar, PaletteMetricBool.None, PaletteMetricPadding.HeaderGroupPaddingSecondary, VisualOrientation.Top); _viewHeadingBar.Add(_layoutBarDocker, ViewDockStyle.Fill); // Create the docker used to layout contents of main panel and fill with group _drawPanelDocker = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.Back, Navigator.StateNormal.HeaderGroup.Border, Navigator.StateNormal.HeaderGroup, PaletteMetricBool.HeaderGroupOverlay); _drawPanelDocker.Add(_oldRoot, ViewDockStyle.Fill); _drawPanelDocker.Add(_viewHeadingBar, ViewDockStyle.Top); _newRoot = _drawPanelDocker; // Must call the base class to perform common actions base.CreateCheckItemView(); }
/// <summary> /// Initialize a new instance of the ViewLayoutScrollViewport class. /// </summary> /// <param name="rootControl">Top level visual control.</param> /// <param name="viewportFiller">View element to place inside viewport.</param> /// <param name="paletteBorderEdge">Palette for use with the border edge.</param> /// <param name="paletteMetrics">Palette source for metrics.</param> /// <param name="metricPadding">Metric used to get view padding.</param> /// <param name="metricOvers">Metric used to get overposition.</param> /// <param name="orientation">Orientation for the viewport children.</param> /// <param name="alignment">Alignment of the children within the viewport.</param> /// <param name="animateChange">Animate changes in the viewport.</param> /// <param name="vertical">Is the viewport vertical.</param> /// <param name="needPaintDelegate">Delegate for notifying paint requests.</param> public ViewLayoutScrollViewport(VisualControl rootControl, ViewBase viewportFiller, PaletteBorderEdge paletteBorderEdge, IPaletteMetric paletteMetrics, PaletteMetricPadding metricPadding, PaletteMetricInt metricOvers, VisualOrientation orientation, RelativePositionAlign alignment, bool animateChange, bool vertical, NeedPaintHandler needPaintDelegate) { Debug.Assert(rootControl != null); Debug.Assert(viewportFiller != null); Debug.Assert(needPaintDelegate != null); // We need a way to notify changes in layout _needPaintDelegate = needPaintDelegate; // By default we are showing the contained viewport in vertical scrolling _viewportVertical = vertical; // Our initial visual orientation should match the parameter Orientation = orientation; // Create the child viewport _viewport = new ViewLayoutViewport(paletteMetrics, metricPadding, metricOvers, ViewportOrientation(_viewportVertical), alignment, animateChange) { // Default to same alignment for both directions CounterAlignment = alignment, // We always want the viewport to fill any remainder space FillSpace = true }; // Put the provided element inside the viewport _viewport.Add(viewportFiller); // Hook into animation step events _viewport.AnimateStep += new EventHandler(OnAnimateStep); // To prevent the contents of the viewport from being able to draw outside // the viewport (such as having child controls) we use a ViewLayoutControl // that uses a child control to restrict the drawing region. _viewControl = new ViewLayoutControl(rootControl, _viewport) { InDesignMode = rootControl.InDesignMode }; // Create the scrollbar and matching border edge _scrollbarV = new ViewDrawScrollBar(true); _scrollbarH = new ViewDrawScrollBar(false); _borderEdgeV = new ViewDrawBorderEdge(paletteBorderEdge, System.Windows.Forms.Orientation.Vertical); _borderEdgeH = new ViewDrawBorderEdge(paletteBorderEdge, System.Windows.Forms.Orientation.Horizontal); // Hook into scroll position changes _scrollbarV.ScrollChanged += new EventHandler(OnScrollVChanged); _scrollbarH.ScrollChanged += new EventHandler(OnScrollHChanged); // Add with appropriate docking style Add(_viewControl, ViewDockStyle.Fill); Add(_borderEdgeV, ViewDockStyle.Right); Add(_borderEdgeH, ViewDockStyle.Bottom); Add(_scrollbarV, ViewDockStyle.Right); Add(_scrollbarH, ViewDockStyle.Bottom); }
/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create the view element that lays out the check buttons _layoutBar = new ViewLayoutBar(Navigator.StateCommon.Bar, PaletteMetricInt.CheckButtonGap, Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, false); // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingInside, PaletteMetricInt.CheckButtonGap, Navigator.Bar.BarOrientation, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Add a separators for insetting items _layoutBarSeparatorFirst = new ViewLayoutSeparator(0); _layoutBarSeparatorLast = new ViewLayoutSeparator(0); _layoutBarDocker.Add(_layoutBarSeparatorFirst, ViewDockStyle.Left); _layoutBarDocker.Add(_layoutBarSeparatorLast, ViewDockStyle.Right); // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDocker(); _layoutPanelDocker.Add(_oldRoot, ViewDockStyle.Fill); _layoutPanelDocker.Add(_layoutBarDocker, ViewDockStyle.Top); // Create a canvas for containing the selected page and put old root inside it _drawGroup = new ViewDrawCanvas(Navigator.StateNormal.HeaderGroup.Back, Navigator.StateNormal.HeaderGroup.Border, VisualOrientation.Top); _drawGroup.Add(_layoutPanelDocker); _newRoot = _drawGroup; // Must call the base class to perform common actions base.CreateCheckItemView(); }
/// <summary> /// Initialize a new instance of the ViewLayoutScrollViewport class. /// </summary> /// <param name="rootControl">Top level visual control.</param> /// <param name="viewportFiller">View element to place inside viewport.</param> /// <param name="paletteBorderEdge">Palette for use with the border edge.</param> /// <param name="paletteMetrics">Palette source for metrics.</param> /// <param name="metricPadding">Metric used to get view padding.</param> /// <param name="metricOvers">Metric used to get overposition.</param> /// <param name="orientation">Orientation for the viewport children.</param> /// <param name="alignment">Alignment of the children within the viewport.</param> /// <param name="animateChange">Animate changes in the viewport.</param> /// <param name="vertical">Is the viewport vertical.</param> /// <param name="needPaintDelegate">Delegate for notifying paint requests.</param> public ViewLayoutScrollViewport(VisualControl rootControl, ViewBase viewportFiller, PaletteBorderEdge paletteBorderEdge, IPaletteMetric paletteMetrics, PaletteMetricPadding metricPadding, PaletteMetricInt metricOvers, VisualOrientation orientation, RelativePositionAlign alignment, bool animateChange, bool vertical, NeedPaintHandler needPaintDelegate) { Debug.Assert(rootControl != null); Debug.Assert(viewportFiller != null); Debug.Assert(needPaintDelegate != null); // We need a way to notify changes in layout _needPaintDelegate = needPaintDelegate; // By default we are showing the contained viewport in vertical scrolling _viewportVertical = vertical; // Our initial visual orientation should match the parameter Orientation = orientation; // Create the child viewport _viewport = new ViewLayoutViewport(paletteMetrics, metricPadding, metricOvers, ViewportOrientation(_viewportVertical), alignment, animateChange); // Default to same alignment for both directions _viewport.CounterAlignment = alignment; // We always want the viewport to fill any remainder space _viewport.FillSpace = true; // Put the provided element inside the viewport _viewport.Add(viewportFiller); // Hook into animation step events _viewport.AnimateStep += new EventHandler(OnAnimateStep); // To prevent the contents of the viewport from being able to draw outside // the viewport (such as having child controls) we use a ViewLayoutControl // that uses a child control to restrict the drawing region. _viewControl = new ViewLayoutControl(rootControl, _viewport); _viewControl.InDesignMode = rootControl.InDesignMode; // Create the scrollbar and matching border edge _scrollbarV = new ViewDrawScrollBar(true); _scrollbarH = new ViewDrawScrollBar(false); _borderEdgeV = new ViewDrawBorderEdge(paletteBorderEdge, System.Windows.Forms.Orientation.Vertical); _borderEdgeH = new ViewDrawBorderEdge(paletteBorderEdge, System.Windows.Forms.Orientation.Horizontal); // Hook into scroll position changes _scrollbarV.ScrollChanged += new EventHandler(OnScrollVChanged); _scrollbarH.ScrollChanged += new EventHandler(OnScrollHChanged); // Add with appropriate docking style Add(_viewControl, ViewDockStyle.Fill); Add(_borderEdgeV, ViewDockStyle.Right); Add(_borderEdgeH, ViewDockStyle.Bottom); Add(_scrollbarV, ViewDockStyle.Right); Add(_scrollbarH, ViewDockStyle.Bottom); }
/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create the two headers and header content _viewContentPrimary = new ViewDrawContent(Navigator.StateNormal.HeaderGroup.HeaderPrimary.Content, Navigator.Header.HeaderValuesPrimary, VisualOrientation.Top); _viewHeadingPrimary = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.HeaderPrimary.Back, Navigator.StateNormal.HeaderGroup.HeaderPrimary.Border, Navigator.StateNormal.HeaderGroup.HeaderPrimary, PaletteMetricBool.None, PaletteMetricPadding.HeaderGroupPaddingPrimary, VisualOrientation.Top); _viewContentSecondary = new ViewDrawContent(Navigator.StateNormal.HeaderGroup.HeaderSecondary.Content, Navigator.Header.HeaderValuesSecondary, VisualOrientation.Top); _viewHeadingSecondary = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.HeaderSecondary.Back, Navigator.StateNormal.HeaderGroup.HeaderSecondary.Border, Navigator.StateNormal.HeaderGroup.HeaderSecondary, PaletteMetricBool.None, PaletteMetricPadding.HeaderGroupPaddingSecondary, VisualOrientation.Top); // Place the the content as fillers in the headers _viewHeadingPrimary.Add(_viewContentPrimary, ViewDockStyle.Fill); _viewHeadingSecondary.Add(_viewContentSecondary, ViewDockStyle.Fill); // Create a canvas for containing the selected page and put old root inside it _drawGroup = new ViewDrawCanvas(Navigator.StateNormal.HeaderGroup.Back, Navigator.StateNormal.HeaderGroup.Border, VisualOrientation.Top); _drawGroup.ApplyIncludeBorderEdge = true; _drawGroup.Add(_oldRoot); // Create the view element that lays out the check/tab buttons ViewLayoutBarForTabs layoutBar = new ViewLayoutBarForTabs(Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, Navigator.Bar.TabBorderStyle, true); _layoutBar = layoutBar; // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingTabs, PaletteMetricInt.CheckButtonGap, Navigator.Bar.BarOrientation, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Add a separators for insetting items _layoutBarSeparatorFirst = new ViewLayoutSeparator(0); _layoutBarSeparatorLast = new ViewLayoutSeparator(0); _layoutBarDocker.Add(_layoutBarSeparatorFirst, ViewDockStyle.Left); _layoutBarDocker.Add(_layoutBarSeparatorLast, ViewDockStyle.Right); // Create the layout that insets the contents to allow for rounding of the group border _layoutOverlap = new ViewLayoutInsetOverlap(_drawGroup); _layoutOverlap.Add(_layoutBarDocker); // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDockerOverlap(_drawGroup, _layoutOverlap, layoutBar); _layoutPanelDocker.Add(_layoutOverlap, ViewDockStyle.Top); _layoutPanelDocker.Add(_drawGroup, ViewDockStyle.Fill); // Place the headers and page holding area into the group _topGroup = new ViewLayoutDocker(); _topGroup.Add(_viewHeadingSecondary, ViewDockStyle.Bottom); _topGroup.Add(_viewHeadingPrimary, ViewDockStyle.Top); _topGroup.Add(_layoutPanelDocker, ViewDockStyle.Fill); // Prevent adjacent headers from having two borders _topGroup.RemoveChildBorders = true; // Create the top level panel and put a layout docker inside it _drawPanel = new ViewDrawPanel(Navigator.StateNormal.Back); _drawPanel.Add(_topGroup); _newRoot = _drawPanel; // Set initial visible state of headers _viewHeadingPrimary.Visible = Navigator.Header.HeaderVisiblePrimary; _viewHeadingSecondary.Visible = Navigator.Header.HeaderVisibleSecondary; // Set the correct tab style UpdateTabStyle(); // Must call the base class to perform common actions base.CreateCheckItemView(); }
/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create the view element that lays out the check buttons _layoutBar = new ViewLayoutBar(Navigator.StateCommon.Bar, PaletteMetricInt.RibbonTabGap, Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, Navigator.Bar.TabBorderStyle, true); // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingTabs, PaletteMetricInt.RibbonTabGap, Navigator.Bar.BarOrientation, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Add a separators for insetting items _layoutBarSeparatorFirst = new ViewLayoutSeparator(0); _layoutBarSeparatorLast = new ViewLayoutSeparator(0); _layoutBarDocker.Add(_layoutBarSeparatorFirst, ViewDockStyle.Left); _layoutBarDocker.Add(_layoutBarSeparatorLast, ViewDockStyle.Right); // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDocker(); _layoutPanelDocker.Add(_layoutBarDocker, ViewDockStyle.Fill); _layoutPanelDocker.Add(new ViewLayoutPageHide(Navigator), ViewDockStyle.Top); // Create the top level panel and put a layout docker inside it _drawPanel = new ViewDrawPanel(Navigator.StateNormal.Back); _drawPanel.Add(_layoutPanelDocker); _newRoot = _drawPanel; // Must call the base class to perform common actions base.CreateCheckItemView(); }
/// <summary> /// Create the view hierarchy for this view mode. /// </summary> protected override void CreateCheckItemView() { // Create the view element that lays out the check buttons _layoutBar = new ViewLayoutBar(Navigator.StateCommon.Bar, PaletteMetricInt.CheckButtonGap, Navigator.Bar.ItemSizing, Navigator.Bar.ItemAlignment, Navigator.Bar.BarMultiline, Navigator.Bar.ItemMinimumSize, Navigator.Bar.ItemMaximumSize, Navigator.Bar.BarMinimumHeight, false); // Create the scroll spacer that restricts display _layoutBarViewport = new ViewLayoutViewport(Navigator.StateCommon.Bar, PaletteMetricPadding.BarPaddingInside, PaletteMetricInt.CheckButtonGap, Navigator.Header.HeaderPositionBar, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation); _layoutBarViewport.Add(_layoutBar); // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker(); _layoutBarDocker.Add(_layoutBarViewport, ViewDockStyle.Fill); // Place the bar inside a header style area _viewHeadingBar = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.HeaderBar.Back, Navigator.StateNormal.HeaderGroup.HeaderBar.Border, Navigator.StateNormal.HeaderGroup.HeaderBar, PaletteMetricBool.None, PaletteMetricPadding.HeaderGroupPaddingSecondary, VisualOrientation.Top); _viewHeadingBar.Add(_layoutBarDocker, ViewDockStyle.Fill); // Construct the viewlet instance _headerGroup = new ViewletHeaderGroup(Navigator, Redirector, NeedPaintDelegate); // Create and initialize the standard header group view elements _viewGroup = _headerGroup.Construct(_oldRoot); // Add the extra bar header alongside the standard primary and secondary headers _viewGroup.Insert(0, _viewHeadingBar); _viewGroup.SetDock(_viewHeadingBar, ViewDockStyle.Top); // Define the new root for the view hieararchy _newRoot = _viewGroup; // Must call the base class to perform common actions base.CreateCheckItemView(); }