public void LoadMacroSets(List <MacroSetDescriptor> macroSets) { IInputContextContainer contexts = _inputManager.Contexts; foreach (MacroSetDescriptor macroSet in macroSets) { IInputCmdContext context = contexts.New(InputContextPrefix + macroSet.Name, "common"); foreach (MacroDescriptor macro in macroSet.Macros) { BoundKeyFunction function = new BoundKeyFunction(macro.Id); KeyBindingRegistration binding = CreateMacroBinding(function, macro.Name); if (binding == null) { continue; } context.AddFunction(function); _inputManager.RegisterBinding(in binding); _inputManager.SetInputCommand(function, InputCmdHandler.FromDelegate(_ => OnMacroPress(macro), _ => OnMacroRelease(macro))); } } }
/// <summary> /// Creates a new instance of <see cref="InputCmdContext"/>. /// </summary> /// <param name="parent">Parent context.</param> internal InputCmdContext(IInputCmdContext parent) { _parent = parent; }