ソースを参照

Remove IPresenter and IContentPresenter.

Steven Kirk 2 年 前
コミット
146ebd201d

+ 5 - 5
src/Avalonia.Controls/ContentControl.cs

@@ -13,7 +13,7 @@ namespace Avalonia.Controls
     /// <summary>
     /// Displays <see cref="Content"/> according to an <see cref="IDataTemplate"/>.
     /// </summary>
-    [TemplatePart("PART_ContentPresenter", typeof(IContentPresenter))]
+    [TemplatePart("PART_ContentPresenter", typeof(ContentPresenter))]
     public class ContentControl : TemplatedControl, IContentControl, IContentPresenterHost
     {
         /// <summary>
@@ -68,7 +68,7 @@ namespace Avalonia.Controls
         /// <summary>
         /// Gets the presenter from the control's template.
         /// </summary>
-        public IContentPresenter? Presenter
+        public ContentPresenter? Presenter
         {
             get;
             private set;
@@ -96,16 +96,16 @@ namespace Avalonia.Controls
         IAvaloniaList<ILogical> IContentPresenterHost.LogicalChildren => LogicalChildren;
 
         /// <inheritdoc/>
-        bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+        bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
         {
             return RegisterContentPresenter(presenter);
         }
 
         /// <summary>
-        /// Called when an <see cref="IContentPresenter"/> is registered with the control.
+        /// Called when an <see cref="ContentPresenter"/> is registered with the control.
         /// </summary>
         /// <param name="presenter">The presenter.</param>
-        protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+        protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
         {
             if (presenter.Name == "PART_ContentPresenter")
             {

+ 1 - 1
src/Avalonia.Controls/Presenters/ContentPresenter.cs

@@ -17,7 +17,7 @@ namespace Avalonia.Controls.Presenters
     /// Presents a single item of data inside a <see cref="TemplatedControl"/> template.
     /// </summary>
     [PseudoClasses(":empty")]
-    public class ContentPresenter : Control, IContentPresenter
+    public class ContentPresenter : Control
     {
         /// <summary>
         /// Defines the <see cref="Background"/> property.

+ 0 - 23
src/Avalonia.Controls/Presenters/IContentPresenter.cs

@@ -1,23 +0,0 @@
-using Avalonia.Controls.Primitives;
-using Avalonia.Metadata;
-
-namespace Avalonia.Controls.Presenters
-{
-    /// <summary>
-    /// Interface for controls that present a single item of data inside a
-    /// <see cref="TemplatedControl"/> template.
-    /// </summary>
-    [NotClientImplementable]
-    public interface IContentPresenter : IPresenter
-    {
-        /// <summary>
-        /// Gets the control displayed by the presenter.
-        /// </summary>
-        Control? Child { get; }
-
-        /// <summary>
-        /// Gets or sets the content to be displayed by the presenter.
-        /// </summary>
-        object? Content { get; set; }
-    }
-}

+ 2 - 2
src/Avalonia.Controls/Presenters/IContentPresenterHost.cs

@@ -22,13 +22,13 @@ namespace Avalonia.Controls.Presenters
         IAvaloniaList<ILogical> LogicalChildren { get; }
 
         /// <summary>
-        /// Registers an <see cref="IContentPresenter"/> with a host control.
+        /// Registers an <see cref="ContentPresenter"/> with a host control.
         /// </summary>
         /// <param name="presenter">The content presenter.</param>
         /// <returns>
         /// True if the content presenter should add its child to the logical children of the
         /// host; otherwise false.
         /// </returns>
-        bool RegisterContentPresenter(IContentPresenter presenter);
+        bool RegisterContentPresenter(ContentPresenter presenter);
     }
 }

+ 0 - 20
src/Avalonia.Controls/Presenters/IPresenter.cs

@@ -1,20 +0,0 @@
-using Avalonia.Controls.Primitives;
-using Avalonia.Metadata;
-
-namespace Avalonia.Controls.Presenters
-{
-    /// <summary>
-    /// Interface for presenters such as <see cref="ContentPresenter"/> and
-    /// <see cref="ItemsPresenter"/>.
-    /// </summary>
-    /// <remarks>
-    /// A presenter is the gateway between a templated control and its content. When
-    /// a control which implements <see cref="IPresenter"/> is found in the template
-    /// of a <see cref="TemplatedControl"/> then that signals that the visual child
-    /// of the presenter is not a part of the template.
-    /// </remarks>
-    [NotClientImplementable]
-    public interface IPresenter : INamed
-    {
-    }
-}

+ 1 - 1
src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs

@@ -13,7 +13,7 @@ namespace Avalonia.Controls.Presenters
     /// <summary>
     /// Presents a scrolling view of content inside a <see cref="ScrollViewer"/>.
     /// </summary>
-    public class ScrollContentPresenter : ContentPresenter, IPresenter, IScrollable, IScrollAnchorProvider
+    public class ScrollContentPresenter : ContentPresenter, IScrollable, IScrollAnchorProvider
     {
         private const double EdgeDetectionTolerance = 0.1;
 

+ 2 - 2
src/Avalonia.Controls/Primitives/HeaderedContentControl.cs

@@ -41,7 +41,7 @@ namespace Avalonia.Controls.Primitives
         /// <summary>
         /// Gets the header presenter from the control's template.
         /// </summary>
-        public IContentPresenter? HeaderPresenter
+        public ContentPresenter? HeaderPresenter
         {
             get;
             private set;
@@ -57,7 +57,7 @@ namespace Avalonia.Controls.Primitives
         }
 
         /// <inheritdoc/>
-        protected override bool RegisterContentPresenter(IContentPresenter presenter)
+        protected override bool RegisterContentPresenter(ContentPresenter presenter)
         {
             var result = base.RegisterContentPresenter(presenter);
 

+ 4 - 4
src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs

@@ -56,7 +56,7 @@ namespace Avalonia.Controls.Primitives
         /// <summary>
         /// Gets the header presenter from the control's template.
         /// </summary>
-        public IContentPresenter? HeaderPresenter
+        public ContentPresenter? HeaderPresenter
         {
             get;
             private set;
@@ -77,16 +77,16 @@ namespace Avalonia.Controls.Primitives
         }
 
         /// <inheritdoc/>
-        bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+        bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
         {
             return RegisterContentPresenter(presenter);
         }
 
         /// <summary>
-        /// Called when an <see cref="IContentPresenter"/> is registered with the control.
+        /// Called when an <see cref="ContentPresenter"/> is registered with the control.
         /// </summary>
         /// <param name="presenter">The presenter.</param>
-        protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+        protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
         {
             if (presenter.Name == "PART_HeaderPresenter")
             {

+ 4 - 4
src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs

@@ -56,7 +56,7 @@ namespace Avalonia.Controls.Primitives
         /// <summary>
         /// Gets the header presenter from the control's template.
         /// </summary>
-        public IContentPresenter? HeaderPresenter
+        public ContentPresenter? HeaderPresenter
         {
             get;
             private set;
@@ -66,7 +66,7 @@ namespace Avalonia.Controls.Primitives
         IAvaloniaList<ILogical> IContentPresenterHost.LogicalChildren => LogicalChildren;
 
         /// <inheritdoc/>
-        bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+        bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
         {
             return RegisterContentPresenter(presenter);
         }
@@ -83,10 +83,10 @@ namespace Avalonia.Controls.Primitives
         }
 
         /// <summary>
-        /// Called when an <see cref="IContentPresenter"/> is registered with the control.
+        /// Called when an <see cref="ContentPresenter"/> is registered with the control.
         /// </summary>
         /// <param name="presenter">The presenter.</param>
-        protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+        protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
         {
             if (presenter.Name == "PART_HeaderPresenter")
             {

+ 1 - 1
src/Avalonia.Controls/Primitives/IPopupHost.cs

@@ -52,7 +52,7 @@ namespace Avalonia.Controls.Primitives
         /// <summary>
         /// Gets the presenter from the control's template.
         /// </summary>
-        IContentPresenter? Presenter { get; }
+        ContentPresenter? Presenter { get; }
 
         /// <summary>
         /// Gets or sets whether the popup appears on top of all other windows.

+ 1 - 1
src/Avalonia.Controls/ScrollViewer.cs

@@ -644,7 +644,7 @@ namespace Avalonia.Controls
             (Presenter as IScrollAnchorProvider)?.UnregisterAnchorCandidate(element);
         }
 
-        protected override bool RegisterContentPresenter(IContentPresenter presenter)
+        protected override bool RegisterContentPresenter(ContentPresenter presenter)
         {
             _childSubscription?.Dispose();
             _childSubscription = null;

+ 1 - 1
src/Avalonia.Controls/SplitView/SplitView.cs

@@ -279,7 +279,7 @@ namespace Avalonia.Controls
             remove => RemoveHandler(PaneOpeningEvent, value);
         }
 
-        protected override bool RegisterContentPresenter(IContentPresenter presenter)
+        protected override bool RegisterContentPresenter(ContentPresenter presenter)
         {
             var result = base.RegisterContentPresenter(presenter);
 

+ 4 - 4
src/Avalonia.Controls/TabControl.cs

@@ -140,13 +140,13 @@ namespace Avalonia.Controls
 
         internal ItemsPresenter? ItemsPresenterPart { get; private set; }
 
-        internal IContentPresenter? ContentPart { get; private set; }
+        internal ContentPresenter? ContentPart { get; private set; }
 
         /// <inheritdoc/>
         IAvaloniaList<ILogical> IContentPresenterHost.LogicalChildren => LogicalChildren;
 
         /// <inheritdoc/>
-        bool IContentPresenterHost.RegisterContentPresenter(IContentPresenter presenter)
+        bool IContentPresenterHost.RegisterContentPresenter(ContentPresenter presenter)
         {
             return RegisterContentPresenter(presenter);
         }
@@ -210,10 +210,10 @@ namespace Avalonia.Controls
         }
 
         /// <summary>
-        /// Called when an <see cref="IContentPresenter"/> is registered with the control.
+        /// Called when an <see cref="ContentPresenter"/> is registered with the control.
         /// </summary>
         /// <param name="presenter">The presenter.</param>
-        protected virtual bool RegisterContentPresenter(IContentPresenter presenter)
+        protected virtual bool RegisterContentPresenter(ContentPresenter presenter)
         {
             if (presenter.Name == "PART_SelectedContentHost")
             {

+ 3 - 3
src/Avalonia.Controls/ToggleSwitch.cs

@@ -86,13 +86,13 @@ namespace Avalonia.Controls
             set { SetValue(OffContentProperty, value); }
         }
 
-        public IContentPresenter? OffContentPresenter
+        public ContentPresenter? OffContentPresenter
         {
             get;
             private set;
         }
 
-        public IContentPresenter? OnContentPresenter
+        public ContentPresenter? OnContentPresenter
         {
             get;
             private set;
@@ -142,7 +142,7 @@ namespace Avalonia.Controls
             }
         }
 
-        protected override bool RegisterContentPresenter(IContentPresenter presenter)
+        protected override bool RegisterContentPresenter(ContentPresenter presenter)
         {
             var result = base.RegisterContentPresenter(presenter);
 

+ 1 - 1
src/Avalonia.Controls/TransitioningContentControl.cs

@@ -71,7 +71,7 @@ public class TransitioningContentControl : ContentControl
         return result;
     }
 
-    protected override bool RegisterContentPresenter(IContentPresenter presenter)
+    protected override bool RegisterContentPresenter(ContentPresenter presenter)
     {
         if (!base.RegisterContentPresenter(presenter) &&
             presenter is ContentPresenter p &&

+ 0 - 13
tests/Avalonia.UnitTests/TestExtensions.cs

@@ -1,13 +0,0 @@
-using System;
-using Avalonia.Controls.Presenters;
-using Avalonia.Controls.Primitives;
-using Avalonia.Layout;
-using Avalonia.Styling;
-
-namespace Avalonia.UnitTests
-{
-    public static class TestExtensions
-    {
-        public static void ApplyTemplate(this IContentPresenter presenter) => ((Layoutable)presenter).ApplyTemplate();
-    }
-}