Easy and not complex....hmm. Oh, that's easy (easy for me to say

)
I would envision adding 3 mode radio buttons to you key selection dialog, Continuous Jog, incremental Jog and Mouse Mode.
now each key has a table of 3 actions that can be stored depending on which radio button is active. In your code when a key is active you check to see if mouse mode is active else if incremental else continuous.
With regards to incremental jog, when a jog key is pressed a state is set and action taken until that key value goes back to 0 when the state is reset while set the action is not repeated.
Just a suggestion,
RT