pes@MITRE-BEDFORD.ARPA (03/03/88)
I have just spent a fair amount of time porting some user interface software from Koto to Lyric. The changes to FREEMENU generally appear to be good, but I have a problem with the way edit items work. In our application, I would like to be able to do some post-edit field processing, such as verification of input. In the Koto Lisp Library FREEMENU, carriage return would bring you back from a call to FM.EDITITEM, and field verifcation (and other side effect stuff) could be done in the function which started the editing. In the Lyric FREEMENU, FM.EDITITEM appears to spawn a FREEMENU process which drives the TTY, and it returns to the calling function immediately. That's OK because it also allows a LIMITCHARS predicate to be specified, which can verify character by character inputs, and can be used to detect a carriage return for post edit processing as before. However, when a carriage return is detected, I would like to mutate the input data and put it back into the FREEMENU label. If I do this in the LIMITCHARS predicate, the label is changed back to what the FREEMENU process' input buffer was working on when the LIMITCHARS predicate was called. What I think I would like is a way of being notified when the editing has terminated. I would prefer not to have to poll the menu using FM.EDITP, but rather be notified via an event or by specifying a edit termination function which would be called. This would also solve the problem of giving the TTY process away using the mouse and leaving an unverified edit field hanging in the FREEMENU. Any comments or suggestions for ways to handle these kinds of user input situations? Thanks. -Paul Silvey The MITRE Corporation Bedford, MA pes@mitre-bedford.arpa