editors/Viewer.py
changeset 1273 921858d68a13
parent 1263 895605ccac70
child 1287 70dc98533ec6
equal deleted inserted replaced
1272:0086cbee609b 1273:921858d68a13
  1807                 self.ToolTipElement.DisplayToolTip(tooltip_pos)
  1807                 self.ToolTipElement.DisplayToolTip(tooltip_pos)
  1808         event.Skip()
  1808         event.Skip()
  1809     
  1809     
  1810     def OnViewerLeftDown(self, event):
  1810     def OnViewerLeftDown(self, event):
  1811         self.Editor.CaptureMouse()
  1811         self.Editor.CaptureMouse()
       
  1812         self.StartMousePos = event.GetPosition()
  1812         if self.Mode == MODE_SELECTION:
  1813         if self.Mode == MODE_SELECTION:
  1813             dc = self.GetLogicalDC()
  1814             dc = self.GetLogicalDC()
  1814             pos = event.GetLogicalPosition(dc)
  1815             pos = event.GetLogicalPosition(dc)
  1815             if event.ShiftDown() and not event.ControlDown() and self.SelectedElement is not None:
  1816             if event.ShiftDown() and not event.ControlDown() and self.SelectedElement is not None:
  1816                 element = self.FindElement(event, True)
  1817                 element = self.FindElement(event, True)
  1890                         self.SelectedElement.SetSelected(False)
  1891                         self.SelectedElement.SetSelected(False)
  1891                         self.SelectedElement = None
  1892                         self.SelectedElement = None
  1892                     if element is not None:
  1893                     if element is not None:
  1893                         self.SelectedElement = element
  1894                         self.SelectedElement = element
  1894                         if self.Debug:
  1895                         if self.Debug:
  1895                             self.StartMousePos = event.GetPosition()
       
  1896                             Graphic_Element.OnLeftDown(self.SelectedElement, event, dc, self.Scaling)
  1896                             Graphic_Element.OnLeftDown(self.SelectedElement, event, dc, self.Scaling)
  1897                         else:
  1897                         else:
  1898                             self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
  1898                             self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
  1899                         self.SelectedElement.Refresh()
  1899                         self.SelectedElement.Refresh()
  1900                     else:
  1900                     else:
  1904                            MODE_CONTACT, MODE_COIL, MODE_POWERRAIL, MODE_INITIALSTEP, 
  1904                            MODE_CONTACT, MODE_COIL, MODE_POWERRAIL, MODE_INITIALSTEP, 
  1905                            MODE_STEP, MODE_TRANSITION, MODE_DIVERGENCE, MODE_JUMP, MODE_ACTION]:
  1905                            MODE_STEP, MODE_TRANSITION, MODE_DIVERGENCE, MODE_JUMP, MODE_ACTION]:
  1906             self.rubberBand.Reset()
  1906             self.rubberBand.Reset()
  1907             self.rubberBand.OnLeftDown(event, self.GetLogicalDC(), self.Scaling)
  1907             self.rubberBand.OnLeftDown(event, self.GetLogicalDC(), self.Scaling)
  1908         elif self.Mode == MODE_MOTION:
  1908         elif self.Mode == MODE_MOTION:
  1909             self.StartMousePos = event.GetPosition()
       
  1910             self.StartScreenPos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL)
  1909             self.StartScreenPos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL)
  1911         event.Skip()
  1910         event.Skip()
  1912 
  1911 
  1913     def OnViewerLeftUp(self, event):
  1912     def OnViewerLeftUp(self, event):
  1914         self.StartMousePos = None
  1913         self.StartMousePos = None
  2048                     Graphic_Element.OnLeftUp(self.SelectedElement, event, dc, self.Scaling)
  2047                     Graphic_Element.OnLeftUp(self.SelectedElement, event, dc, self.Scaling)
  2049                 else:
  2048                 else:
  2050                     self.SelectedElement.OnLeftUp(event, dc, self.Scaling)
  2049                     self.SelectedElement.OnLeftUp(event, dc, self.Scaling)
  2051                 wx.CallAfter(self.SetCurrentCursor, 0)
  2050                 wx.CallAfter(self.SetCurrentCursor, 0)
  2052         elif self.Mode == MODE_MOTION:
  2051         elif self.Mode == MODE_MOTION:
  2053             self.StartMousePos = None
       
  2054             self.StartScreenPos = None
  2052             self.StartScreenPos = None
  2055         if self.Mode != MODE_SELECTION and not self.SavedMode:
  2053         if self.Mode != MODE_SELECTION and not self.SavedMode:
  2056             wx.CallAfter(self.ParentWindow.ResetCurrentMode)
  2054             wx.CallAfter(self.ParentWindow.ResetCurrentMode)
  2057         if self.Editor.HasCapture():
  2055         if self.Editor.HasCapture():
  2058             self.Editor.ReleaseMouse()
  2056             self.Editor.ReleaseMouse()
  2243                         wx.CallAfter(self.SetCurrentCursor, 0)
  2241                         wx.CallAfter(self.SetCurrentCursor, 0)
  2244             self.UpdateScrollPos(event)
  2242             self.UpdateScrollPos(event)
  2245         event.Skip()
  2243         event.Skip()
  2246 
  2244 
  2247     def OnLeaveViewer(self, event):
  2245     def OnLeaveViewer(self, event):
  2248         if self.StartScreenPos is None:
       
  2249             self.StartMousePos = None
       
  2250         if self.SelectedElement is not None and self.SelectedElement.GetDragging():
  2246         if self.SelectedElement is not None and self.SelectedElement.GetDragging():
  2251             event.Skip()
  2247             event.Skip()
  2252         elif self.HighlightedElement is not None:
  2248         elif self.HighlightedElement is not None:
  2253             self.HighlightedElement.SetHighlighted(False)
  2249             self.HighlightedElement.SetHighlighted(False)
  2254             self.HighlightedElement = None
  2250             self.HighlightedElement = None
  3415 #-------------------------------------------------------------------------------
  3411 #-------------------------------------------------------------------------------
  3416 #                            Drawing functions
  3412 #                            Drawing functions
  3417 #-------------------------------------------------------------------------------
  3413 #-------------------------------------------------------------------------------
  3418 
  3414 
  3419     def OnScrollWindow(self, event):
  3415     def OnScrollWindow(self, event):
  3420         if self.Editor.HasCapture() and self.StartMousePos:
  3416         if self.Editor.HasCapture() and self.StartMousePos is not None:
  3421             return
  3417             return
  3422         if wx.Platform == '__WXMSW__':
  3418         if wx.Platform == '__WXMSW__':
  3423             wx.CallAfter(self.RefreshVisibleElements)
  3419             wx.CallAfter(self.RefreshVisibleElements)
  3424             self.Editor.Freeze()
  3420             self.Editor.Freeze()
  3425             wx.CallAfter(self.Editor.Thaw)
  3421             wx.CallAfter(self.Editor.Thaw)