> In fact, I had originally implemented mice.xml that way (as you > suggested in your example), but it seemed very verbose
Much of the verbosity is because we're attaching the conditional to every occurrence of the combination of mode and of input event. Perhaps we should have the modifier set a property, as we do now, Then take the stateful keystroke and give it a new handler that modifies the key value by prefixing it with the property state. The two resulting keystrokes can be listed and caught further on. Or, another approach is to take a leaf from YACC/LEX and convert the stream of input activity into a unified property=value event list. This has the added advantage of being easy to log what the user does. Then, the event list goes through a series of filters that modify the events, delete events and do stateful inspection of their contents. Many of the filters do things like this (not written in XML) ... /key[46]/mod-down := 1 becomes /controls/brakes[1] := 1.0 /key[46]/mod-up := 1 becomes /controls/brakes[1] := 0.0 For modal stuff, we simply define the rule as a regular expression. _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel