/// <summary>
        /// Initialize a new instance of the PaletteNavigatorOtherRedirect class.
        /// </summary>
        /// <param name="redirectCheckButton">Inheritence redirection instance for the check button.</param>
        /// <param name="redirectOverflowButton">Inheritence redirection instance for the outlook overflow button.</param>
        /// <param name="redirectMiniButton">Inheritence redirection instance for the outlook mini button.</param>
        /// <param name="redirectTab">Inheritence redirection instance for the tab.</param>
        /// <param name="redirectRibbonTab">Inheritence redirection instance for the ribbon tab.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public PaletteNavigatorOtherRedirect(PaletteRedirect redirectCheckButton,
                                             PaletteRedirect redirectOverflowButton,
                                             PaletteRedirect redirectMiniButton,
                                             PaletteRedirect redirectTab,
                                             PaletteRedirect redirectRibbonTab,
                                             NeedPaintHandler needPaint)
        {
            // Create the palette storage
            _paletteCheckButton = new PaletteTripleRedirect(redirectCheckButton,
                                                            PaletteBackStyle.ButtonStandalone,
                                                            PaletteBorderStyle.ButtonStandalone,
                                                            PaletteContentStyle.ButtonStandalone,
                                                            needPaint);

            _paletteOverflowButton = new PaletteTripleRedirect(redirectCheckButton,
                                                               PaletteBackStyle.ButtonNavigatorOverflow,
                                                               PaletteBorderStyle.ButtonNavigatorOverflow,
                                                               PaletteContentStyle.ButtonNavigatorOverflow,
                                                               needPaint);

            _paletteMiniButton = new PaletteTripleRedirect(redirectMiniButton,
                                                           PaletteBackStyle.ButtonNavigatorMini,
                                                           PaletteBorderStyle.ButtonNavigatorMini,
                                                           PaletteContentStyle.ButtonNavigatorMini,
                                                           needPaint);

            _paletteTab = new PaletteTabTripleRedirect(redirectTab,
                                                       PaletteBackStyle.TabHighProfile,
                                                       PaletteBorderStyle.TabHighProfile,
                                                       PaletteContentStyle.TabHighProfile,
                                                       needPaint);

            _paletteRibbonTab = new PaletteRibbonTabContentRedirect(redirectRibbonTab, needPaint);
        }
 /// <summary>
 /// Set the redirection states.
 /// </summary>
 /// <param name="disabled">Redirection for disabled state requests.</param>
 /// <param name="normal">Redirection for normal state requests.</param>
 /// <param name="pressed">Redirection for pressed state requests.</param>
 /// <param name="tracking">Redirection for tracking state requests.</param>
 /// <param name="selected">Redirection for selected states requests.</param>
 /// <param name="focusOverride">Redirection for focus override state requests.</param>
 public virtual void SetRedirectStates(PaletteRibbonTabContent disabled,
                                       PaletteRibbonTabContent normal,
                                       PaletteRibbonTabContent pressed,
                                       PaletteRibbonTabContent tracking,
                                       PaletteRibbonTabContent selected,
                                       PaletteRibbonTabContentRedirect focusOverride)
 {
     _disabledBack         = disabled.TabDraw;
     _disabledText         = disabled.TabDraw;
     _normalBack           = normal.TabDraw;
     _normalText           = normal.TabDraw;
     _pressedBack          = pressed.TabDraw;
     _pressedText          = pressed.TabDraw;
     _trackingBack         = tracking.TabDraw;
     _trackingText         = tracking.TabDraw;
     _selectedBack         = selected.TabDraw;
     _selectedText         = selected.TabDraw;
     _focusOverrideBack    = focusOverride.TabDraw;
     _focusOverrideText    = focusOverride.TabDraw;
     _disabledContent      = disabled.Content;
     _normalContent        = normal.Content;
     _pressedContent       = pressed.Content;
     _trackingContent      = tracking.Content;
     _selectedContent      = selected.Content;
     _focusOverrideContent = focusOverride.Content;
 }
 /// <summary>
 /// Initialize a new instance of the PaletteNavigatorNormabled class.
 /// </summary>
 /// <param name="navigator">Reference to owning navigator.</param>
 /// <param name="redirectNavigator">Inheritence redirection for navigator level.</param>
 /// <param name="redirectNavigatorPage">Inheritence redirection for page level.</param>
 /// <param name="redirectNavigatorHeaderGroup">Inheritence redirection for header groups level.</param>
 /// <param name="redirectNavigatorHeaderPrimary">Inheritence redirection for primary header.</param>
 /// <param name="redirectNavigatorHeaderSecondary">Inheritence redirection for secondary header.</param>
 /// <param name="redirectNavigatorHeaderBar">Inheritence redirection for bar header.</param>
 /// <param name="redirectNavigatorHeaderOverflow">Inheritence redirection for bar header.</param>
 /// <param name="redirectNavigatorCheckButton">Inheritence redirection for check button.</param>
 /// <param name="redirectNavigatorOverflowButton">Inheritence redirection for overflow button.</param>
 /// <param name="redirectNavigatorMiniButton">Inheritence redirection for check button.</param>
 /// <param name="redirectNavigatorBar">Inheritence redirection for bar.</param>
 /// <param name="redirectNavigatorBorderEdge">Inheritence redirection for border edge.</param>
 /// <param name="redirectNavigatorSeparator">Inheritence redirection for separator.</param>
 /// <param name="redirectNavigatorTab">Inheritence redirection for tab.</param>
 /// <param name="redirectNavigatorRibbonTab">Inheritence redirection for ribbon tab.</param>
 /// <param name="redirectNavigatorRibbonGeneral">Inheritence redirection for ribbon general.</param>
 /// <param name="needPaint">Delegate for notifying paint requests.</param>
 public PaletteNavigatorRedirect(KryptonNavigator navigator,
                                 PaletteRedirect redirectNavigator,
                                 PaletteRedirect redirectNavigatorPage,
                                 PaletteRedirect redirectNavigatorHeaderGroup,
                                 PaletteRedirect redirectNavigatorHeaderPrimary,
                                 PaletteRedirect redirectNavigatorHeaderSecondary,
                                 PaletteRedirect redirectNavigatorHeaderBar,
                                 PaletteRedirect redirectNavigatorHeaderOverflow,
                                 PaletteRedirect redirectNavigatorCheckButton,
                                 PaletteRedirect redirectNavigatorOverflowButton,
                                 PaletteRedirect redirectNavigatorMiniButton,
                                 PaletteRedirect redirectNavigatorBar,
                                 PaletteRedirect redirectNavigatorBorderEdge,
                                 PaletteRedirect redirectNavigatorSeparator,
                                 PaletteRedirect redirectNavigatorTab,
                                 PaletteRedirect redirectNavigatorRibbonTab,
                                 PaletteRedirect redirectNavigatorRibbonGeneral,
                                 NeedPaintHandler needPaint)
     : base(redirectNavigator, PaletteBackStyle.PanelClient,
            PaletteBorderStyle.ControlClient, needPaint)
 {
     // Create the palette storage
     _palettePageRedirect              = new PalettePageRedirect(redirectNavigatorPage, needPaint);
     _paletteHeaderGroupRedirect       = new PaletteNavigatorHeaderGroupRedirect(redirectNavigatorHeaderGroup, redirectNavigatorHeaderPrimary, redirectNavigatorHeaderSecondary, redirectNavigatorHeaderBar, redirectNavigatorHeaderOverflow, needPaint);
     _paletteCheckButton               = new PaletteTripleRedirect(redirectNavigatorCheckButton, PaletteBackStyle.ButtonStandalone, PaletteBorderStyle.ButtonStandalone, PaletteContentStyle.ButtonStandalone, needPaint);
     _paletteOverflowButton            = new PaletteTripleRedirect(redirectNavigatorOverflowButton, PaletteBackStyle.ButtonNavigatorOverflow, PaletteBorderStyle.ButtonNavigatorOverflow, PaletteContentStyle.ButtonNavigatorOverflow, needPaint);
     _paletteMiniButton                = new PaletteTripleRedirect(redirectNavigatorMiniButton, PaletteBackStyle.ButtonNavigatorMini, PaletteBorderStyle.ButtonNavigatorMini, PaletteContentStyle.ButtonNavigatorMini, needPaint);
     _paletteBarRedirect               = new PaletteBarRedirect(redirectNavigatorBar, needPaint);
     _paletteBorderEdgeInheritRedirect = new PaletteBorderInheritRedirect(redirectNavigatorBorderEdge, PaletteBorderStyle.ControlClient);
     _paletteBorderEdgeRedirect        = new PaletteBorderEdgeRedirect(_paletteBorderEdgeInheritRedirect, needPaint);
     _paletteSeparator     = new PaletteSeparatorPaddingRedirect(redirectNavigatorSeparator, PaletteBackStyle.SeparatorHighInternalProfile, PaletteBorderStyle.SeparatorHighInternalProfile, needPaint);
     _paletteTab           = new PaletteTabTripleRedirect(redirectNavigatorTab, PaletteBackStyle.TabHighProfile, PaletteBorderStyle.TabHighProfile, PaletteContentStyle.TabHighProfile, needPaint);
     _paletteRibbonTab     = new PaletteRibbonTabContentRedirect(redirectNavigatorRibbonTab, needPaint);
     _paletteRibbonGeneral = new PaletteRibbonGeneralNavRedirect(redirectNavigatorRibbonGeneral, needPaint);
     _paletteMetrics       = new PaletteMetrics(navigator, needPaint);
 }