Skip to content

Commit 7c239b6

Browse files
committed
Removed keyup/keydown and revisited toggle concept. Mouse and key inputs can now be toggled using a single key instead of multiple. The win32 library internally tracks the toggle state (though in a potentially error prone way at this time).
1 parent d3bc9dd commit 7c239b6

File tree

4 files changed

+182
-111
lines changed

4 files changed

+182
-111
lines changed

Format/IODefinition.cs

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,19 @@ public enum IOFlags
4040
Control = 1 << 1,
4141
Alt = 1 << 2,
4242
// <---- flags below only apply as input to send to windows ---->
43-
DoNothing = 1 << 3,
44-
MouseOut = 1 << 4,
43+
DoNothing = 1 << 3, // no action whatsoever
44+
MouseOut = 1 << 4, // mouse output -- see MouseButton
4545
Delay = 1 << 5,
46-
KeyDown = 1 << 6,
47-
KeyUp = 1 << 7
46+
Toggle = 1 << 6
4847
//MAX = 1 << 7, // it's a byte! (aka if you need 8 you'll need more space)
4948
}
5049

51-
/// <summary>
52-
/// Mapping to windows necessary for firing mouse input
53-
/// </summary>
54-
public enum MouseEventId
50+
public enum MouseButton
5551
{
56-
// from winuser.h
57-
MouseLeftDown = 0x02, /* left button down */
58-
MouseLeftUp = 0x04, /* left button up */
59-
MouseRightDown = 0x08, /* right button down */
60-
MouseRightUp = 0x10, /* right button up */
61-
MouseMiddleDown = 0x20, /* middle button down */
62-
MouseMiddleUp = 0x40, /* middle button up */
52+
MouseNone = 0x00,
53+
MouseLeft = 0x01,
54+
MouseRight = 0x02,
55+
MouseMiddle = 0x03
6356
}
6457

6558
public byte Flags { get; set; }
@@ -123,7 +116,10 @@ public static string GetDescription(byte byFlags, byte byValue)
123116
// mouse (every other flag ignored)
124117
if (IsFlaggedAs(IOFlags.MouseOut, byFlags))
125118
{
126-
return "[" + ((MouseEventId)byValue).ToString() + "]";
119+
return "[" +
120+
((MouseButton)byValue) +
121+
(((byte)IOFlags.Toggle == (byFlags & (byte)IOFlags.Toggle)) ? "+Toggle" : string.Empty) +
122+
"]";
127123
}
128124
// delay (every other flag ignored)
129125
if (IsFlaggedAs(IOFlags.Delay, byFlags))
@@ -136,8 +132,7 @@ public static string GetDescription(byte byFlags, byte byValue)
136132
(((byte)IOFlags.Shift == (byFlags & (byte)IOFlags.Shift)) ? "+Shift" : string.Empty) +
137133
(((byte)IOFlags.Alt == (byFlags & (byte)IOFlags.Alt)) ? "+Alt" : string.Empty) +
138134
(((byte)IOFlags.Control == (byFlags & (byte)IOFlags.Control)) ? "+Control" : string.Empty)+
139-
(((byte)IOFlags.KeyDown == (byFlags & (byte)IOFlags.KeyDown)) ? "+Down" : string.Empty) +
140-
(((byte)IOFlags.KeyUp == (byFlags & (byte)IOFlags.KeyUp)) ? "+Up" : string.Empty) +
135+
(((byte)IOFlags.Toggle == (byFlags & (byte)IOFlags.Toggle)) ? "+Toggle" : string.Empty) +
141136
"]";
142137
}
143138

Forms/KeyCaptureConfig.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ private void KeyCaptureConfig_Load(object sender, EventArgs e)
9292

9393
// setup the various mouse output options
9494
comboBoxMouseOut.Items.Add("No Mouse Action");
95-
foreach (IODefinition.MouseEventId sName in Enum.GetValues(typeof(IODefinition.MouseEventId)))
95+
foreach (IODefinition.MouseButton sName in Enum.GetValues(typeof(IODefinition.MouseButton)))
9696
{
9797
comboBoxMouseOut.Items.Add(sName);
9898
}
@@ -304,7 +304,7 @@ private void comboBoxSpecialOut_SelectedIndexChanged(object sender, EventArgs e)
304304
{
305305
var zIODefinition = new IODefinition(
306306
(byte)IODefinition.IOFlags.MouseOut,
307-
(byte)(IODefinition.MouseEventId)comboBoxMouseOut.SelectedItem);
307+
(byte)(IODefinition.MouseButton)comboBoxMouseOut.SelectedItem);
308308
var zDisplay = txtKeyOut;
309309
zDisplay.Text = zIODefinition.GetDescription();
310310
zDisplay.Tag = zIODefinition;
@@ -472,8 +472,7 @@ private byte GetFlags(IODefinition zIODef, FlagsFromEnum eFlag)
472472
var bControl = false;
473473
var bShift = false;
474474
var bNone = false;
475-
var bDown = false;
476-
var bUp = false;
475+
var bToggle = false;
477476
switch (eFlag)
478477
{
479478
case FlagsFromEnum.Input:
@@ -486,8 +485,7 @@ private byte GetFlags(IODefinition zIODef, FlagsFromEnum eFlag)
486485
bControl = checkOutputControl.Checked;
487486
bShift = checkOutputShift.Checked;
488487
bNone = checkOutputNone.Checked;
489-
bDown = checkOutputKeyDown.Checked;
490-
bUp = checkOutputKeyUp.Checked;
488+
bToggle = checkOutputToggle.Checked;
491489
break;
492490
}
493491

@@ -498,8 +496,7 @@ private byte GetFlags(IODefinition zIODef, FlagsFromEnum eFlag)
498496

499497
byFlags = UpdateFlag(byFlags, bNone, (byte)IODefinition.IOFlags.DoNothing);
500498

501-
byFlags = UpdateFlag(byFlags, bDown, (byte)IODefinition.IOFlags.KeyDown);
502-
byFlags = UpdateFlag(byFlags, bUp, (byte)IODefinition.IOFlags.KeyUp);
499+
byFlags = UpdateFlag(byFlags, bToggle, (byte)IODefinition.IOFlags.Toggle);
503500

504501
byFlags = UpdateFlag(byFlags, zIODef.IsFlaggedAs(IODefinition.IOFlags.MouseOut), (byte)IODefinition.IOFlags.MouseOut);
505502
byFlags = UpdateFlag(byFlags, zIODef.IsFlaggedAs(IODefinition.IOFlags.Delay), (byte)IODefinition.IOFlags.Delay);

Forms/KeyCaptureConfig.designer.cs

Lines changed: 22 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)