diff --git a/src/Avalonia.Base/Styling/Activators/IStyleActivator.cs b/src/Avalonia.Base/Styling/Activators/IStyleActivator.cs
index 487198a861..7bc0777c61 100644
--- a/src/Avalonia.Base/Styling/Activators/IStyleActivator.cs
+++ b/src/Avalonia.Base/Styling/Activators/IStyleActivator.cs
@@ -15,8 +15,7 @@ namespace Avalonia.Styling.Activators
/// - The activation state can be re-evaluated at any time by calling
/// - No error or completion messages
///
- [Unstable]
- public interface IStyleActivator : IDisposable
+ internal interface IStyleActivator : IDisposable
{
///
/// Gets a value indicating whether the style is subscribed.
diff --git a/src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs b/src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs
index 142a3c3517..6d49485c20 100644
--- a/src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs
+++ b/src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs
@@ -5,8 +5,7 @@ namespace Avalonia.Styling.Activators
///
/// Receives notifications from an .
///
- [Unstable]
- public interface IStyleActivatorSink
+ internal interface IStyleActivatorSink
{
///
/// Called when the subscribed activator value changes.
diff --git a/src/Avalonia.Base/Styling/ChildSelector.cs b/src/Avalonia.Base/Styling/ChildSelector.cs
index 400ba18530..ac28d2bc46 100644
--- a/src/Avalonia.Base/Styling/ChildSelector.cs
+++ b/src/Avalonia.Base/Styling/ChildSelector.cs
@@ -19,13 +19,13 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => _parent.InTemplate;
+ internal override bool InTemplate => _parent.InTemplate;
///
- public override bool IsCombinator => true;
+ internal override bool IsCombinator => true;
///
- public override Type? TargetType => null;
+ internal override Type? TargetType => null;
public override string ToString(Style? owner)
{
@@ -37,7 +37,7 @@ namespace Avalonia.Styling
return _selectorString;
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
var controlParent = ((ILogical)control).LogicalParent;
@@ -64,7 +64,7 @@ namespace Avalonia.Styling
}
}
- protected override Selector? MovePrevious() => null;
- protected override Selector? MovePreviousOrParent() => _parent;
+ private protected override Selector? MovePrevious() => null;
+ private protected override Selector? MovePreviousOrParent() => _parent;
}
}
diff --git a/src/Avalonia.Base/Styling/DescendentSelector.cs b/src/Avalonia.Base/Styling/DescendentSelector.cs
index 20874a6877..6706eb4441 100644
--- a/src/Avalonia.Base/Styling/DescendentSelector.cs
+++ b/src/Avalonia.Base/Styling/DescendentSelector.cs
@@ -17,13 +17,13 @@ namespace Avalonia.Styling
}
///
- public override bool IsCombinator => true;
+ internal override bool IsCombinator => true;
///
- public override bool InTemplate => _parent.InTemplate;
+ internal override bool InTemplate => _parent.InTemplate;
///
- public override Type? TargetType => null;
+ internal override Type? TargetType => null;
public override string ToString(Style? owner)
{
@@ -35,7 +35,7 @@ namespace Avalonia.Styling
return _selectorString;
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
var c = (ILogical)control;
var descendantMatches = new OrActivatorBuilder();
@@ -69,7 +69,7 @@ namespace Avalonia.Styling
}
}
- protected override Selector? MovePrevious() => null;
- protected override Selector? MovePreviousOrParent() => _parent;
+ private protected override Selector? MovePrevious() => null;
+ private protected override Selector? MovePreviousOrParent() => _parent;
}
}
diff --git a/src/Avalonia.Base/Styling/NestingSelector.cs b/src/Avalonia.Base/Styling/NestingSelector.cs
index deb688ca4d..4a6b0cfda9 100644
--- a/src/Avalonia.Base/Styling/NestingSelector.cs
+++ b/src/Avalonia.Base/Styling/NestingSelector.cs
@@ -7,13 +7,13 @@ namespace Avalonia.Styling
///
internal class NestingSelector : Selector
{
- public override bool InTemplate => false;
- public override bool IsCombinator => false;
- public override Type? TargetType => null;
+ internal override bool InTemplate => false;
+ internal override bool IsCombinator => false;
+ internal override Type? TargetType => null;
public override string ToString(Style? owner) => owner?.Parent?.ToString() ?? "^";
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
if (parent is Style s && s.Selector is not null)
{
@@ -32,7 +32,7 @@ namespace Avalonia.Styling
"Nesting selector was specified but cannot determine parent selector.");
}
- protected override Selector? MovePrevious() => null;
- protected override Selector? MovePreviousOrParent() => null;
+ private protected override Selector? MovePrevious() => null;
+ private protected override Selector? MovePreviousOrParent() => null;
}
}
diff --git a/src/Avalonia.Base/Styling/NotSelector.cs b/src/Avalonia.Base/Styling/NotSelector.cs
index f6b1288ac5..9a541cbba7 100644
--- a/src/Avalonia.Base/Styling/NotSelector.cs
+++ b/src/Avalonia.Base/Styling/NotSelector.cs
@@ -26,13 +26,13 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => _argument.InTemplate;
+ internal override bool InTemplate => _argument.InTemplate;
///
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
///
- public override Type? TargetType => _previous?.TargetType;
+ internal override Type? TargetType => _previous?.TargetType;
///
public override string ToString(Style? owner)
@@ -45,7 +45,7 @@ namespace Avalonia.Styling
return _selectorString;
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
var innerResult = _argument.Match(control, parent, subscribe);
@@ -66,7 +66,7 @@ namespace Avalonia.Styling
}
}
- protected override Selector? MovePrevious() => _previous;
- protected override Selector? MovePreviousOrParent() => _previous;
+ private protected override Selector? MovePrevious() => _previous;
+ private protected override Selector? MovePreviousOrParent() => _previous;
}
}
diff --git a/src/Avalonia.Base/Styling/NthChildSelector.cs b/src/Avalonia.Base/Styling/NthChildSelector.cs
index 532179bb2c..bf6247aba1 100644
--- a/src/Avalonia.Base/Styling/NthChildSelector.cs
+++ b/src/Avalonia.Base/Styling/NthChildSelector.cs
@@ -12,7 +12,7 @@ namespace Avalonia.Styling
///
/// Element indices are 1-based.
///
- public class NthChildSelector : Selector
+ internal class NthChildSelector : Selector
{
private const string NthChildSelectorName = "nth-child";
private const string NthLastChildSelectorName = "nth-last-child";
@@ -39,16 +39,16 @@ namespace Avalonia.Styling
}
- public override bool InTemplate => _previous?.InTemplate ?? false;
+ internal override bool InTemplate => _previous?.InTemplate ?? false;
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
- public override Type? TargetType => _previous?.TargetType;
+ internal override Type? TargetType => _previous?.TargetType;
public int Step { get; }
public int Offset { get; }
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
if (!(control is ILogical logical))
{
@@ -103,8 +103,8 @@ namespace Avalonia.Styling
return match ? SelectorMatch.AlwaysThisInstance : SelectorMatch.NeverThisInstance;
}
- protected override Selector? MovePrevious() => _previous;
- protected override Selector? MovePreviousOrParent() => _previous;
+ private protected override Selector? MovePrevious() => _previous;
+ private protected override Selector? MovePreviousOrParent() => _previous;
public override string ToString(Style? owner)
{
diff --git a/src/Avalonia.Base/Styling/NthLastChildSelector.cs b/src/Avalonia.Base/Styling/NthLastChildSelector.cs
index 6f6abbae6a..aa62ad2b2c 100644
--- a/src/Avalonia.Base/Styling/NthLastChildSelector.cs
+++ b/src/Avalonia.Base/Styling/NthLastChildSelector.cs
@@ -8,7 +8,7 @@ namespace Avalonia.Styling
///
/// Element indices are 1-based.
///
- public class NthLastChildSelector : NthChildSelector
+ internal class NthLastChildSelector : NthChildSelector
{
///
/// Creates an instance of
diff --git a/src/Avalonia.Base/Styling/OrSelector.cs b/src/Avalonia.Base/Styling/OrSelector.cs
index 53e4baa2c4..cc77aa9fcf 100644
--- a/src/Avalonia.Base/Styling/OrSelector.cs
+++ b/src/Avalonia.Base/Styling/OrSelector.cs
@@ -36,13 +36,13 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => false;
+ internal override bool InTemplate => false;
///
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
///
- public override Type? TargetType => _targetType ??= EvaluateTargetType();
+ internal override Type? TargetType => _targetType ??= EvaluateTargetType();
///
public override string ToString(Style? owner)
@@ -55,7 +55,7 @@ namespace Avalonia.Styling
return _selectorString;
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
var activators = new OrActivatorBuilder();
var neverThisInstance = false;
@@ -94,8 +94,8 @@ namespace Avalonia.Styling
}
}
- protected override Selector? MovePrevious() => null;
- protected override Selector? MovePreviousOrParent() => null;
+ private protected override Selector? MovePrevious() => null;
+ private protected override Selector? MovePreviousOrParent() => null;
internal override void ValidateNestingSelector(bool inControlTheme)
{
diff --git a/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs b/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
index 0865a7a8b0..3a50923094 100644
--- a/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
+++ b/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
@@ -28,13 +28,13 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => _previous?.InTemplate ?? false;
+ internal override bool InTemplate => _previous?.InTemplate ?? false;
///
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
///
- public override Type? TargetType => _previous?.TargetType;
+ internal override Type? TargetType => _previous?.TargetType;
///
public override string ToString(Style? owner)
@@ -73,7 +73,7 @@ namespace Avalonia.Styling
}
///
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
if (subscribe)
{
@@ -88,8 +88,8 @@ namespace Avalonia.Styling
}
- protected override Selector? MovePrevious() => _previous;
- protected override Selector? MovePreviousOrParent() => _previous;
+ private protected override Selector? MovePrevious() => _previous;
+ private protected override Selector? MovePreviousOrParent() => _previous;
[UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.TypeConvertionSupressWarningMessage)]
[UnconditionalSuppressMessage("Trimming", "IL2067", Justification = TrimmingMessages.TypeConvertionSupressWarningMessage)]
diff --git a/src/Avalonia.Base/Styling/Selector.cs b/src/Avalonia.Base/Styling/Selector.cs
index c83950f72d..4e1c338553 100644
--- a/src/Avalonia.Base/Styling/Selector.cs
+++ b/src/Avalonia.Base/Styling/Selector.cs
@@ -14,7 +14,7 @@ namespace Avalonia.Styling
/// Gets a value indicating whether either this selector or a previous selector has moved
/// into a template.
///
- public abstract bool InTemplate { get; }
+ internal abstract bool InTemplate { get; }
///
/// Gets a value indicating whether this selector is a combinator.
@@ -22,12 +22,12 @@ namespace Avalonia.Styling
///
/// A combinator is a selector such as Child or Descendent which links simple selectors.
///
- public abstract bool IsCombinator { get; }
+ internal abstract bool IsCombinator { get; }
///
/// Gets the target type of the selector, if available.
///
- public abstract Type? TargetType { get; }
+ internal abstract Type? TargetType { get; }
///
/// Tries to match the selector with a control.
@@ -41,7 +41,7 @@ namespace Avalonia.Styling
/// or simply return an immediate result.
///
/// A .
- public SelectorMatch Match(StyledElement control, IStyle? parent = null, bool subscribe = true)
+ internal SelectorMatch Match(StyledElement control, IStyle? parent = null, bool subscribe = true)
{
// First match the selector until a combinator is found. Selectors are stored from
// right-to-left, so MatchUntilCombinator reverses this order because the type selector
@@ -88,17 +88,17 @@ namespace Avalonia.Styling
/// or simply return an immediate result.
///
/// A .
- protected abstract SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe);
+ private protected abstract SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe);
///
/// Moves to the previous selector.
///
- protected abstract Selector? MovePrevious();
+ private protected abstract Selector? MovePrevious();
///
/// Moves to the previous selector or the parent selector.
///
- protected abstract Selector? MovePreviousOrParent();
+ private protected abstract Selector? MovePreviousOrParent();
internal virtual void ValidateNestingSelector(bool inControlTheme)
{
diff --git a/src/Avalonia.Base/Styling/SelectorMatch.cs b/src/Avalonia.Base/Styling/SelectorMatch.cs
index 2eac04301a..cbcab612d6 100644
--- a/src/Avalonia.Base/Styling/SelectorMatch.cs
+++ b/src/Avalonia.Base/Styling/SelectorMatch.cs
@@ -8,7 +8,7 @@ namespace Avalonia.Styling
///
/// Describes how a matches a control and its type.
///
- public enum SelectorMatchResult
+ internal enum SelectorMatchResult
{
///
/// The selector never matches this type.
@@ -43,7 +43,7 @@ namespace Avalonia.Styling
/// A selector match describes whether and how a matches a control, and
/// in addition whether the selector can ever match a control of the same type.
///
- public readonly record struct SelectorMatch
+ internal readonly record struct SelectorMatch
{
///
/// A selector match with the result of .
diff --git a/src/Avalonia.Base/Styling/TemplateSelector.cs b/src/Avalonia.Base/Styling/TemplateSelector.cs
index b253efc6d2..1fa2ca2d0f 100644
--- a/src/Avalonia.Base/Styling/TemplateSelector.cs
+++ b/src/Avalonia.Base/Styling/TemplateSelector.cs
@@ -18,13 +18,13 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => true;
+ internal override bool InTemplate => true;
///
- public override bool IsCombinator => true;
+ internal override bool IsCombinator => true;
///
- public override Type? TargetType => null;
+ internal override Type? TargetType => null;
public override string ToString(Style? owner)
{
@@ -36,7 +36,7 @@ namespace Avalonia.Styling
return _selectorString;
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
var templatedParent = control.TemplatedParent as StyledElement;
@@ -48,7 +48,7 @@ namespace Avalonia.Styling
return _parent.Match(templatedParent, parent, subscribe);
}
- protected override Selector? MovePrevious() => null;
- protected override Selector? MovePreviousOrParent() => _parent;
+ private protected override Selector? MovePrevious() => null;
+ private protected override Selector? MovePreviousOrParent() => _parent;
}
}
diff --git a/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs b/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs
index 2bd05242f5..81b204761b 100644
--- a/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs
+++ b/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs
@@ -58,7 +58,7 @@ namespace Avalonia.Styling
}
///
- public override bool InTemplate => _previous?.InTemplate ?? false;
+ internal override bool InTemplate => _previous?.InTemplate ?? false;
///
/// Gets the name of the control to match.
@@ -66,10 +66,10 @@ namespace Avalonia.Styling
public string? Name { get; set; }
///
- public override Type? TargetType => _targetType ?? _previous?.TargetType;
+ internal override Type? TargetType => _targetType ?? _previous?.TargetType;
///
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
///
/// Whether the selector matches the concrete or any object which
@@ -89,7 +89,7 @@ namespace Avalonia.Styling
}
///
- protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle? parent, bool subscribe)
{
if (TargetType != null)
{
@@ -134,8 +134,8 @@ namespace Avalonia.Styling
return Name == null ? SelectorMatch.AlwaysThisType : SelectorMatch.AlwaysThisInstance;
}
- protected override Selector? MovePrevious() => _previous;
- protected override Selector? MovePreviousOrParent() => _previous;
+ private protected override Selector? MovePrevious() => _previous;
+ private protected override Selector? MovePreviousOrParent() => _previous;
private string BuildSelectorString(Style? owner)
{
diff --git a/tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs b/tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs
index 11bc5ce35f..e4799d46b8 100644
--- a/tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs
+++ b/tests/Avalonia.Benchmarks/Styling/SelectorBenchmark.cs
@@ -37,62 +37,62 @@ namespace Avalonia.Benchmarks.Styling
}
[Benchmark]
- public SelectorMatch IsSelector_NoMatch()
+ public void IsSelector_NoMatch()
{
- return _isCalendarSelector.Match(_notMatchingControl);
+ _isCalendarSelector.Match(_notMatchingControl);
}
[Benchmark]
- public SelectorMatch IsSelector_Match()
+ public void IsSelector_Match()
{
- return _isCalendarSelector.Match(_matchingControl);
+ _isCalendarSelector.Match(_matchingControl);
}
[Benchmark]
- public SelectorMatch ClassSelector_NoMatch()
+ public void ClassSelector_NoMatch()
{
- return _classSelector.Match(_notMatchingControl);
+ _classSelector.Match(_notMatchingControl);
}
[Benchmark]
- public SelectorMatch ClassSelector_Match()
+ public void ClassSelector_Match()
{
- return _classSelector.Match(_matchingControl);
+ _classSelector.Match(_matchingControl);
}
[Benchmark]
- public SelectorMatch OrSelector_One_Match()
+ public void OrSelector_One_Match()
{
- return _orSelectorTwo.Match(_matchingControl);
+ _orSelectorTwo.Match(_matchingControl);
}
[Benchmark]
- public SelectorMatch OrSelector_Five_Match()
+ public void OrSelector_Five_Match()
{
- return _orSelectorFive.Match(_matchingControl);
+ _orSelectorFive.Match(_matchingControl);
}
}
internal class AlwaysMatchSelector : Selector
{
- public override bool InTemplate => false;
+ internal override bool InTemplate => false;
- public override bool IsCombinator => false;
+ internal override bool IsCombinator => false;
- public override Type TargetType => null;
+ internal override Type TargetType => null;
public override string ToString(Style owner)
{
return "Always";
}
- protected override SelectorMatch Evaluate(StyledElement control, IStyle parent, bool subscribe)
+ private protected override SelectorMatch Evaluate(StyledElement control, IStyle parent, bool subscribe)
{
return SelectorMatch.AlwaysThisType;
}
- protected override Selector MovePrevious() => null;
+ private protected override Selector MovePrevious() => null;
- protected override Selector MovePreviousOrParent() => null;
+ private protected override Selector MovePreviousOrParent() => null;
}
}
diff --git a/tests/Avalonia.UnitTests/StyleHelpers.cs b/tests/Avalonia.UnitTests/StyleHelpers.cs
index 00f74769d3..ed95519830 100644
--- a/tests/Avalonia.UnitTests/StyleHelpers.cs
+++ b/tests/Avalonia.UnitTests/StyleHelpers.cs
@@ -6,9 +6,9 @@ namespace Avalonia.UnitTests
{
public static class StyleHelpers
{
- public static SelectorMatchResult TryAttach(Style style, StyledElement element, object? host = null)
+ public static void TryAttach(Style style, StyledElement element, object? host = null)
{
- return style.TryAttach(element, host ?? element, PropertyStore.FrameType.Style);
+ style.TryAttach(element, host ?? element, PropertyStore.FrameType.Style);
}
}
}