diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-02-20 02:41:29 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-02-20 02:41:29 (GMT) |
commit | 8433dd156c9a840271df560a3dddc9332c3a221c (patch) | |
tree | d2ce6323ab7e3e0f5b1082b22e52ff09f266e239 /readtoolbar.py | |
parent | 6083496794da2b4d5d39c3528143dc08ce4b92c0 (diff) |
Add Play/Pause button
Diffstat (limited to 'readtoolbar.py')
-rw-r--r-- | readtoolbar.py | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/readtoolbar.py b/readtoolbar.py index 43296f7..6c87e17 100644 --- a/readtoolbar.py +++ b/readtoolbar.py @@ -28,11 +28,12 @@ from sugar.graphics.menuitem import MenuItem from sugar.graphics.toolcombobox import ToolComboBox from sugar.graphics.combobox import ComboBox from sugar.activity import activity +from sugar.graphics.toggletoolbutton import ToggleToolButton -try: +import speech + +if speech.supported: import speechd -except: - print "Speech not supported" class ReadToolbar(gtk.Toolbar): __gtype_name__ = 'ReadToolbar' @@ -259,6 +260,25 @@ class SpeechToolbar(gtk.Toolbar): break default = default + 1 + # Play button Image + play_img = gtk.Image() + play_img.show() + play_img.set_from_icon_name('media-playback-start', + gtk.ICON_SIZE_LARGE_TOOLBAR) + + # Pause button Image + pause_img = gtk.Image() + pause_img.show() + pause_img.set_from_icon_name('media-playback-pause', + gtk.ICON_SIZE_LARGE_TOOLBAR) + + # Play button + self.play_btn = ToggleToolButton('media-playback-start') + self.play_btn.show() + self.play_btn.connect('toggled', self._play_cb, [play_img, pause_img]) + self.insert(self.play_btn, -1) + self.play_btn.set_tooltip(_('Play / Pause')) + self.voice_combo = ComboBox() self.voice_combo.connect('changed', self.voice_changed_cb) for voice in self.sorted_voices: @@ -304,11 +324,9 @@ class SpeechToolbar(gtk.Toolbar): def voice_changed_cb(self, combo): self.selected_voice = combo.props.value if self.activity != None: - self.activity.set_speech_voice(self.selected_voice) self.say(self.selected_voice[0]) def pitch_adjusted_cb(self, get, data=None): - self.activity.set_speech_pitch(int(self.pitchadj.value)) self.say(_("pitch adjusted")) def rate_adjusted_cb(self, get, data=None): @@ -317,7 +335,6 @@ class SpeechToolbar(gtk.Toolbar): def set_activity(self, activity): self.activity = activity - self.activity.set_speech_voice(self.selected_voice) def say(self, words): try: @@ -330,3 +347,16 @@ class SpeechToolbar(gtk.Toolbar): except: print 'speech dispatcher not running' + def _play_cb(self, widget, images): + widget.set_icon_widget(images[int(widget.get_active())]) + + if (speech.done): + self.et = speech.EspeakThread() + words_on_page = self.activity.add_word_marks() + self.et.set_words_on_page(words_on_page) + self.et.set_activity(self.activity) + self.et.set_speech_options(self.selected_voice, + int(self.rateadj.value), int(self.pitchadj.value)) + self.et.start() + else: + speech.done = True |