One idea is to only bind keys to flight controls and autopilot on/off. All other stuffs should be done similar to what you do on your desktop. For example, say you want to toggle a switch and then turn a nob clockwise to change the settings of a certain system, what you should be required to do are: 1. Click on the panel, or use shortcut keys to set focus to the panel that is associated with the particular system. Depending on what the system is (ie. CDU), key bindings to the primary flight control should be disabled temporarily. 2. Tab, Tab, Tab... (as many times as you need to set focus on a control) 3. Press Space/Enter to toggle the button/switch on and off (both keys have the same function) 4. Repeat step 2. 5. Press + to turn the nob clockwise (and - to turn the nob anti-clockwise)
If the user click on somewhere else, or no input is given within a few seconds, then the panel automatically lose focus and key bindings to flight control is restored (redunduncy: if the latter is already restored, restore it again). Key bindings should also be idiot proof. For example, binding an alphabetical key to toggle trust reverse will not be a bright idea. Instead, thrust reverse and throttle decrease should share the same key, except that thrust reverse will only be available when: - The thrust level is at 0 - Ctrl+Shift is being hold - Aircraft's attitude and airspeed is below a certain point If the above conditions are not met, then pressing Ctrl+Shift+PageDown would be the same as pressing PageDown. Key bindings like the above have the benefits of binding the same key to similar actions (landing), as well as preventing accidents from occuring (thrust reverse being deployed in midair). Another way of making things idiot proof is to bind additional keys to certain actions. For example, ESC key lose focus on all controls, and HOME key turn the camera forward *inaddition* to losing focus on all controls. Regards, Ampere _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel