A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

37 lines
1.1 KiB

using System;
using Avalonia.Input.Raw;
using Avalonia.Metadata;
namespace Avalonia.Input
{
/// <summary>
/// Receives input from the windowing subsystem and dispatches it to interested parties
/// for processing.
/// </summary>
[NotClientImplementable]
public interface IInputManager
{
/// <summary>
/// Gets an observable that notifies on each input event received before
/// <see cref="Process"/>.
/// </summary>
IObservable<RawInputEventArgs> PreProcess { get; }
/// <summary>
/// Gets an observable that notifies on each input event received.
/// </summary>
IObservable<RawInputEventArgs> Process { get; }
/// <summary>
/// Gets an observable that notifies on each input event received after
/// <see cref="Process"/>.
/// </summary>
IObservable<RawInputEventArgs> PostProcess { get; }
/// <summary>
/// Processes a raw input event.
/// </summary>
/// <param name="e">The raw input event.</param>
void ProcessInput(RawInputEventArgs e);
}
}