Browse Source

Remove IPresenter and IContentPresenter.

pull/11495/head
Steven Kirk 3 years ago
parent
commit
146ebd201d
  1. 10
      src/Avalonia.Controls/ContentControl.cs
  2. 2
      src/Avalonia.Controls/Presenters/ContentPresenter.cs
  3. 23
      src/Avalonia.Controls/Presenters/IContentPresenter.cs
  4. 4
      src/Avalonia.Controls/Presenters/IContentPresenterHost.cs
  5. 20
      src/Avalonia.Controls/Presenters/IPresenter.cs
  6. 2
      src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
  7. 4
      src/Avalonia.Controls/Primitives/HeaderedContentControl.cs
  8. 8
      src/Avalonia.Controls/Primitives/HeaderedItemsControl.cs
  9. 8
      src/Avalonia.Controls/Primitives/HeaderedSelectingItemsControl.cs
  10. 2
      src/Avalonia.Controls/Primitives/IPopupHost.cs
  11. 2
      src/Avalonia.Controls/ScrollViewer.cs
  12. 2
      src/Avalonia.Controls/SplitView/SplitView.cs
  13. 8
      src/Avalonia.Controls/TabControl.cs
  14. 6
      src/Avalonia.Controls/ToggleSwitch.cs
  15. 2
      src/Avalonia.Controls/TransitioningContentControl.cs
  16. 13
      tests/Avalonia.UnitTests/TestExtensions.cs

10
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")
{

2
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.

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; }
}
}

4
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);
}
}

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
{
}
}

2
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;

4
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);

8
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")
{

8
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")
{

2
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.

2
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;

2
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);

8
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")
{

6
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);

2
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 &&

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();
}
}
Loading…
Cancel
Save