!7 sclass VoiceReadyForOutput > DynTextArea { S voice; JComponent visualize() { bindComboBoxToLiveValue_debug.set(true); ret centerAndSouthWithMargins(super.visualize(), centerAndEast(withLabel("Voice:", jLiveValueComboBox(cereprocVoices(), dm_fieldLiveValue('voice))), jbutton("Say", rThread sayIt))); } void sayIt { S s = trim(getText()); if (empty(s) || empty(voice)) ret; if (isCereprocVoice(voice)) cereproc(voice, s); else print("Missing voice: " + voice); } void clear() { setText(""); } }