/// <summary>
 /// Initialize a new instance of the ButtonSpecManagerLayoutRibbon class.
 /// </summary>
 /// <param name="ribbon">Ribbon that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="fixedSpecs">Fixed set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricInt">Array of target metrics for outside/inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public ButtonSpecManagerLayoutRibbon(KryptonRibbon ribbon,
                                      PaletteRedirect redirector,
                                      ButtonSpecCollectionBase variableSpecs,
                                      ButtonSpecCollectionBase fixedSpecs,
                                      ViewLayoutDocker[] viewDockers,
                                      IPaletteMetric[] viewMetrics,
                                      PaletteMetricInt[] viewMetricInt,
                                      PaletteMetricPadding[] viewMetricPaddings,
                                      GetToolStripRenderer getRenderer,
                                      NeedPaintHandler needPaint)
     : base(ribbon, redirector, variableSpecs, fixedSpecs,
            viewDockers, viewMetrics, viewMetricInt,
            viewMetricPaddings, getRenderer, needPaint)
 {
 }
 /// <summary>
 /// Initialize a new instance of the ButtonSpecManagerDraw class.
 /// </summary>
 /// <param name="control">Control that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="fixedSpecs">Fixed set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricInt">Array of target metrics for outside/inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public ButtonSpecManagerDraw(Control control,
                              PaletteRedirect redirector,
                              ButtonSpecCollectionBase variableSpecs,
                              ButtonSpecCollectionBase fixedSpecs,
                              ViewDrawDocker[] viewDockers,
                              IPaletteMetric[] viewMetrics,
                              PaletteMetricInt[] viewMetricInt,
                              PaletteMetricPadding[] viewMetricPaddings,
                              GetToolStripRenderer getRenderer,
                              NeedPaintHandler needPaint)
     : this(control, redirector, variableSpecs, fixedSpecs, 
            viewDockers, viewMetrics, viewMetricInt, viewMetricInt,
            viewMetricPaddings, getRenderer, needPaint)
 {
 }
 /// <summary>
 /// Initialize a new instance of the ButtonSpecNavManagerLayoutBar class.
 /// </summary>
 /// <param name="control">Control that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricIntOutside">Array of target metrics for outside spacer size.</param>
 /// <param name="viewMetricIntInside">Array of target metrics for inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public ButtonSpecNavManagerLayoutBar(Control control,
                                      PaletteRedirect redirector,
                                      ButtonSpecCollectionBase variableSpecs,
                                      ViewLayoutDocker[] viewDockers,
                                      IPaletteMetric[] viewMetrics,
                                      PaletteMetricInt[] viewMetricIntOutside,
                                      PaletteMetricInt[] viewMetricIntInside,
                                      PaletteMetricPadding[] viewMetricPaddings,
                                      GetToolStripRenderer getRenderer,
                                      NeedPaintHandler needPaint)
     : this(control, redirector, variableSpecs,
            null, viewDockers, viewMetrics, 
            viewMetricIntOutside, viewMetricIntInside,
            viewMetricPaddings, getRenderer, needPaint)
 {
 }
 /// <summary>
 /// Initialize a new instance of the ButtonSpecManagerLayoutAppButton class.
 /// </summary>
 /// <param name="viewManager">Reference to context menu view manager.</param>
 /// <param name="control">Control that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="fixedSpecs">Fixed set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricInt">Array of target metrics for outside/inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public ButtonSpecManagerLayoutAppButton(ViewContextMenuManager viewManager,
                                         Control control,
                                         PaletteRedirect redirector,
                                         ButtonSpecCollectionBase variableSpecs,
                                         ButtonSpecCollectionBase fixedSpecs,
                                         ViewLayoutDocker[] viewDockers,
                                         IPaletteMetric[] viewMetrics,
                                         PaletteMetricInt[] viewMetricInt,
                                         PaletteMetricPadding[] viewMetricPaddings,
                                         GetToolStripRenderer getRenderer,
                                         NeedPaintHandler needPaint)
     : base(control, redirector, variableSpecs, fixedSpecs,
            viewDockers, viewMetrics, viewMetricInt,
            viewMetricPaddings, getRenderer, needPaint)
 {
     _viewManager = viewManager;
 }
 /// <summary>
 /// Initialize a new instance of the ButtonSpecNavManagerLayoutHeaderBar class.
 /// </summary>
 /// <param name="control">Control that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="fixedSpecs">Fixed set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricIntOutside">Array of target metrics for outside spacer size.</param>
 /// <param name="viewMetricIntInside">Array of target metrics for inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 /// <param name="paletteContent">Palette source for color remapping.</param>
 /// <param name="paletteState">Palette state for color remapping.</param>
 public ButtonSpecNavManagerLayoutHeaderBar(Control control,
                                            PaletteRedirect redirector,
                                            ButtonSpecCollectionBase variableSpecs,
                                            ButtonSpecCollectionBase fixedSpecs,
                                            ViewLayoutDocker[] viewDockers,
                                            IPaletteMetric[] viewMetrics,
                                            PaletteMetricInt[] viewMetricIntOutside,
                                            PaletteMetricInt[] viewMetricIntInside,
                                            PaletteMetricPadding[] viewMetricPaddings,
                                            GetToolStripRenderer getRenderer,
                                            NeedPaintHandler needPaint,
                                            IPaletteContent paletteContent,
                                            PaletteState paletteState)
     : base(control, redirector, variableSpecs, fixedSpecs, 
            viewDockers, viewMetrics, viewMetricIntOutside,
            viewMetricIntInside, viewMetricPaddings, getRenderer, 
            needPaint)
 {
     // Remember initial palette settings needed for color remapping
     _paletteContent = paletteContent;
     _paletteState = paletteState;
 }
 /// <summary>
 /// Initialize a new instance of the ButtonSpecNavManagerLayoutBar class.
 /// </summary>
 /// <param name="control">Control that owns the button manager.</param>
 /// <param name="redirector">Palette redirector.</param>
 /// <param name="variableSpecs">Variable set of button specifications.</param>
 /// <param name="fixedSpecs">Fixed set of button specifications.</param>
 /// <param name="viewDockers">Array of target view dockers.</param>
 /// <param name="viewMetrics">Array of target metric providers.</param>
 /// <param name="viewMetricIntOutside">Array of target metrics for outside spacer size.</param>
 /// <param name="viewMetricIntInside">Array of target metrics for inside spacer size.</param>
 /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
 /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public ButtonSpecNavManagerLayoutBar(Control control,
                                      PaletteRedirect redirector,
                                      ButtonSpecCollectionBase variableSpecs,
                                      ButtonSpecCollectionBase fixedSpecs,
                                      ViewLayoutDocker[] viewDockers,
                                      IPaletteMetric[] viewMetrics,
                                      PaletteMetricInt[] viewMetricIntOutside,
                                      PaletteMetricInt[] viewMetricIntInside,
                                      PaletteMetricPadding[] viewMetricPaddings,
                                      GetToolStripRenderer getRenderer,
                                      NeedPaintHandler needPaint)
     : base(control, redirector, variableSpecs, fixedSpecs, 
            viewDockers, viewMetrics, viewMetricIntOutside,
            viewMetricIntInside, viewMetricPaddings, getRenderer, 
            needPaint)
 {
     _remapTarget = ButtonSpecNavRemap.ButtonSpecRemapTarget.LabelPanel;
 }
        /// <summary>
        /// Initialize a new instance of the ButtonSpecManagerDraw class.
        /// </summary>
        /// <param name="control">Control that owns the button manager.</param>
        /// <param name="redirector">Palette redirector.</param>
        /// <param name="variableSpecs">Variable set of button specifications.</param>
        /// <param name="fixedSpecs">Fixed set of button specifications.</param>
        /// <param name="viewDockers">Array of target view dockers.</param>
        /// <param name="viewMetrics">Array of target metric providers.</param>
        /// <param name="viewMetricIntOutside">Array of target metrics for outside spacer size.</param>
        /// <param name="viewMetricIntInside">Array of target metrics for inside spacer size.</param>
        /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
        /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public ButtonSpecManagerDraw(Control control,
                                     PaletteRedirect redirector,
                                     ButtonSpecCollectionBase variableSpecs,
                                     ButtonSpecCollectionBase fixedSpecs,
                                     ViewDrawDocker[] viewDockers,
                                     IPaletteMetric[] viewMetrics,
                                     PaletteMetricInt[] viewMetricIntOutside,
                                     PaletteMetricInt[] viewMetricIntInside,
                                     PaletteMetricPadding[] viewMetricPaddings,
                                     GetToolStripRenderer getRenderer,
                                     NeedPaintHandler needPaint)
            : base(control, redirector, variableSpecs, fixedSpecs, 
                   viewMetrics, viewMetricIntOutside, viewMetricIntInside,
                   viewMetricPaddings, getRenderer, needPaint)
        {
            Debug.Assert(viewDockers != null);
            Debug.Assert(viewDockers.Length == viewMetrics.Length);
            Debug.Assert(viewDockers.Length == viewMetricPaddings.Length);

            // Remember references
            _viewDockers = viewDockers;

            Construct();
        }
        /// <summary>
        /// Initialize a new instance of the ButtonSpecManagerLayout class.
        /// </summary>
        /// <param name="control">Control that owns the button manager.</param>
        /// <param name="redirector">Palette redirector.</param>
        /// <param name="variableSpecs">Variable set of button specifications.</param>
        /// <param name="fixedSpecs">Fixed set of button specifications.</param>
        /// <param name="viewDockers">Array of target view dockers.</param>
        /// <param name="viewMetrics">Array of target metric providers.</param>
        /// <param name="viewMetricIntOutside">Array of target metrics for outside spacer size.</param>
        /// <param name="viewMetricIntInside">Array of target metrics for inside spacer size.</param>
        /// <param name="viewMetricPaddings">Array of target metrics for button padding.</param>
        /// <param name="getRenderer">Delegate for returning a tool strip renderer.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public ButtonSpecManagerLayout(Control control,
                                       PaletteRedirect redirector,
                                       ButtonSpecCollectionBase variableSpecs,
                                       ButtonSpecCollectionBase fixedSpecs,
                                       ViewLayoutDocker[] viewDockers,
                                       IPaletteMetric[] viewMetrics,
                                       PaletteMetricInt[] viewMetricIntOutside,
                                       PaletteMetricInt[] viewMetricIntInside,
                                       PaletteMetricPadding[] viewMetricPaddings,
                                       GetToolStripRenderer getRenderer,
                                       NeedPaintHandler needPaint)
            : base(control, redirector, variableSpecs, fixedSpecs, 
                   viewMetrics, viewMetricIntOutside, viewMetricIntInside,
                   viewMetricPaddings, getRenderer, needPaint)
        {
            // Remember references
            _viewDockers = viewDockers;

            Construct();
        }