/// <summary> /// Initializes a new instance of the <see cref="RegionChangedEventArgs"/> class. /// </summary> /// <param name="beforeChange"> /// A region with properties equivalent to those without the change. /// </param> /// <param name="afterChange"> /// A region with properties equivalent to those with the change. /// </param> /// <param name="changeTypes"> /// The types of changes encapsulated by this change event. /// </param> internal RegionChangedEventArgs( IReadOnlyRegion beforeChange, IReadOnlyRegion afterChange, RegionChangeTypes changeTypes) { this.BeforeChange = beforeChange; this.AfterChange = afterChange; this.ChangeTypes = changeTypes; }
private void MaybeRecalculate(Coord delta, RegionChangeTypes changeType) { this.AdjustInnerRegion(); if (changeType.HasFlag(RegionChangeTypes.Resize)) { this.Recalculate(); } else { this.namePlate.Region.TryTranslate(delta, out _); this.topLeft.Region.TryTranslate(delta, out _); this.topRight.Region.TryTranslate(delta, out _); this.bottomLeft.Region.TryTranslate(delta, out _); this.bottomRight.Region.TryTranslate(delta, out _); this.leftStroke.Region.TryTranslate(delta, out _); this.topStroke.Region.TryTranslate(delta, out _); this.rightStroke.Region.TryTranslate(delta, out _); this.bottomStroke.Region.TryTranslate(delta, out _); } }
/// <summary> /// Initializes a new instance of the <see cref="RegionChangedEventArgs"/> class. /// </summary> /// <param name="beforeChange"> /// A region with properties equivalent to those without the change. /// </param> /// <param name="afterChange"> /// A region with properties equivalent to those with the change. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when <paramref name="beforeChange"/> or <paramref name="afterChange"/> is <see langword="null"/>. /// </exception> public RegionChangedEventArgs( IReadOnlyRegion beforeChange, IReadOnlyRegion afterChange) { this.BeforeChange = beforeChange ?? throw new ArgumentNullException(nameof(beforeChange)); this.AfterChange = afterChange ?? throw new ArgumentNullException(nameof(afterChange)); RegionChangeTypes changeTypes = default; if (beforeChange.TopLeft != afterChange.TopLeft) { changeTypes |= RegionChangeTypes.Move; } if (beforeChange.MathHeight != afterChange.MathHeight || beforeChange.MathWidth != afterChange.MathWidth) { changeTypes |= RegionChangeTypes.Resize; } this.ChangeTypes = changeTypes; }