Skip to content

Commit d3bc9dd

Browse files
committed
Initial pass at adding keyboard down/up events as keyboard output. Minor cleanup and division of the code concluding the trigger keypress and resulting output.
1 parent 4387806 commit d3bc9dd

File tree

4 files changed

+177
-96
lines changed

4 files changed

+177
-96
lines changed

Format/IODefinition.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ public enum IOFlags
4242
// <---- flags below only apply as input to send to windows ---->
4343
DoNothing = 1 << 3,
4444
MouseOut = 1 << 4,
45-
Delay = 1 << 5
45+
Delay = 1 << 5,
46+
KeyDown = 1 << 6,
47+
KeyUp = 1 << 7
4648
//MAX = 1 << 7, // it's a byte! (aka if you need 8 you'll need more space)
4749
}
4850

@@ -133,8 +135,10 @@ public static string GetDescription(byte byFlags, byte byValue)
133135
((Keys)byValue).ToString() +
134136
(((byte)IOFlags.Shift == (byFlags & (byte)IOFlags.Shift)) ? "+Shift" : string.Empty) +
135137
(((byte)IOFlags.Alt == (byFlags & (byte)IOFlags.Alt)) ? "+Alt" : string.Empty) +
136-
(((byte)IOFlags.Control == (byFlags & (byte)IOFlags.Control)) ? "+Control" : string.Empty)
137-
+ "]";
138+
(((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) +
141+
"]";
138142
}
139143

140144
/// <summary>

Forms/KeyCaptureConfig.cs

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private void KeyCaptureConfig_Load(object sender, EventArgs e)
9191
IniManager.RestoreState(this, m_zIniManager.GetValue(Name));
9292

9393
// setup the various mouse output options
94-
comboBoxMouseOut.Items.Add("None");
94+
comboBoxMouseOut.Items.Add("No Mouse Action");
9595
foreach (IODefinition.MouseEventId sName in Enum.GetValues(typeof(IODefinition.MouseEventId)))
9696
{
9797
comboBoxMouseOut.Items.Add(sName);
@@ -464,14 +464,16 @@ private void UpdateProjectsList(string sFileName)
464464
/// </summary>
465465
/// <param name="zIODef">the io definition</param>
466466
/// <param name="eFlag">the type of io</param>
467-
/// <returns></returns>
467+
/// <returns>New flags value based on the settings of the ui (any prior flags are lost)</returns>
468468
private byte GetFlags(IODefinition zIODef, FlagsFromEnum eFlag)
469469
{
470470
// get the flags from the check boxes (always, both mouse and keyboard support them in some fashion)
471471
var bAlt = false;
472472
var bControl = false;
473473
var bShift = false;
474474
var bNone = false;
475+
var bDown = false;
476+
var bUp = false;
475477
switch (eFlag)
476478
{
477479
case FlagsFromEnum.Input:
@@ -484,17 +486,29 @@ private byte GetFlags(IODefinition zIODef, FlagsFromEnum eFlag)
484486
bControl = checkOutputControl.Checked;
485487
bShift = checkOutputShift.Checked;
486488
bNone = checkOutputNone.Checked;
489+
bDown = checkOutputKeyDown.Checked;
490+
bUp = checkOutputKeyUp.Checked;
487491
break;
488492
}
489493

490-
return (byte)(
491-
(bAlt ? (byte)IODefinition.IOFlags.Alt : (byte)0) |
492-
(bControl ? (byte)IODefinition.IOFlags.Control : (byte)0) |
493-
(bShift ? (byte)IODefinition.IOFlags.Shift : (byte)0) |
494-
(bNone ? (byte)IODefinition.IOFlags.DoNothing : (byte)0) |
495-
(zIODef.IsFlaggedAs(IODefinition.IOFlags.MouseOut) ? (byte)IODefinition.IOFlags.MouseOut : (byte)0) |
496-
(zIODef.IsFlaggedAs(IODefinition.IOFlags.Delay) ? (byte)IODefinition.IOFlags.Delay : (byte)0) |
497-
zIODef.Flags);
494+
byte byFlags = 0;
495+
byFlags = UpdateFlag(byFlags, bAlt, (byte) IODefinition.IOFlags.Alt);
496+
byFlags = UpdateFlag(byFlags, bControl, (byte)IODefinition.IOFlags.Control);
497+
byFlags = UpdateFlag(byFlags, bShift, (byte)IODefinition.IOFlags.Shift);
498+
499+
byFlags = UpdateFlag(byFlags, bNone, (byte)IODefinition.IOFlags.DoNothing);
500+
501+
byFlags = UpdateFlag(byFlags, bDown, (byte)IODefinition.IOFlags.KeyDown);
502+
byFlags = UpdateFlag(byFlags, bUp, (byte)IODefinition.IOFlags.KeyUp);
503+
504+
byFlags = UpdateFlag(byFlags, zIODef.IsFlaggedAs(IODefinition.IOFlags.MouseOut), (byte)IODefinition.IOFlags.MouseOut);
505+
byFlags = UpdateFlag(byFlags, zIODef.IsFlaggedAs(IODefinition.IOFlags.Delay), (byte)IODefinition.IOFlags.Delay);
506+
return byFlags;
507+
}
508+
509+
private byte UpdateFlag(byte byFlag, bool bFlagSetting, byte byFlagBit)
510+
{
511+
return (byte)(byFlag | (byte)(bFlagSetting ? byFlagBit : (byte)0));
498512
}
499513

500514
/// <summary>

0 commit comments

Comments
 (0)