!7 // function: func(S) -> bool (true = handled) srecord VoiceTarget(S moduleID, JComponent guiComponent, O function) {} module VoiceTargets > DynObjectTable { // API void addVoiceTarget(S moduleID, JComponent guiComponent, O function) enter { final VoiceTarget vt = new(moduleID, guiComponent, function); bindToComponent(guiComponent, r { add(vt) }, r { remove(vt) }); } L getVoiceTargets() enter { ret cloneList(data); } }