/// <summary> /// Initialize a new instance of the PaletteDoubleOverride class. /// </summary> /// <param name="normalTriple">Normal palette to use.</param> /// <param name="overrideTriple">Override palette to use.</param> /// <param name="overrideState">State used by the override.</param> /// <exception cref="ArgumentNullException"></exception> public PaletteDoubleOverride(IPaletteDouble normalTriple, IPaletteDouble overrideTriple, PaletteState overrideState) { Debug.Assert(normalTriple != null); Debug.Assert(overrideTriple != null); if (normalTriple == null) { throw new ArgumentNullException(nameof(normalTriple)); } if (overrideTriple == null) { throw new ArgumentNullException(nameof(overrideTriple)); } // Create the triple override instances _overrideBack = new PaletteBackInheritOverride(normalTriple.PaletteBack, overrideTriple.PaletteBack); _overrideBorder = new PaletteBorderInheritOverride(normalTriple.PaletteBorder, overrideTriple.PaletteBorder); // Do not apply an override by default Apply = false; // Always override the state Override = true; OverrideState = overrideState; }
/// <summary> /// Initialize a new instance of the PaletteNodeOverride class. /// </summary> /// <param name="triple">Palette to use.</param> /// <exception cref="ArgumentNullException"></exception> public PaletteNodeOverride(IPaletteTriple triple) { Debug.Assert(triple != null); // Validate incoming references if (triple == null) { throw new ArgumentNullException(nameof(triple)); } // Create the triple override instances _overrideBack = new PaletteBackInheritNode(triple.PaletteBack); _overrideBorder = new PaletteBorderInheritOverride(triple.PaletteBorder, triple.PaletteBorder); _overrideContent = new PaletteContentInheritNode(triple.PaletteContent); }