#region Copyright & License Information /* * Copyright (c) The OpenRA Developers and Contributors * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. For more * information, see COPYING. */ #endregion using System; namespace OpenRA { /// /// A reference to either a named hotkey (defined in the game settings) or a statically assigned hotkey. /// public class HotkeyReference { static readonly Func Invalid = () => Hotkey.Invalid; readonly Func getValue; public HotkeyReference() { getValue = Invalid; } internal HotkeyReference(Func getValue) { this.getValue = getValue; } public Hotkey GetValue() { return getValue(); } public bool IsActivatedBy(KeyInput e) { var currentValue = getValue(); return currentValue.Key == e.Key && currentValue.Modifiers == e.Modifiers; } } }