/// <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 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) { _oldRoot }; // 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.BarPaddingOutside, PaletteMetricInt.CheckButtonGap, Navigator.Bar.BarOrientation, Navigator.Bar.ItemAlignment, Navigator.Bar.BarAnimation) { _layoutBar }; // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker { { _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 { { _drawGroup, ViewDockStyle.Fill }, { _layoutBarDocker, ViewDockStyle.Top } }; // Create the top level panel and put a layout docker inside it _drawPanel = new ViewDrawPanel(Navigator.StateNormal.Back) { _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) { _layoutBar }; // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker { { _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) { { _layoutBarDocker, ViewDockStyle.Fill } }; // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDocker { { new ViewLayoutPageHide(Navigator), ViewDockStyle.Fill }, { _viewHeadingBar, ViewDockStyle.Top } }; // Create the top level panel and put a layout docker inside it _drawPanel = new ViewDrawPanel(Navigator.StateNormal.Back) { _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) { _layoutBar }; // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker { { _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) { { _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(); }
/// <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 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) { 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) { _layoutBar }; // Create the button bar area docker _layoutBarDocker = new ViewLayoutDocker { { _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) { _layoutBarDocker }; // Create the docker used to layout contents of main panel and fill with group _layoutPanelDocker = new ViewLayoutDockerOverlap(_drawGroup, _layoutOverlap, layoutBar) { { _layoutOverlap, ViewDockStyle.Top }, { _drawGroup, ViewDockStyle.Fill } }; // Place the headers and page holding area into the group _topGroup = new ViewLayoutDocker { { _viewHeadingSecondary, ViewDockStyle.Bottom }, { _viewHeadingPrimary, ViewDockStyle.Top }, { _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) { _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> /// 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 += 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 += OnScrollVChanged; ScrollbarH.ScrollChanged += 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); }