// -----------------------------------------------------------------------
//
// Copyright 2014 MIT Licence. See licence.md for more information.
//
// -----------------------------------------------------------------------
namespace Perspex.Input
{
///
/// Manages focus for the application.
///
public interface IFocusManager
{
///
/// Gets the currently focused .
///
IInputElement Current { get; }
///
/// Gets the current focus scope.
///
IFocusScope Scope { get; }
///
/// Focuses a control.
///
/// The control to focus.
/// The method by which focus was changed.
void Focus(IInputElement control, NavigationMethod method = NavigationMethod.Unspecified);
///
/// Notifies the focus manager of a change in focus scope.
///
/// The new focus scope.
///
/// This should not be called by client code. It is called by an
/// when it activates, e.g. when a Window is activated.
///
void SetFocusScope(IFocusScope scope);
}
}