Browse Source

Introduce IPlatformSettings to the public API

pull/11564/head
Max Katz 3 years ago
parent
commit
0041401e25
  1. 11
      src/Avalonia.Base/Input/IInputRoot.cs
  2. 2
      src/Avalonia.Base/Platform/DefaultPlatformSettings.cs
  3. 6
      src/Avalonia.Base/Platform/IPlatformSettings.cs
  4. 3
      src/Avalonia.Controls/TopLevel.cs

11
src/Avalonia.Base/Input/IInputRoot.cs

@ -1,4 +1,5 @@
using Avalonia.Metadata;
using Avalonia.Platform;
namespace Avalonia.Input
{
@ -17,10 +18,18 @@ namespace Avalonia.Input
/// Gets focus manager of the root.
/// </summary>
/// <remarks>
/// Focus manager can be null only if application wasn't initialized yet.
/// Focus manager can be null only if window wasn't initialized yet.
/// </remarks>
IFocusManager? FocusManager { get; }
/// <summary>
/// Represents a contract for accessing platform-specific settings and information.
/// </summary>
/// <remarks>
/// Focus manager can be null only if window wasn't initialized yet.
/// </remarks>
IPlatformSettings? PlatformSettings { get; }
/// <summary>
/// Gets or sets the input element that the pointer is currently over.
/// </summary>

2
src/Avalonia.Base/Platform/DefaultPlatformSettings.cs

@ -1,12 +1,14 @@
using System;
using Avalonia.Input;
using Avalonia.Media;
using Avalonia.Metadata;
namespace Avalonia.Platform
{
/// <summary>
/// A default implementation of <see cref="IPlatformSettings"/> for platforms.
/// </summary>
[PrivateApi]
public class DefaultPlatformSettings : IPlatformSettings
{
public virtual Size GetTapSize(PointerType type)

6
src/Avalonia.Base/Platform/IPlatformSettings.cs

@ -4,7 +4,11 @@ using Avalonia.Metadata;
namespace Avalonia.Platform
{
[Unstable]
/// <summary>
/// The <see cref="IPlatformSettings"/> interface represents a contract for accessing platform-specific settings and information.
/// Some of these settings might be changed by used globally in the OS in runtime.
/// </summary>
[NotClientImplementable]
public interface IPlatformSettings
{
/// <summary>

3
src/Avalonia.Controls/TopLevel.cs

@ -487,6 +487,9 @@ namespace Avalonia.Controls
/// <inheritdoc />
public IFocusManager? FocusManager => AvaloniaLocator.Current.GetService<IFocusManager>();
/// <inheritdoc />
public IPlatformSettings? PlatformSettings => AvaloniaLocator.Current.GetService<IPlatformSettings>();
/// <inheritdoc/>
Point IRenderRoot.PointToClient(PixelPoint p)
{

Loading…
Cancel
Save