@@ -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