proximitySensor.py (1568B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\controls\proximitySensor.py 2 import signals 3 from carbonui import uiconst 4 from carbonui.primitives.container import Container 5 from carbonui.uicore import uicore 6 7 class ProximitySensor(Container): 8 default_state = uiconst.UI_DISABLED 9 10 def __init__(self, **kwargs): 11 super(ProximitySensor, self).__init__(**kwargs) 12 self._mouse_inside = False 13 self.on_mouse_enter = signals.Signal() 14 self.on_mouse_exit = signals.Signal() 15 self._register_mouse_events() 16 17 def Close(self): 18 self._unregister_mouse_events() 19 super(ProximitySensor, self).Close() 20 21 def mouse_inside(self): 22 return self._mouse_inside 23 24 def _register_mouse_events(self): 25 self._mouse_move_cookie = uicore.event.RegisterForTriuiEvents(uiconst.UI_MOUSEMOVE, self._on_global_mouse_move) 26 27 def _unregister_mouse_events(self): 28 uicore.event.UnregisterForTriuiEvents(self._mouse_move_cookie) 29 30 def _on_global_mouse_move(self, *args): 31 mouseX = uicore.uilib.x 32 mouseY = uicore.uilib.y 33 mouseOutside = mouseX < self.absoluteLeft or mouseX > self.absoluteRight or mouseY < self.absoluteTop or mouseY > self.absoluteBottom 34 if not mouseOutside: 35 if not self._mouse_inside: 36 self._mouse_inside = True 37 self.on_mouse_enter() 38 elif self._mouse_inside: 39 self._mouse_inside = False 40 self.on_mouse_exit() 41 return True