[Python-checkins] CVS: python/dist/src/Mac/Tools/IDE Wcontrols.py,1.12,1.12.6.1
Jack Jansen
jackjansen@users.sourceforge.net
Wed, 27 Feb 2002 14:27:41 -0800
Update of /cvsroot/python/python/dist/src/Mac/Tools/IDE
In directory usw-pr-cvs1:/tmp/cvs-serv21859/Python 2.2/Mac/Tools/IDE
Modified Files:
Tag: release22-maint
Wcontrols.py
Log Message:
Backport of 1.13:
added support for live feedback in scrollbars
Index: Wcontrols.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/Wcontrols.py,v
retrieving revision 1.12
retrieving revision 1.12.6.1
diff -C2 -d -r1.12 -r1.12.6.1
*** Wcontrols.py 4 Dec 2001 13:30:17 -0000 1.12
--- Wcontrols.py 27 Feb 2002 22:27:39 -0000 1.12.6.1
***************
*** 296,301 ****
"""Standard scrollbar."""
! def __init__(self, possize, callback = None, value = 0, min = 0, max = 0):
! procID = Controls.scrollBarProc
ControlWidget.__init__(self, possize, "", procID, callback, value, min, max)
--- 296,304 ----
"""Standard scrollbar."""
! def __init__(self, possize, callback=None, value=0, min=0, max=0, livefeedback=1):
! if livefeedback:
! procID = Controls.kControlScrollBarLiveProc
! else:
! procID = Controls.scrollBarProc
ControlWidget.__init__(self, possize, "", procID, callback, value, min, max)
***************
*** 374,405 ****
if not self._enabled:
return
! # custom TrackControl. A mousedown in a scrollbar arrow or page area should
! # generate _control hits as long as the mouse is a) down, b) still in the same part
! part = self._control.TestControl(point)
! if Controls.inUpButton <= part <= Controls.inPageDown:
! self._control.HiliteControl(part)
! self._hit(part)
! oldpart = part
! # slight delay before scrolling at top speed...
! now = Evt.TickCount()
! while Evt.StillDown():
! if (Evt.TickCount() - now) > 18: # 0.3 seconds
! break
! while Evt.StillDown():
! part = self._control.TestControl(point)
! if part == oldpart:
! self._control.HiliteControl(part)
! self._hit(part)
! else:
! self._control.HiliteControl(0)
! self.SetPort()
! point = Evt.GetMouse()
! self._control.HiliteControl(0)
! elif part == Controls.inThumb:
! part = self._control.TrackControl(point)
if part:
self._hit(part)
def _hit(self, part):
if part == Controls.inThumb:
try:
--- 377,389 ----
if not self._enabled:
return
! def hitter(ctl, part, self=self):
if part:
self._hit(part)
+ part = self._control.TrackControl(point, hitter)
+ if part:
+ self._hit(part)
def _hit(self, part):
+ value = None
if part == Controls.inThumb:
try:
***************
*** 417,421 ****
elif part == Controls.inPageDown:
value = "--"
! if self._callback:
Wbase.CallbackCall(self._callback, 1, value)
--- 401,405 ----
elif part == Controls.inPageDown:
value = "--"
! if value is not None and self._callback:
Wbase.CallbackCall(self._callback, 1, value)