2
from traits.api import Int, Tuple
3
from enable.tools.api import ViewportPanTool
5
class MPViewportPanTool(ViewportPanTool):
11
def normal_blob_down(self, event):
12
if self.cur_bid == -1 and self.is_draggable(event.x, event.y):
13
self.cur_bid = event.bid
14
self.drag_start(event)
16
def dragging_blob_up(self, event):
17
if event.bid == self.cur_bid:
21
def dragging_blob_move(self, event):
22
if event.bid == self.cur_bid:
23
self._last_blob_pos = (event.x, event.y)
26
def drag_start(self, event):
28
self.original_padding = self.component.padding
29
if hasattr(event, "bid"):
30
event.window.capture_blob(self, event.bid,
31
event.net_transform())
33
event.window.set_mouse_owner(self, event.net_transform())
34
self._last_blob_pos = (event.x, event.y)
35
self.mouse_down_position = (event.x,event.y)
36
self.event_state = "dragging"
38
ViewportPanTool.drag_start(self, event)
41
def drag_end(self, event):
42
event.x, event.y = self._last_blob_pos
43
if hasattr(event, "bid"):
44
event.window.release_blob(event.bid)
45
self.event_state = "normal"
46
ViewportPanTool.drag_end(self, event)