#nullable enable
// These classes use a key binding system based on the design implemented in Scintilla.Net which is an
// MIT licensed open source project https://github.com/jacobslusser/ScintillaNET/blob/master/src/ScintillaNET/Command.cs
namespace Terminal.Gui;
///
/// Provides a collection of objects that are scoped to the .
///
///
public record struct ApplicationKeyBinding
{
/// Initializes a new instance.
/// The commands this key binding will invoke.
public ApplicationKeyBinding (Command [] commands)
{
Commands = commands;
}
/// Initializes a new instance.
/// The commands this key binding will invoke.
/// The view the Application-scoped key binding is bound to. If the commands will be invoked on
/// the .
public ApplicationKeyBinding (Command [] commands, View? target)
{
Commands = commands;
Target = target;
}
/// The commands this binding will invoke.
public Command [] Commands { get; set; }
///
/// The Key that is bound to the .
///
public Key? Key { get; set; }
/// The view the Application-scoped key binding is bound to.
public View? Target { get; set; }
}