diff options
Diffstat (limited to 'Speak.activity/widgets.py')
-rw-r--r-- | Speak.activity/widgets.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Speak.activity/widgets.py b/Speak.activity/widgets.py index 9324ca3..e20ae35 100644 --- a/Speak.activity/widgets.py +++ b/Speak.activity/widgets.py @@ -12,14 +12,18 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import logging + from port.widgets import ComboBox import voice class Voices(ComboBox): - def __init__(self, **kwargs): + def __init__(self, face, **kwargs): ComboBox.__init__(self, **kwargs) + self.face = face + voices = voice.allVoices() voicenames = voices.keys() voicenames.sort() @@ -28,3 +32,17 @@ class Voices(ComboBox): self.append_item(voices[name], name) self.select(voice.defaultVoice()) + + self.connect('changed', self._changed_cb) + + def _changed_cb(self, widget): + self.face.status.voice = widget.props.value + self.face.say_notification(self.face.status.voice.friendlyname) + + def resume(self, value): + try: + self.handler_block_by_func(self._changed_cb) + self.select(name=value) + self.face.status.voice = self.props.value + finally: + self.handler_unblock_by_func(self._changed_cb) |