using System; using System.Collections.Generic; using Avalonia.Interactivity; using Avalonia.VisualTree; namespace Avalonia.Input { /// /// Defines input-related functionality for a control. /// public interface IInputElement : IInteractive, IVisual { /// /// Occurs when the control receives focus. /// event EventHandler GotFocus; /// /// Occurs when the control loses focus. /// event EventHandler LostFocus; /// /// Occurs when a key is pressed while the control has focus. /// event EventHandler KeyDown; /// /// Occurs when a key is released while the control has focus. /// event EventHandler KeyUp; /// /// Occurs when a user typed some text while the control has focus. /// event EventHandler TextInput; /// /// Occurs when the pointer enters the control. /// event EventHandler PointerEnter; /// /// Occurs when the pointer leaves the control. /// event EventHandler PointerLeave; /// /// Occurs when the pointer is pressed over the control. /// event EventHandler PointerPressed; /// /// Occurs when the pointer moves over the control. /// event EventHandler PointerMoved; /// /// Occurs when the pointer is released over the control. /// event EventHandler PointerReleased; /// /// Occurs when the mouse wheel is scrolled over the control. /// event EventHandler PointerWheelChanged; /// /// Gets or sets a value indicating whether the control can receive keyboard focus. /// bool Focusable { get; } /// /// Gets or sets a value indicating whether the control is enabled for user interaction. /// bool IsEnabled { get; } /// /// Gets or sets the associated mouse cursor. /// Cursor? Cursor { get; } /// /// Gets a value indicating whether this control and all its parents are enabled. /// /// /// The property is used to toggle the enabled state for individual /// controls. The property takes into account the /// value of this control and its parent controls. /// bool IsEffectivelyEnabled { get; } /// /// Gets a value indicating whether keyboard focus is anywhere within the element or its visual tree child elements. /// bool IsKeyboardFocusWithin { get; } /// /// Gets a value indicating whether the control is focused. /// bool IsFocused { get; } /// /// Gets a value indicating whether the control is considered for hit testing. /// bool IsHitTestVisible { get; } /// /// Gets a value indicating whether the pointer is currently over the control. /// bool IsPointerOver { get; } /// /// Focuses the control. /// void Focus(); /// /// Gets the key bindings for the element. /// List KeyBindings { get; } } }