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) |