[wxpython-users] what receives mouse events?

wxPython user mailing list, post #18,433
Author:
Date:
Subject:
 Jacek Poplawski
 2008-07-17 13:25:24
 [wxpython-users] what receives mouse events?
Hello,

I am little confused with mouse events.
I want to do something when my object is clicked, so I used:

something.Bind(wx.EVT_LEFT_DOWN,self.OnClick)

It doesn't work when something is wx.Panel, it also doesn't work when
something is wx.Bitmap, but it works when I call wx.InitAllImageHandlers()
first.
I also tried to use something.CaptureMouse(), it worked, but I don't know
how to disable capture, so after I destroy object - application goes
unstable.

Could you explain me what is proper way to make sure that my object receives
all mouse events?
How can I do it for wx.Panel? Or for wx.Bitmap?

--
Free Software - find interesting programs and change them
NetHack - meet interesting creatures, kill them and eat their bodies
Usenet - meet interesting people from all over the world and flame them
Decopter - unrealistic helicopter simulator, get it from
http://decopter.sf.net
<div dir="ltr">Hello,<br><br>I am little confused with mouse events.<br>I want to do something when my object is clicked, so I used:<br><br>something.Bind(wx.EVT_LEFT_DOWN,self.OnClick)<br><br>It doesn&#39;t work when something is wx.Panel, it also doesn&#39;t work when something is wx.Bitmap, but it works when I call wx.InitAllImageHandlers() first.<br>
I also tried to use something.CaptureMouse(), it worked, but I don&#39;t know how to disable capture, so after I destroy object - application goes unstable.<br><br>Could you explain me what is proper way to make sure that my object receives all mouse events?<br>
How can I do it for wx.Panel? Or for wx.Bitmap?<br><br>-- <br>Free Software - find interesting programs and change them<br>NetHack - meet interesting creatures, kill them and eat their bodies<br>Usenet - meet interesting people from all over the world and flame them<br>
Decopter - unrealistic helicopter simulator, get it from <a href="http://decopter.sf.net">http://decopter.sf.net</a><br>
</div>
_______________________________________________
wxpython-users mailing list
[email protected]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users
Author:
Date:
Subject:
 FT
 2008-07-17 08:00:36
 Re: [wxpython-users] what receives mouse events?
Hello,

I am little confused with mouse events.
I want to do something when my object is clicked, so I used:

something.Bind(wx.EVT_LEFT_DOWN,self.OnClick)

It doesn't work when something is wx.Panel, it also doesn't work when something is wx.Bitmap, but it works when I call wx.InitAllImageHandlers() first.
I also tried to use something.CaptureMouse(), it worked, but I don't know how to disable capture, so after I destroy object - application goes unstable.

Could you explain me what is proper way to make sure that my object receives all mouse events?
How can I do it for wx.Panel? Or for wx.Bitmap?


Hi!
Below is an example and at the bottom is the bind methods to use. Note that a left mouse click is a mouse event and also a command level where it is seen on all levels. So you have to set a test inside the bind method function to test for the mouse id, the important part is the id tag which will tell you where it is coming from.
My key event example you will note the immediate event.skip for this is so the event is passed on to all other levels. Now if you want certain keys or events to stop when captured then you must do an if/else statement.
if event?:
do any test...
else: event.skip()


# Creating the menubar.
menuBar = wx.MenuBar()
menuBar.Append( filemenu,"&File") # Adding the "filemenu" to the MenuBar
menuBar.Append( voicemenu,"&Voice") # Adding the "voicemenu" to the MenuBar
self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content.
self.data4menu = {}
for o in self.items4menu["File"]:
wx.EVT_MENU(self, o[ID], o[MF])
self.data4menu[ o[ID]] = o
for o in self.items4menu["Voice"]:
wx.EVT_MENU(self, o[ID], o[MF])
self.data4menu[ o[ID]] = o
for o in self.items4menu["Settings"]:
wx.EVT_MENU(self, o[ID], o[MF])
self.data4menu[ o[ID]] = o
wx.EVT_MENU(self, o[ID]+DW_ID, o[MF])
self.data4menu[ o[ID]+DW_ID] = o
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.buttons=[]
self.data4buttons={}
i=0
for o in self.buttons4voice:
self.buttons.append( wx.Button(self, o[ID], o[HK]+o[KD]))
self.sizer2.Add( self.buttons[i], 1, wx.EXPAND)
self.data4buttons[ self.buttons[i].GetId()] = o
self.buttons[i].Bind(wx.EVT_ENTER_WINDOW, o[MF]) #, id=self.buttons[i].GetId())
self.buttons[i].Bind( wx.EVT_RIGHT_DOWN, o[MF2]) #, id=self.buttons[i].GetId())
self.buttons[i].Bind( wx.EVT_BUTTON, o[MF2]) #, id=self.buttons[i].GetId())
i+=1

.
.
.
def OnEnter(self, event):
"WHEN ENTERING SAY LABEL OF BUTTON!"
# self.button2bind = self.Bind(wx.EVT_BUTTON, self.OnClick, id=event.GetId())
eventType = event.GetEventType()
# tts.Speak( event.GetPosition())
label4btn = self.data4buttons[ event.GetId()][0]
# tts.Speak( label4btn)
if label4btn == "Voice":
set_value = tts.getVoiceName()
elif label4btn == "Rate":
set_value = str( tts.getRate())
elif label4btn == "Pitch":
set_value = str( tts.getPitch())
elif label4btn == "Volume":
set_value = str( tts.getVolume())
text = label4btn +" Button " +set_value
tts.Speak( text, async, purge)
def OnVoice(self, event):
"CHECK IF DOWN KEY FOR VOICE SETTING!"
wx.EVT_KEY_DOWN(self, self.OnClick)
self.OnClick( event)
def OnClick(self, event):
"BUTTON CLICKED ON AND IN FUTURE GET BUTTON POS!"
#comment tts.Speak( 'Event Name: %s Time Stamp: %s ' % (event.GetClassName(), event.GetTimestamp()))
#comment print 'Event Name: %s Time Stamp: %s ' % (event.GetClassName(), event.GetTimestamp())
#comment IF KEY EVENT:
#comment key = event.GetKeyCode()
#comment pos = event.GetPositionTuple()
eventType = event.GetEventType()
#comment if eventType == wx.EVT_BUTTON: print "Mouse! "
eventName = event.GetClassName()
eventId = event.GetId()
#comment self.control.SetValue( eventName)
#comment: CHECKING ID AND SETTING DIRECTION!
if eventId in self.data4menu:
label4btn = self.data4menu[ event.GetId()][0]
else:
label4btn = self.data4buttons[ event.GetId()][0]
dir = 1
if eventName == "wxMouseEvent" or eventId > DW_ID: dir = -1
set_value = "Error! Wrong Button!"
if label4btn == "Voice":
value = tts.getVoiceNum() + dir
if value < 1: value += 0
if value >= tts.getVoiceCount():
value = tts.getVoiceCount()-1
tts.setVoice( value)
set_value = tts.getVoiceName()
elif label4btn == "Rate":
value = tts.getRate()
value += dir
if value > 10: value = 10
if value < -10: value = -10
tts.setRate( value)
set_value = str( value)
elif label4btn == "Pitch":
value = tts.getPitch()
value += dir
if value > 10: value = 10
if value < -10: value = -10
tts.setPitch( value)
set_value = str( value)
elif label4btn == "Volume":
value = tts.getVolume()
value += 10*dir
if value > 100: value = 100
if value < 0:
tts.setVolume( 50)
tts.Speak( "Volume Minimum!")
value = 0
tts.setVolume( value)
set_value = str( value)
tts.Speak( set_value, async)

def OnKey(self, event):
"KEY CAPTURE FOR EDITING! MUST USE EVT_CHAR FOR ALL CODES."
event.Skip()
k = event.GetKeyCode()
m = event.GetModifiers()
#comment rk = event.GetRawKeyCode() #not in all platforms
#comment uk = event.GetUnicodeKey() #Not on platforms that unicode was not installed!#comment
ch=""
if k<256:
self.sayCap( chr(k))
#comment tts.Speak("%d %d" % (k,m))
#comment txt = self.control.GetValue()
#comment x2y4m = event.GetPosition() #Mouse position in event window, textctrl!
#comment c = self.control.GetInsertionPoint() #present line column position when event fired!
#comment tl = self.control.GetLastPosition() #last point in textctrl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1561" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT
face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial
size=2></FONT><BR></DIV>
<DIV dir=ltr>Hello,<BR><BR>I am little confused with mouse events.<BR>I want to
do something when my object is clicked, so I
used:<BR><BR>something.Bind(wx.EVT_LEFT_DOWN,self.OnClick)<BR><BR>It doesn't
work when something is wx.Panel, it also doesn't work when something is
wx.Bitmap, but it works when I call wx.InitAllImageHandlers() first.<BR>I also
tried to use something.CaptureMouse(), it worked, but I don't know how to
disable capture, so after I destroy object - application goes
unstable.<BR><BR>Could you explain me what is proper way to make sure that my
object receives all mouse events?<BR>How can I do it for wx.Panel? Or for
wx.Bitmap?</DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2>Hi!</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; Below is an example and
at the bottom is the bind methods to use. Note that a left mouse click is a
mouse event and also a command level where it is seen on all levels. So you have
to set a test inside the bind method function to test for the mouse id, the
important part is the id tag which will tell you where it is coming from.
</FONT></DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT
face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial
size=2></FONT><FONT face=Arial size=2></FONT></DIV>
<DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; My key event example you
will note the immediate event.skip for this is so the event is passed on to all
other levels. Now if you want certain keys or events to stop when captured then
you must do an if/else statement. </FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; if event?:</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
do any test...</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp; else:
event.skip()</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT
face=Arial size=2></FONT><FONT face=Arial
size=2></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Creating the
menubar.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menuBar =
wx.MenuBar()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menuBar.Append(
filemenu,"&amp;File") # Adding the "filemenu" to the
MenuBar<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menuBar.Append(
voicemenu,"&amp;Voice") # Adding the "voicemenu" to the
MenuBar<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.SetMenuBar(menuBar)&nbsp; # Adding the MenuBar to the Frame
content.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.data4menu =
{}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for o in
self.items4menu["File"]:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wx.EVT_MENU(self, o[ID],
o[MF])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4menu[ o[ID]] = o<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for o
in
self.items4menu["Voice"]:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wx.EVT_MENU(self, o[ID],
o[MF])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4menu[ o[ID]] = o<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for o
in
self.items4menu["Settings"]:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wx.EVT_MENU(self, o[ID],
o[MF])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4menu[ o[ID]] =
o<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wx.EVT_MENU(self, o[ID]+DW_ID,
o[MF])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4menu[ o[ID]+DW_ID] = o<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.sizer2 =
wx.BoxSizer(wx.HORIZONTAL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.buttons=[]<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4buttons={}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
i=0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for o in
self.buttons4voice:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.buttons.append( wx.Button(self, o[ID],
o[HK]+o[KD]))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.sizer2.Add( self.buttons[i], 1,
wx.EXPAND)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.data4buttons[ self.buttons[i].GetId()] =
o<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.buttons[i].Bind(wx.EVT_ENTER_WINDOW, o[MF]) #,
id=self.buttons[i].GetId())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.buttons[i].Bind( wx.EVT_RIGHT_DOWN, o[MF2]) #,
id=self.buttons[i].GetId())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.buttons[i].Bind( wx.EVT_BUTTON, o[MF2]) #,
id=self.buttons[i].GetId())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
i+=1<BR></DIV>
<DIV dir=ltr><FONT face=Arial size=2>.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; def OnEnter(self,
event):<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "WHEN ENTERING SAY LABEL
OF BUTTON!"<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.button2bind =
self.Bind(wx.EVT_BUTTON, self.OnClick,
id=event.GetId())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventType =
event.GetEventType()<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tts.Speak(
event.GetPosition())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label4btn =
self.data4buttons[
event.GetId()][0]<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tts.Speak(
label4btn)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if label4btn ==
"Voice":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = tts.getVoiceName()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
elif label4btn ==
"Rate":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( tts.getRate())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
elif label4btn ==
"Pitch":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( tts.getPitch())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
elif label4btn ==
"Volume":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( tts.getVolume())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
text = label4btn +" Button "
+set_value<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tts.Speak( text, async,
purge)<BR>&nbsp;&nbsp;&nbsp; def OnVoice(self,
event):<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "CHECK IF DOWN KEY FOR
VOICE SETTING!"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wx.EVT_KEY_DOWN(self,
self.OnClick)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.OnClick(
event)<BR>&nbsp;&nbsp;&nbsp; def OnClick(self,
event):<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "BUTTON CLICKED ON AND IN
FUTURE GET BUTTON POS!"<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.Speak( 'Event Name: %s Time Stamp: %s ' % (event.GetClassName(),
event.GetTimestamp()))<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
print 'Event Name: %s Time Stamp: %s ' % (event.GetClassName(),
event.GetTimestamp())<BR>#comment IF KEY
EVENT:<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key =
event.GetKeyCode()<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos =
event.GetPositionTuple()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventType
= event.GetEventType()<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
eventType == wx.EVT_BUTTON: print "Mouse!
"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventName =
event.GetClassName()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eventId =
event.GetId()<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.control.SetValue( eventName)<BR>#comment: CHECKING ID AND SETTING
DIRECTION!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if eventId in
self.data4menu:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
label4btn = self.data4menu[
event.GetId()][0]<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
label4btn = self.data4buttons[
event.GetId()][0]<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir =
1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if eventName == "wxMouseEvent"
or eventId &gt; DW_ID: dir = -1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = "Error! Wrong Button!"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if label4btn ==
"Voice":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value = tts.getVoiceNum() +
dir<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &lt;
1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value += 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if value &gt;=
tts.getVoiceCount():<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value =
tts.getVoiceCount()-1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.setVoice(
value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = tts.getVoiceName()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
elif label4btn ==
"Rate":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value =
tts.getRate()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value +=
dir<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &gt; 10: value =
10<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &lt; -10: value =
-10<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.setRate(
value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elif
label4btn ==
"Pitch":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value =
tts.getPitch()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value +=
dir<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &gt; 10: value =
10<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &lt; -10: value =
-10<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.setPitch(
value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elif
label4btn ==
"Volume":<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value =
tts.getVolume()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value +=
10*dir<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &gt; 100: value =
100<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
value &lt;
0:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.setVolume(
50)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.Speak( "Volume
Minimum!")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value = 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.setVolume(
value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
set_value = str( value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tts.Speak(
set_value, async)<BR></FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; def OnKey(self,
event):<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "KEY CAPTURE FOR EDITING!
MUST USE EVT_CHAR FOR ALL CODES."<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
event.Skip()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k =
event.GetKeyCode()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m =
event.GetModifiers()<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rk =
event.GetRawKeyCode()&nbsp;&nbsp; #not in all
platforms<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uk =
event.GetUnicodeKey()&nbsp; #Not on platforms that unicode was not
installed!#comment<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ch=""<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
k&lt;256:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
self.sayCap( chr(k))<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tts.Speak("%d %d" %&nbsp;
(k,m))<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txt =
self.control.GetValue()<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
x2y4m = event.GetPosition()&nbsp; #Mouse position in event window,
textctrl!<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c =
self.control.GetInsertionPoint() #present line column position when event
fired!<BR>#comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tl =
self.control.GetLastPosition()&nbsp; #last point in
textctrl<BR></DIV></FONT></DIV></BODY></HTML>
_______________________________________________
wxpython-users mailing list
[email protected]
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users