editors/Viewer.py
branchwxPython4
changeset 3742 8c3d9159b6a9
parent 3546 ee51d1deadfd
child 3750 f62625418bff
equal deleted inserted replaced
3741:838242d34741 3742:8c3d9159b6a9
    88     MAX_ZOOMIN = 4
    88     MAX_ZOOMIN = 4
    89 else:
    89 else:
    90     MAX_ZOOMIN = 7
    90     MAX_ZOOMIN = 7
    91 ZOOM_FACTORS = [math.sqrt(2) ** x for x in xrange(-6, MAX_ZOOMIN)]
    91 ZOOM_FACTORS = [math.sqrt(2) ** x for x in xrange(-6, MAX_ZOOMIN)]
    92 
    92 
       
    93 
       
    94 WX_NO_LOGICAL = "gtk3" in wx.PlatformInfo
    93 
    95 
    94 def GetVariableCreationFunction(variable_type):
    96 def GetVariableCreationFunction(variable_type):
    95     def variableCreationFunction(viewer, id, specific_values):
    97     def variableCreationFunction(viewer, id, specific_values):
    96         return FBD_Variable(viewer,
    98         return FBD_Variable(viewer,
    97                             variable_type,
    99                             variable_type,
   831 
   833 
   832     def PrepareDC(self, dc):
   834     def PrepareDC(self, dc):
   833         dc.SetFont(self.GetFont())
   835         dc.SetFont(self.GetFont())
   834         self.Editor.DoPrepareDC(dc)
   836         self.Editor.DoPrepareDC(dc)
   835         dc.SetUserScale(self.ViewScale[0], self.ViewScale[1])
   837         dc.SetUserScale(self.ViewScale[0], self.ViewScale[1])
       
   838         if WX_NO_LOGICAL:
       
   839             dc.SetLogicalFunction = lambda *a,**k: None
   836 
   840 
   837     def GetLogicalDC(self):
   841     def GetLogicalDC(self):
   838         dc = wx.ClientDC(self.Editor)
   842         dc = wx.ClientDC(self.Editor)
   839         self.PrepareDC(dc)
   843         self.PrepareDC(dc)
   840         return dc
   844         return dc
  2273                 self.RefreshVisibleElements()
  2277                 self.RefreshVisibleElements()
  2274         else:
  2278         else:
  2275             if not event.Dragging() and (gettime() - self.LastHighlightCheckTime) > REFRESH_PERIOD:
  2279             if not event.Dragging() and (gettime() - self.LastHighlightCheckTime) > REFRESH_PERIOD:
  2276                 self.LastHighlightCheckTime = gettime()
  2280                 self.LastHighlightCheckTime = gettime()
  2277                 highlighted = self.FindElement(event, connectors=False)
  2281                 highlighted = self.FindElement(event, connectors=False)
  2278                 if self.HighlightedElement is not None and self.HighlightedElement != highlighted:
  2282                 if self.HighlightedElement != highlighted:
  2279                     self.HighlightedElement.SetHighlighted(False)
  2283                     if self.HighlightedElement is not None:
  2280                     self.HighlightedElement = None
  2284                         self.HighlightedElement.SetHighlighted(False)
  2281                 if highlighted is not None:
  2285                     if highlighted is not None:
  2282                     if not self.Debug and isinstance(highlighted, (Wire, Graphic_Group)):
  2286                         if not self.Debug and isinstance(highlighted, (Wire, Graphic_Group)):
  2283                         highlighted.HighlightPoint(pos)
  2287                             highlighted.HighlightPoint(pos)
  2284                     if self.HighlightedElement != highlighted:
       
  2285                         highlighted.SetHighlighted(True)
  2288                         highlighted.SetHighlighted(True)
  2286                 self.HighlightedElement = highlighted
  2289                 self.HighlightedElement = highlighted
  2287             if self.rubberBand.IsShown():
  2290             if self.rubberBand.IsShown():
  2288                 self.rubberBand.OnMotion(event, dc, self.Scaling)
  2291                 self.rubberBand.OnMotion(event, dc, self.Scaling)
  2289             elif not self.Debug and self.Mode == MODE_SELECTION and self.SelectedElement is not None:
  2292             elif not self.Debug and self.Mode == MODE_SELECTION and self.SelectedElement is not None: