else:\r
setattr(getSynth(),self.setting.name,getattr(self.dialog,"_%ss"%self.setting.name)[evt.GetSelection()].ID)\r
\r
+class VoiceSettingsSlider(wx.Slider):\r
+\r
+ def __init__(self,*args, **kwargs):\r
+ super(VoiceSettingsSlider,self).__init__(*args,**kwargs)\r
+ self.Bind(wx.EVT_CHAR, self.onSliderChar)\r
+\r
+ def SetValue(self,i):\r
+ super(VoiceSettingsSlider, self).SetValue(i)\r
+ evt = wx.CommandEvent(wx.wxEVT_COMMAND_SLIDER_UPDATED,self.GetId())\r
+ evt.SetInt(i)\r
+ wx.PostEvent(self,evt)\r
+\r
+ def onSliderChar(self, evt):\r
+ key = evt.KeyCode\r
+ if key == wx.WXK_UP:\r
+ newValue=self.Value+self.LineSize\r
+ if newValue >self.Max:\r
+ newValue=self.Max\r
+ self.SetValue(newValue)\r
+ elif key == wx.WXK_DOWN:\r
+ newValue=self.Value-self.LineSize\r
+ if newValue <self.Min:\r
+ newValue=self.Min\r
+ self.SetValue(newValue)\r
+ elif key == wx.WXK_PRIOR:\r
+ newValue=self.Value+self.PageSize\r
+ if newValue >self.Max:\r
+ newValue=self.Max\r
+ self.SetValue(newValue)\r
+ elif key == wx.WXK_NEXT:\r
+ newValue=self.Value-self.PageSize\r
+ if newValue <self.Min:\r
+ newValue=self.Min\r
+ self.SetValue(newValue)\r
+ elif key == wx.WXK_HOME:\r
+ self.SetValue(self.Max)\r
+ elif key == wx.WXK_END:\r
+ self.SetValue(self.Min)\r
+ else:\r
+ evt.Skip()\r
+\r
class VoiceSettingsDialog(SettingsDialog):\r
title = _("Voice settings")\r
\r
"""\r
sizer=wx.BoxSizer(wx.HORIZONTAL)\r
label=wx.StaticText(self,wx.ID_ANY,label="%s:"%setting.i18nName)\r
- slider=wx.Slider(self,wx.ID_ANY,minValue=0,maxValue=100,name="%s:"%setting.i18nName)\r
+ slider=VoiceSettingsSlider(self,wx.ID_ANY,minValue=0,maxValue=100,name="%s:"%setting.i18nName)\r
setattr(self,"%sSlider"%setting.name,slider)\r
slider.Bind(wx.EVT_SLIDER,SynthSettingChanger(setting))\r
self._setSliderStepSizes(slider,setting)\r
config.conf["speech"][getSynth().name]["useSpellingFunctionality"]=self.useSpellingFunctionalityCheckBox.IsChecked()\r
super(VoiceSettingsDialog, self).onOk(evt)\r
\r
+ def sendEvent(self,window, eventBinder):\r
+ # Example of PyEventBinder: wx.EVT_BUTTON\r
+ # window is the window (control) that triggers the event\r
+ cmd = wx.CommandEvent(eventBinder.evtType[0])\r
+ cmd.SetEventObject(window)\r
+ cmd.SetId(window.GetId())\r
+ window.GetEventHandler().ProcessEvent(cmd)\r
+\r
class KeyboardSettingsDialog(SettingsDialog):\r
title = _("Keyboard Settings")\r
\r