namespace QuikDawEditor.EDITING.MiscClasses; public class ClipSelectionRect : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged([CallerMemberName] string propertyName = "") { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public double ScaleFactorX { get { return 1 / editingProject.ViewXZoomFac; } } private double _rectLeft; public double rectLeft { get { return _rectLeft; } set { _rectLeft = value; NotifyPropertyChanged(nameof(rectMargin)); } } private double _rectTop; public double rectTop { get { return _rectTop; } set { _rectTop = value; NotifyPropertyChanged(nameof(rectMargin)); } } public Thickness rectMargin { get { return new Thickness(rectLeft * editingProject.ViewXZoomFac, rectTop, 0, 0); } } private double _rectWidth; public double rectWidth { get { return _rectWidth; } set { _rectWidth = value; NotifyPropertyChanged(nameof(rectWidth)); } } private double _rectHeight; public double rectHeight { get { return _rectHeight; } set { _rectHeight = value; NotifyPropertyChanged(nameof(rectHeight)); } } private bool _IsVisible = false; public bool IsVisible { get { return _IsVisible; } set { _IsVisible = value; NotifyPropertyChanged(nameof(IsVisible)); NotifyPropertyChanged(nameof(ScaleFactorX)); } } public Rect GetClipSelectingRect { get { return new Rect(PixelsToMsec(rectLeft) * editingProject.ViewXZoomFac, rectTop, PixelsToMsec(rectWidth) / editingProject.ViewXZoomFac, rectHeight); } } }