using System.Linq;
using System.Windows.Forms;
using FastReport.Utils;
namespace FastReport.Forms
{
public partial class ShortcutEditorForm : BaseDialogForm
{
private Keys keys;
public Keys Keys
{
get { return keys; }
set { keys = value; lblKeybinding.Text = Converter.ShortcutKeysToStr(Keys); }
}
///
protected override bool ProcessDialogKey(Keys keyData)
{
if (IsValidKeys(keyData))
{
lblKeybinding.Text = Converter.ShortcutKeysToStr(keyData);
Keys = keyData;
}
else
{
lblKeybinding.Text = Res.Get("Forms,ShortcutEditor,UnsupportedShortcut");
keys = Keys.None;
}
if (keyData == Keys.Enter || keyData == Keys.Escape)
return base.ProcessDialogKey(keyData);
return true;
}
private bool IsValidKeys(Keys keyData)
{
var keys = Converter.ValidShortcutKeys.Keys.ToList();
keys.Sort();
keys.Reverse();
foreach (var k in keys)
{
if (keyData.HasFlag(k))
keyData &= ~k;
}
return keyData == Keys.None;
}
public ShortcutEditorForm()
{
InitializeComponent();
Localize();
}
///
public override void Localize()
{
base.Localize();
MyRes res = new MyRes("Forms,ShortcutEditor");
Text = res.Get("");
lblNeedInput.Text = res.Get("NeedInputShortcut");
}
}
}