Browse Source

In `Avalonia.Base`, sealed several classes whose constructors aren't available from public API, and which have no inheritors (#13043)

* In `Avalonia.Base`, sealed several classes whose constructors aren't available from public API, and which have no inheritors

* un-sealed class that is inherited from

* Made `Delete` method non-virtual

---------

Co-authored-by: Lehonti Ramos <lehonti@ramos>
revert-13066-fixes/13064-logical-scrollable
Lehonti Ramos 3 years ago
committed by GitHub
parent
commit
bb5460287e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Avalonia.Base/Animation/Easings/CubicBezierEasing.cs
  2. 2
      src/Avalonia.Base/AttachedProperty.cs
  3. 2
      src/Avalonia.Base/Data/InstancedBinding.cs
  4. 2
      src/Avalonia.Base/Diagnostics/AppliedStyle.cs
  5. 2
      src/Avalonia.Base/Diagnostics/AvaloniaPropertyValue.cs
  6. 4
      src/Avalonia.Base/Input/GestureRecognizers/VelocityTracker.cs
  7. 2
      src/Avalonia.Base/Input/ScrollGestureEventArgs.cs
  8. 2
      src/Avalonia.Base/Rendering/Composition/Animations/ExpressionAnimation.cs
  9. 2
      src/Avalonia.Base/Rendering/Composition/Animations/ImplicitAnimationCollection.cs
  10. 2
      src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleCompositionBrush.cs
  11. 4
      src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleContentBrush.cs
  12. 4
      src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleImageBrush.cs
  13. 4
      src/Avalonia.Base/Rendering/Composition/CompositionCustomVisual.cs
  14. 2
      src/Avalonia.Base/Rendering/Composition/CompositionDrawingSurface.cs
  15. 2
      src/Avalonia.Base/Rendering/Composition/CompositionPropertySet.cs
  16. 2
      src/Avalonia.Base/Rendering/Composition/Server/ServerCustomCompositionVisual.cs
  17. 2
      src/Avalonia.Base/Rendering/Composition/Transport/Batch.cs
  18. 4
      src/Avalonia.Base/Threading/DispatcherOperation.cs
  19. 4
      src/Avalonia.Base/Threading/DispatcherPriorityAwaitable.cs
  20. 4
      src/Avalonia.Base/Utilities/Span.cs
  21. 4
      src/Avalonia.Base/Utilities/WeakEvent.cs
  22. 2
      src/Avalonia.Base/Vector3D.cs

4
src/Avalonia.Base/Animation/Easings/CubicBezierEasing.cs

@ -2,7 +2,7 @@ using System;
namespace Avalonia.Animation.Easings;
public class CubicBezierEasing : IEasing
public sealed class CubicBezierEasing : IEasing
{
private CubicBezier _bezier;
//cubic-bezier(0.25, 0.1, 0.25, 1.0)
@ -24,4 +24,4 @@ public class CubicBezierEasing : IEasing
{
return _bezier.Solve(progress);
}
}
}

2
src/Avalonia.Base/AttachedProperty.cs

@ -6,7 +6,7 @@ namespace Avalonia
/// An attached avalonia property.
/// </summary>
/// <typeparam name="TValue">The type of the property's value.</typeparam>
public class AttachedProperty<TValue> : StyledProperty<TValue>
public sealed class AttachedProperty<TValue> : StyledProperty<TValue>
{
/// <summary>
/// Initializes a new instance of the <see cref="AttachedProperty{TValue}"/> class.

2
src/Avalonia.Base/Data/InstancedBinding.cs

@ -14,7 +14,7 @@ namespace Avalonia.Data
/// *instanced* by calling <see cref="IBinding.Initiate(AvaloniaObject, AvaloniaProperty, object, bool)"/>
/// on a target object.
/// </remarks>
public class InstancedBinding
public sealed class InstancedBinding
{
/// <summary>
/// Initializes a new instance of the <see cref="InstancedBinding"/> class.

2
src/Avalonia.Base/Diagnostics/AppliedStyle.cs

@ -2,7 +2,7 @@
namespace Avalonia.Diagnostics
{
public class AppliedStyle
public sealed class AppliedStyle
{
private readonly IStyleInstance _instance;

2
src/Avalonia.Base/Diagnostics/AvaloniaPropertyValue.cs

@ -6,7 +6,7 @@ namespace Avalonia.Diagnostics
/// Holds diagnostic-related information about the value of an <see cref="AvaloniaProperty"/>
/// on an <see cref="AvaloniaObject"/>.
/// </summary>
public class AvaloniaPropertyValue
public sealed class AvaloniaPropertyValue
{
internal AvaloniaPropertyValue(
AvaloniaProperty property,

4
src/Avalonia.Base/Input/GestureRecognizers/VelocityTracker.cs

@ -194,7 +194,7 @@ namespace Avalonia.Input.GestureRecognizers
}
/// An nth degree polynomial fit to a dataset.
internal class PolynomialFit
internal sealed class PolynomialFit
{
/// Creates a polynomial fit of the given degree.
///
@ -213,7 +213,7 @@ namespace Avalonia.Input.GestureRecognizers
public double Confidence { get; set; }
}
internal class LeastSquaresSolver
internal sealed class LeastSquaresSolver
{
private const double PrecisionErrorTolerance = 1e-10;

2
src/Avalonia.Base/Input/ScrollGestureEventArgs.cs

@ -31,7 +31,7 @@ namespace Avalonia.Input
}
}
public class ScrollGestureInertiaStartingEventArgs : RoutedEventArgs
public sealed class ScrollGestureInertiaStartingEventArgs : RoutedEventArgs
{
public int Id { get; }
public Vector Inertia { get; }

2
src/Avalonia.Base/Rendering/Composition/Animations/ExpressionAnimation.cs

@ -16,7 +16,7 @@ namespace Avalonia.Rendering.Composition.Animations
/// of Composition objects, mathematical functions and operators and Input.
/// Use the <see cref="CompositionObject.StartAnimation(string , CompositionAnimation)"/> method to start the animation.
/// </remarks>
public class ExpressionAnimation : CompositionAnimation
public sealed class ExpressionAnimation : CompositionAnimation
{
private string? _expression;
private Expression? _parsedExpression;

2
src/Avalonia.Base/Rendering/Composition/Animations/ImplicitAnimationCollection.cs

@ -17,7 +17,7 @@ namespace Avalonia.Rendering.Composition.Animations
/// When expression is used in ImplicitAnimationCollection a special keyword `this.FinalValue` will represent
/// the final value of the animated property that was changed
/// </remarks>
public class ImplicitAnimationCollection : CompositionObject, IDictionary<string, ICompositionAnimationBase>
public sealed class ImplicitAnimationCollection : CompositionObject, IDictionary<string, ICompositionAnimationBase>
{
private readonly Dictionary<string, ICompositionAnimationBase> _inner = new Dictionary<string, ICompositionAnimationBase>();
private readonly IDictionary<string, ICompositionAnimationBase> _innerface;

2
src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleCompositionBrush.cs

@ -14,7 +14,7 @@ namespace Avalonia.Rendering.Composition.Server
ITransform? IBrush.Transform => Transform;
}
class ServerCompositionSimpleGradientBrush : ServerCompositionSimpleBrush, IGradientBrush
internal class ServerCompositionSimpleGradientBrush : ServerCompositionSimpleBrush, IGradientBrush
{
internal ServerCompositionSimpleGradientBrush(ServerCompositor compositor) : base(compositor)

4
src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleContentBrush.cs

@ -5,7 +5,7 @@ using Avalonia.Rendering.Composition.Transport;
namespace Avalonia.Rendering.Composition.Server;
internal class ServerCompositionSimpleContentBrush : ServerCompositionSimpleTileBrush, ITileBrush, ISceneBrush
internal sealed class ServerCompositionSimpleContentBrush : ServerCompositionSimpleTileBrush, ITileBrush, ISceneBrush
{
private CompositionRenderDataSceneBrushContent? _content;
@ -21,4 +21,4 @@ internal class ServerCompositionSimpleContentBrush : ServerCompositionSimpleTile
base.DeserializeChangesCore(reader, committedAt);
_content = reader.ReadObject<CompositionRenderDataSceneBrushContent?>();
}
}
}

4
src/Avalonia.Base/Rendering/Composition/Brushes/ServerSimpleImageBrush.cs

@ -9,7 +9,7 @@ using Avalonia.Utilities;
namespace Avalonia.Rendering.Composition.Server;
internal class ServerCompositionSimpleImageBrush : ServerCompositionSimpleTileBrush,
internal sealed class ServerCompositionSimpleImageBrush : ServerCompositionSimpleTileBrush,
IImageBrush, IImageBrushSource
{
public IImageBrushSource? Source => this;
@ -34,4 +34,4 @@ internal class ServerCompositionSimpleImageBrush : ServerCompositionSimpleTileBr
Bitmap = null;
Bitmap = reader.ReadObject<IRef<IBitmapImpl>>();
}
}
}

4
src/Avalonia.Base/Rendering/Composition/CompositionCustomVisual.cs

@ -5,7 +5,7 @@ using Avalonia.Rendering.Composition.Transport;
namespace Avalonia.Rendering.Composition;
public class CompositionCustomVisual : CompositionContainerVisual
public sealed class CompositionCustomVisual : CompositionContainerVisual
{
private List<object>? _messages;
@ -34,4 +34,4 @@ public class CompositionCustomVisual : CompositionContainerVisual
_messages.Clear();
}
}
}
}

2
src/Avalonia.Base/Rendering/Composition/CompositionDrawingSurface.cs

@ -5,7 +5,7 @@ using Avalonia.Threading;
namespace Avalonia.Rendering.Composition;
public class CompositionDrawingSurface : CompositionSurface, IDisposable
public sealed class CompositionDrawingSurface : CompositionSurface, IDisposable
{
internal new ServerCompositionDrawingSurface Server => (ServerCompositionDrawingSurface)base.Server!;
internal CompositionDrawingSurface(Compositor compositor) : base(compositor, new ServerCompositionDrawingSurface(compositor.Server))

2
src/Avalonia.Base/Rendering/Composition/CompositionPropertySet.cs

@ -17,7 +17,7 @@ namespace Avalonia.Rendering.Composition
/// <see cref="CompositionPropertySet"/> does not support a delete function – ensure you use <see cref="CompositionPropertySet"/>
/// to store values that will be shared across the application.
/// </summary>
public class CompositionPropertySet : CompositionObject
public sealed class CompositionPropertySet : CompositionObject
{
private readonly Dictionary<string, ExpressionVariant> _variants = new Dictionary<string, ExpressionVariant>();
private readonly Dictionary<string, CompositionObject> _objects = new Dictionary<string, CompositionObject>();

2
src/Avalonia.Base/Rendering/Composition/Server/ServerCustomCompositionVisual.cs

@ -6,7 +6,7 @@ using Avalonia.Rendering.Composition.Transport;
namespace Avalonia.Rendering.Composition.Server;
internal class ServerCompositionCustomVisual : ServerCompositionContainerVisual, IServerClockItem
internal sealed class ServerCompositionCustomVisual : ServerCompositionContainerVisual, IServerClockItem
{
private readonly CompositionCustomVisualHandler _handler;
private bool _wantsNextAnimationFrameAfterTick;

2
src/Avalonia.Base/Rendering/Composition/Transport/Batch.cs

@ -9,7 +9,7 @@ namespace Avalonia.Rendering.Composition.Transport
/// <summary>
/// Represents a group of serialized changes from the UI thread to be atomically applied at the render thread
/// </summary>
public class CompositionBatch
public sealed class CompositionBatch
{
private static long _nextSequenceId = 1;
private static readonly ConcurrentBag<BatchStreamData> _pool = new();

4
src/Avalonia.Base/Threading/DispatcherOperation.cs

@ -176,7 +176,7 @@ public class DispatcherOperation
GetTask().GetAwaiter().GetResult();
}
private class DispatcherOperationFrame : DispatcherFrame
private sealed class DispatcherOperationFrame : DispatcherFrame
{
// Note: we pass "exitWhenRequested=false" to the base
// DispatcherFrame construsctor because we do not want to exit
@ -373,7 +373,7 @@ public class DispatcherOperation<T> : DispatcherOperation
}
}
internal class SendOrPostCallbackDispatcherOperation : DispatcherOperation
internal sealed class SendOrPostCallbackDispatcherOperation : DispatcherOperation
{
private readonly object? _arg;

4
src/Avalonia.Base/Threading/DispatcherPriorityAwaitable.cs

@ -27,7 +27,7 @@ public class DispatcherPriorityAwaitable : INotifyCompletion
public DispatcherPriorityAwaitable GetAwaiter() => this;
}
public class DispatcherPriorityAwaitable<T> : DispatcherPriorityAwaitable
public sealed class DispatcherPriorityAwaitable<T> : DispatcherPriorityAwaitable
{
internal DispatcherPriorityAwaitable(Dispatcher dispatcher, Task<T> task, DispatcherPriority priority) : base(
dispatcher, task, priority)
@ -37,4 +37,4 @@ public class DispatcherPriorityAwaitable<T> : DispatcherPriorityAwaitable
public new T GetResult() => ((Task<T>)Task).GetAwaiter().GetResult();
public new DispatcherPriorityAwaitable<T> GetAwaiter() => this;
}
}

4
src/Avalonia.Base/Utilities/Span.cs

@ -32,7 +32,7 @@ namespace Avalonia.Utilities
/// <summary>
/// VECTOR: A series of spans
/// </summary>
internal class SpanVector : IEnumerable
internal sealed class SpanVector : IEnumerable
{
private static readonly Equals s_referenceEquals = object.ReferenceEquals;
private static readonly Equals s_equals = object.Equals;
@ -67,7 +67,7 @@ namespace Avalonia.Utilities
/// <summary>
/// Delete n elements of vector
/// </summary>
internal virtual void Delete(int index, int count, ref SpanPosition latestPosition)
internal void Delete(int index, int count, ref SpanPosition latestPosition)
{
DeleteInternal(index, count);

4
src/Avalonia.Base/Utilities/WeakEvent.cs

@ -7,7 +7,7 @@ namespace Avalonia.Utilities;
/// <summary>
/// Manages subscriptions to events using weak listeners.
/// </summary>
public class WeakEvent<TSender, TEventArgs> : WeakEvent where TEventArgs : EventArgs where TSender : class
public sealed class WeakEvent<TSender, TEventArgs> : WeakEvent where TEventArgs : EventArgs where TSender : class
{
private readonly Func<TSender, EventHandler<TEventArgs>, Action> _subscribe;
@ -42,7 +42,7 @@ public class WeakEvent<TSender, TEventArgs> : WeakEvent where TEventArgs : Event
subscription.Remove(subscriber);
}
private class Subscription
private sealed class Subscription
{
private readonly WeakEvent<TSender, TEventArgs> _ev;
private readonly TSender _target;

2
src/Avalonia.Base/Vector3D.cs

@ -142,4 +142,4 @@ public readonly record struct Vector3D(double X, double Y, double Z)
/// Computes the Euclidean distance between the two given points.
/// </summary>
public static double Distance(Vector3D value1, Vector3D value2) => Math.Sqrt(DistanceSquared(value1, value2));
}
}

Loading…
Cancel
Save