SFCViewer.py
changeset 144 b67a5de5a24a
parent 122 e6faee0c271b
child 145 4fb225afddf4
equal deleted inserted replaced
143:015a34da60eb 144:b67a5de5a24a
   210                     if self.IsWire(self.SelectedElement):
   210                     if self.IsWire(self.SelectedElement):
   211                         self.SelectedElement.SetSelectedSegment(None)
   211                         self.SelectedElement.SetSelectedSegment(None)
   212                     else:
   212                     else:
   213                         self.SelectedElement.SetSelected(False)
   213                         self.SelectedElement.SetSelected(False)
   214                     self.SelectedElement = None
   214                     self.SelectedElement = None
   215                     self.Refresh()
       
   216                 if element:
   215                 if element:
   217                     self.SelectedElement = element
   216                     self.SelectedElement = element
   218                     self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
   217                     self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
   219                     self.Refresh()
   218                     self.SelectedElement.Refresh()
   220                 else:
   219                 else:
   221                     self.rubberBand.Reset()
   220                     self.rubberBand.Reset()
   222                     self.rubberBand.OnLeftDown(event, dc, self.Scaling)
   221                     self.rubberBand.OnLeftDown(event, dc, self.Scaling)
   223         elif self.Mode == MODE_COMMENT:
   222         elif self.Mode == MODE_COMMENT:
   224             self.rubberBand.Reset()
   223             self.rubberBand.Reset()
   232             wire.Handle = (HANDLE_POINT, 1)
   231             wire.Handle = (HANDLE_POINT, 1)
   233             self.AddWire(wire)
   232             self.AddWire(wire)
   234             if self.SelectedElement:
   233             if self.SelectedElement:
   235                 self.SelectedElement.SetSelected(False)
   234                 self.SelectedElement.SetSelected(False)
   236             self.SelectedElement = wire
   235             self.SelectedElement = wire
   237             self.Refresh()
       
   238         event.Skip()
   236         event.Skip()
   239 
   237 
   240     def OnViewerLeftUp(self, event):
   238     def OnViewerLeftUp(self, event):
   241         if self.GetDrawingMode() == FREEDRAWING_MODE:
   239         if self.GetDrawingMode() == FREEDRAWING_MODE:
   242             Viewer.OnViewerLeftUp(self, event)
   240             Viewer.OnViewerLeftUp(self, event)
   246                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
   244                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
   247                 if len(elements) > 0:
   245                 if len(elements) > 0:
   248                     self.SelectedElement = Graphic_Group(self)
   246                     self.SelectedElement = Graphic_Group(self)
   249                     self.SelectedElement.SetElements(elements)
   247                     self.SelectedElement.SetElements(elements)
   250                     self.SelectedElement.SetSelected(True)
   248                     self.SelectedElement.SetSelected(True)
   251                     self.Refresh()
       
   252             elif self.Mode == MODE_COMMENT:
   249             elif self.Mode == MODE_COMMENT:
   253                 bbox = self.rubberBand.GetCurrentExtent()
   250                 bbox = self.rubberBand.GetCurrentExtent()
   254                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
   251                 self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
   255                 wx.CallAfter(self.AddComment, bbox)
   252                 wx.CallAfter(self.AddComment, bbox)
   256         elif self.Mode == MODE_INITIALSTEP:
   253         elif self.Mode == MODE_INITIALSTEP:
   258         elif self.Mode == MODE_SELECTION and self.SelectedElement:
   255         elif self.Mode == MODE_SELECTION and self.SelectedElement:
   259             if self.IsWire(self.SelectedElement):
   256             if self.IsWire(self.SelectedElement):
   260                 self.SelectedElement.SetSelectedSegment(0)
   257                 self.SelectedElement.SetSelectedSegment(0)
   261             else:
   258             else:
   262                 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
   259                 self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
       
   260                 self.SelectedElement.Refresh()
   263             wx.CallAfter(self.SetCursor, wx.NullCursor)
   261             wx.CallAfter(self.SetCursor, wx.NullCursor)
   264             self.ReleaseMouse()
       
   265             self.Refresh()
       
   266         elif self.Mode == MODE_WIRE and self.SelectedElement:
   262         elif self.Mode == MODE_WIRE and self.SelectedElement:
   267             self.SelectedElement.ResetPoints()
   263             self.SelectedElement.ResetPoints()
   268             self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   264             self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   269             self.SelectedElement.GeneratePoints()
   265             self.SelectedElement.GeneratePoints()
   270             self.SelectedElement.RefreshModel()
   266             self.SelectedElement.RefreshModel()
   271             self.SelectedElement.SetSelected(True)
   267             self.SelectedElement.SetSelected(True)
   272             self.Refresh()
       
   273         event.Skip()
   268         event.Skip()
   274     
   269     
   275     def OnViewerRightUp(self, event):
   270     def OnViewerRightUp(self, event):
   276         if self.GetDrawingMode() == FREEDRAWING_MODE:
   271         if self.GetDrawingMode() == FREEDRAWING_MODE:
   277             Viewer.OnViewerRightUp(self, event)
   272             Viewer.OnViewerRightUp(self, event)
   286                 if self.IsWire(self.SelectedElement):
   281                 if self.IsWire(self.SelectedElement):
   287                     self.SelectedElement.SetSelectedSegment(0)
   282                     self.SelectedElement.SetSelectedSegment(0)
   288                 else:
   283                 else:
   289                     self.SelectedElement.SetSelected(True)
   284                     self.SelectedElement.SetSelected(True)
   290                     self.SelectedElement.OnRightUp(event, dc, self.Scaling)
   285                     self.SelectedElement.OnRightUp(event, dc, self.Scaling)
       
   286                     self.SelectedElement.Refresh()
   291                 wx.CallAfter(self.SetCursor, wx.NullCursor)
   287                 wx.CallAfter(self.SetCursor, wx.NullCursor)
   292                 self.ReleaseMouse()
       
   293                 self.Refresh()
       
   294         event.Skip()
   288         event.Skip()
   295     
   289     
   296     def OnViewerLeftDClick(self, event):
   290     def OnViewerLeftDClick(self, event):
   297         if self.GetDrawingMode() == FREEDRAWING_MODE:
   291         if self.GetDrawingMode() == FREEDRAWING_MODE:
   298             Viewer.OnViewerLeftDClick(self, event)
   292             Viewer.OnViewerLeftDClick(self, event)
   308             if self.rubberBand.IsShown():
   302             if self.rubberBand.IsShown():
   309                 self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   303                 self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   310             elif self.Mode == MODE_SELECTION and self.SelectedElement:
   304             elif self.Mode == MODE_SELECTION and self.SelectedElement:
   311                 if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group):
   305                 if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group):
   312                     self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   306                     self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   313                 self.Refresh()
   307                     self.SelectedElement.Refresh()
   314             elif self.Mode == MODE_WIRE and self.SelectedElement:
   308             elif self.Mode == MODE_WIRE and self.SelectedElement:
   315                 self.SelectedElement.ResetPoints()
   309                 self.SelectedElement.ResetPoints()
   316                 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   310                 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
   317                 self.SelectedElement.GeneratePoints()
   311                 self.SelectedElement.GeneratePoints()
   318                 self.Refresh()
   312                 self.SelectedElement.Refresh()
   319             self.UpdateScrollPos(event)
   313             self.UpdateScrollPos(event)
   320         event.Skip()
   314         event.Skip()
   321 
   315 
   322 #-------------------------------------------------------------------------------
   316 #-------------------------------------------------------------------------------
   323 #                          Keyboard event functions
   317 #                          Keyboard event functions
   346             elif self.SelectedElement:
   340             elif self.SelectedElement:
   347                 self.SelectedElement.Move(-scaling[0], 0)
   341                 self.SelectedElement.Move(-scaling[0], 0)
   348                 self.SelectedElement.RefreshModel()
   342                 self.SelectedElement.RefreshModel()
   349                 self.RefreshBuffer()
   343                 self.RefreshBuffer()
   350                 self.RefreshScrollBars()
   344                 self.RefreshScrollBars()
   351                 self.Refresh()
   345                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)))
   352         elif keycode == wx.WXK_RIGHT:
   346         elif keycode == wx.WXK_RIGHT:
   353             if event.ControlDown() and event.ShiftDown():
   347             if event.ControlDown() and event.ShiftDown():
   354                 self.Scroll(xmax, ypos)
   348                 self.Scroll(xmax, ypos)
   355             elif event.ControlDown():
   349             elif event.ControlDown():
   356                 event.Skip()
   350                 event.Skip()
   357             elif self.SelectedElement:
   351             elif self.SelectedElement:
   358                 self.SelectedElement.Move(scaling[0], 0)
   352                 self.SelectedElement.Move(scaling[0], 0)
   359                 self.SelectedElement.RefreshModel()
   353                 self.SelectedElement.RefreshModel()
   360                 self.RefreshBuffer()
   354                 self.RefreshBuffer()
   361                 self.RefreshScrollBars()
   355                 self.RefreshScrollBars()
   362                 self.Refresh()
   356                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)))
   363         elif keycode == wx.WXK_UP:
   357         elif keycode == wx.WXK_UP:
   364             if event.ControlDown() and event.ShiftDown():
   358             if event.ControlDown() and event.ShiftDown():
   365                 self.Scroll(xpos, 0)
   359                 self.Scroll(xpos, 0)
   366             elif event.ControlDown():
   360             elif event.ControlDown():
   367                 event.Skip()
   361                 event.Skip()
   368             elif self.SelectedElement:
   362             elif self.SelectedElement:
   369                 self.SelectedElement.Move(0, -scaling[1])
   363                 self.SelectedElement.Move(0, -scaling[1])
   370                 self.SelectedElement.RefreshModel()
   364                 self.SelectedElement.RefreshModel()
   371                 self.RefreshBuffer()
   365                 self.RefreshBuffer()
   372                 self.RefreshScrollBars()
   366                 self.RefreshScrollBars()
   373                 self.Refresh()
   367                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])))
   374         elif keycode == wx.WXK_DOWN:
   368         elif keycode == wx.WXK_DOWN:
   375             if event.ControlDown() and event.ShiftDown():
   369             if event.ControlDown() and event.ShiftDown():
   376                 self.Scroll(xpos, ymax)
   370                 self.Scroll(xpos, ymax)
   377             elif event.ControlDown():
   371             elif event.ControlDown():
   378                 event.Skip()
   372                 event.Skip()
   379             elif self.SelectedElement:
   373             elif self.SelectedElement:
   380                 self.SelectedElement.Move(0, scaling[1])
   374                 self.SelectedElement.Move(0, scaling[1])
   381                 self.SelectedElement.RefreshModel()
   375                 self.SelectedElement.RefreshModel()
   382                 self.RefreshBuffer()
   376                 self.RefreshBuffer()
   383                 self.RefreshScrollBars()
   377                 self.RefreshScrollBars()
   384                 self.Refresh()
   378                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])))
   385         else:
   379         else:
   386             event.Skip()
   380             event.Skip()
   387         
   381         
   388 #-------------------------------------------------------------------------------
   382 #-------------------------------------------------------------------------------
   389 #                          Adding element functions
   383 #                          Adding element functions