0
|
1 using System;
|
|
2 using System.Collections.Generic;
|
|
3 using System.ComponentModel;
|
|
4 using System.Data;
|
|
5 using System.Drawing;
|
|
6 using System.Text;
|
|
7 using System.Windows.Forms;
|
|
8
|
|
9 /*
|
|
10 * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
|
|
11 */
|
|
12 namespace QuickQR
|
|
13 {
|
|
14 public partial class SetHotkey : Form
|
|
15 {
|
|
16 private bool capturing = false;
|
|
17 public KeyBinding keyBinding;
|
|
18
|
|
19 public SetHotkey(KeyBinding keyBinding)
|
|
20 {
|
|
21 InitializeComponent();
|
|
22 this.keyBinding = new KeyBinding();
|
|
23 hotkeyLabel.Text = keyBinding.toString();
|
|
24 }
|
|
25
|
|
26 private void captureButton_Click(object sender, EventArgs e)
|
|
27 {
|
|
28 capturing = true;
|
|
29 hotkeyLabel.Text = "Waiting... (ESC to clear)";
|
|
30 keyBinding.Win = false;
|
|
31 }
|
|
32
|
|
33 private void SetHotkey_KeyDown(object sender, KeyEventArgs e)
|
|
34 {
|
|
35 if (capturing && e.KeyCode == Keys.Escape)
|
|
36 {
|
|
37 capturing = false;
|
|
38 keyBinding.key = 0;
|
|
39 keyBinding.keyChar = "";
|
|
40 hotkeyLabel.Text = keyBinding.comboString();
|
|
41 }
|
|
42 else if (capturing && (e.KeyCode == Keys.LWin || e.KeyCode == Keys.RWin))
|
|
43 {
|
|
44 keyBinding.Win = true;
|
|
45 }
|
|
46 else if (capturing && e.KeyCode != Keys.ShiftKey && e.KeyCode != Keys.Menu && e.KeyCode != Keys.Alt && e.KeyCode != Keys.ControlKey)
|
|
47 {
|
|
48 keyBinding.key = (int)e.KeyCode;
|
|
49 keyBinding.keyChar = e.KeyCode.ToString();
|
|
50 keyBinding.Shift = e.Shift;
|
|
51 keyBinding.Alt = e.Alt;
|
|
52 keyBinding.Ctrl = e.Control;
|
|
53 hotkeyLabel.Text = keyBinding.toString();
|
|
54 }
|
|
55 }
|
|
56
|
|
57 private void SetHotkey_KeyUp(object sender, KeyEventArgs e)
|
|
58 {
|
|
59 if (capturing && (e.KeyCode == Keys.LWin || e.KeyCode == Keys.RWin))
|
|
60 {
|
|
61 keyBinding.Win = false;
|
|
62 }
|
|
63 else if (capturing && e.KeyCode != Keys.ShiftKey && e.KeyCode != Keys.Menu && e.KeyCode != Keys.Alt && e.KeyCode != Keys.ControlKey)
|
|
64 {
|
|
65 capturing = false;
|
|
66 }
|
|
67 okButton.Enabled = !capturing;
|
|
68 }
|
|
69
|
|
70 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
|
|
71 {
|
|
72 if (keyData == Keys.Escape && capturing)
|
|
73 {
|
|
74 keyBinding.key = 0;
|
|
75 hotkeyLabel.Text = keyBinding.toString();
|
|
76 capturing = false;
|
|
77 okButton.Enabled = true;
|
|
78 return true;
|
|
79 }
|
|
80 return base.ProcessCmdKey(ref msg, keyData);
|
|
81 }
|
|
82 }
|
|
83 }
|