[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)