![]() |
|
|||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
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)
|
|
#2
|
|||
|
|||
|
Thank you farshizzo, the script works well, though I do not really understand the codes.
Is that the MOUSE_STILL_EVENT is a variable you create, while the 'MouseStillEvent' is a constant defined somewhere else? Sorry for the newbie question. |
|
#3
|
|||
|
|||
|
The viz.getEventID function is used to generate a custom event ID given a unique event name.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|