| File: System\Windows\Input\Manipulations\InertiaParameters2D.cs | Web Access |
| Project: src\wpf\src\Microsoft.DotNet.Wpf\src\System.Windows.Input.Manipulations\System.Windows.Input.Manipulations.csproj (System.Windows.Input.Manipulations) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; namespace System.Windows.Input.Manipulations { /// <summary> /// Base class from which all inertia parameter classes /// are derived. /// </summary> public abstract class InertiaParameters2D { /// <summary> /// Fires when a property changes. /// </summary> internal event Action<InertiaParameters2D, string> Changed; /// <summary> /// Changes a property value, firing the Changed event, if appropriate. /// </summary> /// <remarks> /// This is intended to be called only by derived classes, but we can't put /// the "protected" qualifier on it because doing so would make the method /// visible outside this assembly, despite the "internal" keyword. /// </remarks> internal void ProtectedChangeProperty(Func<bool> isEqual, Action setNewValue, string paramName) { Debug.Assert(isEqual != null); Debug.Assert(setNewValue != null); Debug.Assert(paramName != null); if (!isEqual()) { setNewValue(); if (Changed != null) { Changed(this, paramName); } } } /// <summary> /// Internal constructor, to prevent deriving new /// subclasses outside this assembly. /// </summary> internal InertiaParameters2D() { } } }