/// <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();
// Add the layout docker inside the border of the group
_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 top level group view
_viewGroup = new ViewDrawDocker(Navigator.StateNormal.HeaderGroup.Back,
Navigator.StateNormal.HeaderGroup.Border);
// Fill the group with the scrolling viewport
_viewGroup.Add(_viewScrollViewport, ViewDockStyle.Fill);
// Put the old root as the filler inside the group
_viewLayout.Add(_oldRoot, ViewDockStyle.Fill);
// Define the top level view to become the new root
return _viewGroup;
}