- if self._focusObj is not None:
- self._selectedObj = self._focusObj
- newViewPos = (self._selectedObj.getMaximum() + self._selectedObj.getMinimum()) / 2
- self._animView = anim(self._viewTarget, newViewPos, 0.5)
+ if e.ButtonDClick():
+ self._mouseState = 'doubleClick'
+ else:
+ self._mouseState = 'dragOrClick'
+
+ def OnMouseUp(self, e):
+ if self._mouseState == 'dragOrClick':
+ if e.Button == 1 and self._focusObj is not None:
+ self._selectedObj = self._focusObj
+ newViewPos = (self._selectedObj.getMaximum() + self._selectedObj.getMinimum()) / 2
+ self._animView = anim(self._viewTarget.copy(), newViewPos, 0.5)
+ if self._mouseState == 'doubleClick':
+ if self._selectedObj is not None:
+ newZoom = numpy.linalg.norm(self._selectedObj.getSize()) * 2
+ self._animZoom = anim(self._zoom, newZoom, 0.5)
+ self._mouseState = None