LDViewer.py
changeset 56 7187e1c00975
parent 50 4610aafc884e
child 58 39cd981ff242
equal deleted inserted replaced
55:e24d2f917c7e 56:7187e1c00975
   409                         all_wires &= self.IsWire(element)
   409                         all_wires &= self.IsWire(element)
   410                     if all_wires:
   410                     if all_wires:
   411                         self.DeleteWire(self.SelectedElement)
   411                         self.DeleteWire(self.SelectedElement)
   412                     else:
   412                     else:
   413                         self.SelectedElement.Delete()
   413                         self.SelectedElement.Delete()
   414             self.Refresh()
   414                 self.RefreshBuffer()
       
   415                 self.RefreshScrollBars()
       
   416                 self.Refresh()
       
   417             elif keycode == WXK_LEFT:
       
   418                 if event.ControlDown() and event.ShiftDown():
       
   419                     self.Scroll(0, ypos)
       
   420                 elif event.ControlDown():
       
   421                     self.Scroll(max(0, xpos - 1), ypos)
       
   422             elif keycode == WXK_RIGHT:
       
   423                 if event.ControlDown() and event.ShiftDown():
       
   424                     self.Scroll(xmax, ypos)
       
   425                 elif event.ControlDown():
       
   426                     self.Scroll(min(xpos + 1, xmax), ypos)
       
   427             elif keycode == WXK_UP:
       
   428                 if event.ControlDown() and event.ShiftDown():
       
   429                     self.Scroll(xpos, 0)
       
   430                 elif event.ControlDown():
       
   431                     self.Scroll(xpos, max(0, ypos - 1))
       
   432             elif keycode == WXK_DOWN:
       
   433                 if event.ControlDown() and event.ShiftDown():
       
   434                     self.Scroll(xpos, ymax)
       
   435                 elif event.ControlDown():
       
   436                     self.Scroll(xpos, min(ypos + 1, ymax))
   415         event.Skip()
   437         event.Skip()
   416 
   438 
   417 #-------------------------------------------------------------------------------
   439 #-------------------------------------------------------------------------------
   418 #                          Adding element functions
   440 #                          Adding element functions
   419 #-------------------------------------------------------------------------------
   441 #-------------------------------------------------------------------------------
   491             wire.ConnectEndPoint(None, end_connector)
   513             wire.ConnectEndPoint(None, end_connector)
   492             self.AddWire(wire)
   514             self.AddWire(wire)
   493             rung.SelectElement(wire)
   515             rung.SelectElement(wire)
   494             self.RefreshPosition(coil)
   516             self.RefreshPosition(coil)
   495             self.Rungs.append(rung)
   517             self.Rungs.append(rung)
       
   518             self.RefreshBuffer()
       
   519             self.RefreshScrollBars()
   496             self.Refresh()
   520             self.Refresh()
   497 
   521 
   498     def AddLadderContact(self):
   522     def AddLadderContact(self):
   499         wires = []
   523         wires = []
   500         if self.IsWire(self.SelectedElement):
   524         if self.IsWire(self.SelectedElement):
   582                     right_wires[0].SetSelectedSegment(-1)
   606                     right_wires[0].SetSelectedSegment(-1)
   583                     self.SelectedElement = right_wires[0]
   607                     self.SelectedElement = right_wires[0]
   584                 rung.RefreshBoundingBox()
   608                 rung.RefreshBoundingBox()
   585                 new_bbox = rung.GetBoundingBox()
   609                 new_bbox = rung.GetBoundingBox()
   586                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
   610                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
       
   611                 self.RefreshBuffer()
       
   612                 self.RefreshScrollBars()
   587                 self.Refresh()
   613                 self.Refresh()
   588         else:
   614         else:
   589             message = wxMessageDialog(self, "You must select the wire where a contact should be added!", "Error", wxOK|wxICON_ERROR)
   615             message = wxMessageDialog(self, "You must select the wire where a contact should be added!", "Error", wxOK|wxICON_ERROR)
   590             message.ShowModal()
   616             message.ShowModal()
   591             message.Destroy()
   617             message.Destroy()
   801                     self.RefreshPosition(right_element.GetParentBlock())
   827                     self.RefreshPosition(right_element.GetParentBlock())
   802                 self.SelectedElement.RefreshBoundingBox()
   828                 self.SelectedElement.RefreshBoundingBox()
   803                 rung.RefreshBoundingBox()
   829                 rung.RefreshBoundingBox()
   804                 new_bbox = rung.GetBoundingBox()
   830                 new_bbox = rung.GetBoundingBox()
   805                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
   831                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
       
   832                 self.RefreshBuffer()
       
   833                 self.RefreshScrollBars()
   806                 self.Refresh()
   834                 self.Refresh()
   807             else:
   835             else:
   808                 message = wxMessageDialog(self, "The group of block must be coherent!", "Error", wxOK|wxICON_ERROR)
   836                 message = wxMessageDialog(self, "The group of block must be coherent!", "Error", wxOK|wxICON_ERROR)
   809                 message.ShowModal()
   837                 message.ShowModal()
   810                 message.Destroy()
   838                 message.Destroy()
  1156             if dialog.ShowModal() == wxID_OK:
  1184             if dialog.ShowModal() == wxID_OK:
  1157                 values = dialog.GetValues()
  1185                 values = dialog.GetValues()
  1158                 contact.SetName(values["name"])
  1186                 contact.SetName(values["name"])
  1159                 contact.SetType(values["type"])
  1187                 contact.SetType(values["type"])
  1160                 contact.RefreshModel(False)
  1188                 contact.RefreshModel(False)
       
  1189                 self.RefreshBuffer()
       
  1190                 self.RefreshScrollBars()
  1161                 self.Refresh()
  1191                 self.Refresh()
  1162             dialog.Destroy()
  1192             dialog.Destroy()
  1163 
  1193 
  1164     def EditCoilContent(self, coil):
  1194     def EditCoilContent(self, coil):
  1165         if self.GetDrawingMode() == FREEDRAWING_MODE:
  1195         if self.GetDrawingMode() == FREEDRAWING_MODE:
  1180             if dialog.ShowModal() == wxID_OK:
  1210             if dialog.ShowModal() == wxID_OK:
  1181                 values = dialog.GetValues()
  1211                 values = dialog.GetValues()
  1182                 coil.SetName(values["name"])
  1212                 coil.SetName(values["name"])
  1183                 coil.SetType(values["type"])
  1213                 coil.SetType(values["type"])
  1184                 coil.RefreshModel(False)
  1214                 coil.RefreshModel(False)
       
  1215                 self.RefreshBuffer()
       
  1216                 self.RefreshScrollBars()
  1185                 self.Refresh()
  1217                 self.Refresh()
  1186             dialog.Destroy()
  1218             dialog.Destroy()
  1187 
  1219 
  1188     def EditPowerRailContent(self, powerrail):
  1220     def EditPowerRailContent(self, powerrail):
  1189         if self.GetDrawingMode() == FREEDRAWING_MODE:
  1221         if self.GetDrawingMode() == FREEDRAWING_MODE: