View Single Post
  #2  
Old 04-11-2011, 05:41 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
You can use a delayed timer to detect when the mouse stops moving after a certain amount of time. The following script shows how to do this:
Code:
import viz
viz.go()

MOUSE_STILL_EVENT = viz.getEventID('MouseStillEvent')

class MouseStillHandler(viz.EventClass):
	def __init__(self,delay=0.25):
		viz.EventClass.__init__(self)
		self.still_delay = delay

		self.callback(viz.TIMER_EVENT,self._onTimer)
		self.callback(viz.MOUSE_MOVE_EVENT,self._onMouseMove)

	def _onTimer(self,num):
		viz.sendEvent(MOUSE_STILL_EVENT,viz.Event(delay=self.still_delay))
		self.killtimer(0)

	def _onMouseMove(self,e):
		self.killtimer(0)
		self.starttimer(0,self.still_delay)


handler = MouseStillHandler()

def onMouseStill(e):
	print 'Mouse still'

viz.callback(MOUSE_STILL_EVENT,onMouseStill)
Reply With Quote