graphics/GraphicCommons.py
changeset 1743 c3c3d1318130
parent 1742 92932cd370a4
child 1744 69dfdb26f600
equal deleted inserted replaced
1742:92932cd370a4 1743:c3c3d1318130
  1811     def SetSelectedSegment(self, segment):
  1811     def SetSelectedSegment(self, segment):
  1812         # The last segment is indicated
  1812         # The last segment is indicated
  1813         if segment == -1:
  1813         if segment == -1:
  1814             segment = len(self.Segments) - 1
  1814             segment = len(self.Segments) - 1
  1815         # The selected segment is reinitialised
  1815         # The selected segment is reinitialised
  1816         if segment == None:
  1816         if segment is None:
  1817             if self.StartConnected:
  1817             if self.StartConnected:
  1818                 self.StartConnected.SetSelected(False)
  1818                 self.StartConnected.SetSelected(False)
  1819             if self.EndConnected:
  1819             if self.EndConnected:
  1820                 self.EndConnected.SetSelected(False)
  1820                 self.EndConnected.SetSelected(False)
  1821         # The segment selected is the first
  1821         # The segment selected is the first
  2020             points.reverse()
  2020             points.reverse()
  2021         return points
  2021         return points
  2022 
  2022 
  2023     # Returns the position of the two selected segment points
  2023     # Returns the position of the two selected segment points
  2024     def GetSelectedSegmentPoints(self):
  2024     def GetSelectedSegmentPoints(self):
  2025         if self.SelectedSegment != None and len(self.Points) > 1:
  2025         if self.SelectedSegment is not None and len(self.Points) > 1:
  2026             return self.Points[self.SelectedSegment:self.SelectedSegment + 2]
  2026             return self.Points[self.SelectedSegment:self.SelectedSegment + 2]
  2027         return []
  2027         return []
  2028 
  2028 
  2029     # Returns if the selected segment is the first and/or the last of the wire
  2029     # Returns if the selected segment is the first and/or the last of the wire
  2030     def GetSelectedSegmentConnections(self):
  2030     def GetSelectedSegmentConnections(self):
  2031         if self.SelectedSegment != None and len(self.Points) > 1:
  2031         if self.SelectedSegment is not None and len(self.Points) > 1:
  2032             return self.SelectedSegment == 0, self.SelectedSegment == len(self.Segments) - 1
  2032             return self.SelectedSegment == 0, self.SelectedSegment == len(self.Segments) - 1
  2033         return (True, True)
  2033         return (True, True)
  2034 
  2034 
  2035     # Returns the connectors on which the wire is connected
  2035     # Returns the connectors on which the wire is connected
  2036     def GetConnected(self):
  2036     def GetConnected(self):
  2434         #    self.Handle = (HANDLE_POINT, result)
  2434         #    self.Handle = (HANDLE_POINT, result)
  2435         #    wx.CallAfter(self.Parent.SetCurrentCursor, 1)
  2435         #    wx.CallAfter(self.Parent.SetCurrentCursor, 1)
  2436         #else:
  2436         #else:
  2437         # Test if a segment have been handled
  2437         # Test if a segment have been handled
  2438         result = self.TestSegment(pos)
  2438         result = self.TestSegment(pos)
  2439         if result != None:
  2439         if result is not None:
  2440             if result[1] in (NORTH, SOUTH):
  2440             if result[1] in (NORTH, SOUTH):
  2441                 wx.CallAfter(self.Parent.SetCurrentCursor, 4)
  2441                 wx.CallAfter(self.Parent.SetCurrentCursor, 4)
  2442             elif result[1] in (EAST, WEST):
  2442             elif result[1] in (EAST, WEST):
  2443                 wx.CallAfter(self.Parent.SetCurrentCursor, 5)
  2443                 wx.CallAfter(self.Parent.SetCurrentCursor, 5)
  2444             self.Handle = (HANDLE_SEGMENT, result)
  2444             self.Handle = (HANDLE_SEGMENT, result)
  2450     # Method called when a RightUp event has been generated
  2450     # Method called when a RightUp event has been generated
  2451     def OnRightUp(self, event, dc, scaling):
  2451     def OnRightUp(self, event, dc, scaling):
  2452         pos = GetScaledEventPosition(event, dc, scaling)
  2452         pos = GetScaledEventPosition(event, dc, scaling)
  2453         # Test if a segment has been handled
  2453         # Test if a segment has been handled
  2454         result = self.TestSegment(pos, True)
  2454         result = self.TestSegment(pos, True)
  2455         if result != None:
  2455         if result is not None:
  2456             self.Handle = (HANDLE_SEGMENT, result)
  2456             self.Handle = (HANDLE_SEGMENT, result)
  2457             # Popup the menu with special items for a wire
  2457             # Popup the menu with special items for a wire
  2458             self.Parent.PopupWireMenu(0 < result[0] < len(self.Segments) - 1)
  2458             self.Parent.PopupWireMenu(0 < result[0] < len(self.Segments) - 1)
  2459         else:
  2459         else:
  2460             # Execute the default method for a graphic element
  2460             # Execute the default method for a graphic element
  2615         start, end = self.OverStart, self.OverEnd
  2615         start, end = self.OverStart, self.OverEnd
  2616         self.OverStart = False
  2616         self.OverStart = False
  2617         self.OverEnd = False
  2617         self.OverEnd = False
  2618         # Test if a point has been handled
  2618         # Test if a point has been handled
  2619         result = self.TestPoint(pos)
  2619         result = self.TestPoint(pos)
  2620         if result != None:
  2620         if result is not None:
  2621             if result == 0 and self.StartConnected is not None:
  2621             if result == 0 and self.StartConnected is not None:
  2622                 self.OverStart = True
  2622                 self.OverStart = True
  2623             elif result != 0 and self.EndConnected is not None:
  2623             elif result != 0 and self.EndConnected is not None:
  2624                 self.OverEnd = True
  2624                 self.OverEnd = True
  2625         if start != self.OverStart or end != self.OverEnd:
  2625         if start != self.OverStart or end != self.OverEnd: