!7 cmodule TextArea > DynRecordingTextArea { switchable bool listen; start { dm_onTopInput_q(voidfunc(S s) { if (listen) sendInput(s) }); } visual withRightAlignedButtons(super, dm_boolFieldImageSwitch listen(#1102902, #1101635, onToolTip := "Listening to voice input (if a speech recognition is active)", offToolTip := "Not listening to voice input")); void sendInput(S s) { if (empty(s)) ret; setText(joinWithNewLine(text(), s)); } }