/// <summary> /// Create the mode specific view hierarchy. /// </summary> /// <returns>View element to use as base of hierarchy.</returns> protected override ViewBase CreateStackCheckButtonView() { // Let base class do common stuff first base.CreateStackCheckButtonView(); // Layout contains all the stack elements _viewLayout = new ViewLayoutDocker(); // Cache the border edge palette to use PaletteBorderEdge buttonEdgePalette = (Navigator.Enabled ? Navigator.StateNormal.BorderEdge : Navigator.StateDisabled.BorderEdge); // Create the scrolling viewport and pass in the _viewLayout as the content to scroll _viewScrollViewport = new ViewLayoutScrollViewport(Navigator, _viewLayout, buttonEdgePalette, null, PaletteMetricPadding.None, PaletteMetricInt.None, VisualOrientation.Top, RelativePositionAlign.Near, Navigator.Stack.StackAnimation, (Navigator.Stack.StackOrientation == Orientation.Vertical), NeedPaintDelegate); // Reparent the child panel that contains the actual pages, into the child control _viewScrollViewport.MakeParent(Navigator.ChildPanel); // Create the header group and fill with the view layout _headerGroup = new ViewletHeaderGroup(Navigator, Redirector, NeedPaintDelegate); ViewBase newRoot = _headerGroup.Construct(_viewScrollViewport); // Put the old root as the filler inside stack elements _viewLayout.Add(_oldRoot, ViewDockStyle.Fill); return(newRoot); }
/// <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(); }
/// <summary> /// Construct the view appropriate for this builder. /// </summary> /// <param name="navigator">Reference to navigator instance.</param> /// <param name="manager">Reference to current manager.</param> /// <param name="redirector">Palette redirector.</param> public override void Construct(KryptonNavigator navigator, ViewManager manager, PaletteRedirect redirector) { // Let base class perform common operations base.Construct(navigator, manager, redirector); // Get the current root element _oldRoot = ViewManager.Root; // Construct the viewlet instance _headerGroup = new ViewletHeaderGroup(navigator, redirector, NeedPaintDelegate); // Create and initialize all objects ViewBase newRoot = _headerGroup.Construct(_oldRoot); _headerGroup.PostCreate(); // Assign the new root ViewManager.Root = newRoot; // Need to monitor changes in the enabled state Navigator.EnabledChanged += new EventHandler(OnEnabledChanged); }