Viewer.py
changeset 155 b695f7459ef6
parent 154 203c4acdaf27
child 156 2a2e974302fe
equal deleted inserted replaced
154:203c4acdaf27 155:b695f7459ef6
   109                 self.ParentWindow.Controler.AddEditedElementBlock(self.ParentWindow.GetTagName(), id, values[0], blockname)
   109                 self.ParentWindow.Controler.AddEditedElementBlock(self.ParentWindow.GetTagName(), id, values[0], blockname)
   110                 self.ParentWindow.RefreshBlockModel(block)
   110                 self.ParentWindow.RefreshBlockModel(block)
   111                 self.ParentWindow.RefreshBuffer()
   111                 self.ParentWindow.RefreshBuffer()
   112                 self.ParentWindow.RefreshScrollBars()
   112                 self.ParentWindow.RefreshScrollBars()
   113                 self.ParentWindow.ParentWindow.RefreshVariablePanel(self.ParentWindow.GetTagName())
   113                 self.ParentWindow.ParentWindow.RefreshVariablePanel(self.ParentWindow.GetTagName())
   114                 self.ParentWindow.Refresh()
   114                 self.ParentWindow.Refresh(False)
   115         elif values[1] != "location":
   115         elif values[1] != "location":
   116             if values[3] == self.ParentWindow.GetTagName():
   116             if values[3] == self.ParentWindow.GetTagName():
   117                 id = self.ParentWindow.GetNewId()
   117                 id = self.ParentWindow.GetNewId()
   118                 if values[1] == "Output":
   118                 if values[1] == "Output":
   119                     var_type = OUTPUT
   119                     var_type = OUTPUT
   133                 self.ParentWindow.AddBlock(variable)
   133                 self.ParentWindow.AddBlock(variable)
   134                 self.ParentWindow.Controler.AddEditedElementVariable(self.ParentWindow.GetTagName(), id, var_type)
   134                 self.ParentWindow.Controler.AddEditedElementVariable(self.ParentWindow.GetTagName(), id, var_type)
   135                 self.ParentWindow.RefreshVariableModel(variable)
   135                 self.ParentWindow.RefreshVariableModel(variable)
   136                 self.ParentWindow.RefreshBuffer()
   136                 self.ParentWindow.RefreshBuffer()
   137                 self.ParentWindow.RefreshScrollBars()
   137                 self.ParentWindow.RefreshScrollBars()
   138                 self.ParentWindow.Refresh()
   138                 self.ParentWindow.Refresh(False)
   139             else:
   139             else:
   140                 message = wx.MessageDialog(self.ParentWindow, "Variable don't belong to this POU!", "Error", wx.OK|wx.ICON_ERROR)
   140                 message = wx.MessageDialog(self.ParentWindow, "Variable don't belong to this POU!", "Error", wx.OK|wx.ICON_ERROR)
   141                 message.ShowModal()
   141                 message.ShowModal()
   142                 message.Destroy()
   142                 message.Destroy()
   143             
   143             
   456                 self.GridBrush = wx.TRANSPARENT_BRUSH
   456                 self.GridBrush = wx.TRANSPARENT_BRUSH
   457         else:
   457         else:
   458             self.Scaling = None
   458             self.Scaling = None
   459             self.GridBrush = wx.TRANSPARENT_BRUSH
   459             self.GridBrush = wx.TRANSPARENT_BRUSH
   460         if refresh:
   460         if refresh:
   461             self.Refresh()
   461             self.Refresh(False)
   462         
   462         
   463         
   463         
   464 #-------------------------------------------------------------------------------
   464 #-------------------------------------------------------------------------------
   465 #                          Refresh functions
   465 #                          Refresh functions
   466 #-------------------------------------------------------------------------------
   466 #-------------------------------------------------------------------------------
   488             if not wire.IsConnectedCompatible():
   488             if not wire.IsConnectedCompatible():
   489                 to_delete.append(wire)
   489                 to_delete.append(wire)
   490         for wire in to_delete:
   490         for wire in to_delete:
   491             wire.Delete()
   491             wire.Delete()
   492     
   492     
   493         self.Refresh()
   493         self.Refresh(False)
   494     
   494     
   495     def RefreshScrollBars(self):
   495     def RefreshScrollBars(self):
   496         xstart, ystart = self.GetViewStart()
   496         xstart, ystart = self.GetViewStart()
   497         window_size = self.GetClientSize()
   497         window_size = self.GetClientSize()
   498         maxx = maxy = 0
   498         maxx = maxy = 0
   917 
   917 
   918     def OnAlignLeftMenu(self, event):
   918     def OnAlignLeftMenu(self, event):
   919         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   919         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   920             self.SelectedElement.AlignElements(ALIGN_LEFT, None)
   920             self.SelectedElement.AlignElements(ALIGN_LEFT, None)
   921             self.RefreshBuffer()
   921             self.RefreshBuffer()
   922             self.Refresh()
   922             self.Refresh(False)
   923         event.Skip()
   923         event.Skip()
   924     
   924     
   925     def OnAlignCenterMenu(self, event):
   925     def OnAlignCenterMenu(self, event):
   926         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   926         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   927             self.SelectedElement.AlignElements(ALIGN_CENTER, None)
   927             self.SelectedElement.AlignElements(ALIGN_CENTER, None)
   928             self.RefreshBuffer()
   928             self.RefreshBuffer()
   929             self.Refresh()
   929             self.Refresh(False)
   930         event.Skip()
   930         event.Skip()
   931     
   931     
   932     def OnAlignRightMenu(self, event):
   932     def OnAlignRightMenu(self, event):
   933         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   933         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   934             self.SelectedElement.AlignElements(ALIGN_RIGHT, None)
   934             self.SelectedElement.AlignElements(ALIGN_RIGHT, None)
   935             self.RefreshBuffer()
   935             self.RefreshBuffer()
   936             self.Refresh()
   936             self.Refresh(False)
   937         event.Skip()
   937         event.Skip()
   938     
   938     
   939     def OnAlignTopMenu(self, event):
   939     def OnAlignTopMenu(self, event):
   940         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   940         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   941             self.SelectedElement.AlignElements(None, ALIGN_TOP)
   941             self.SelectedElement.AlignElements(None, ALIGN_TOP)
   942             self.RefreshBuffer()
   942             self.RefreshBuffer()
   943             self.Refresh()
   943             self.Refresh(False)
   944         event.Skip()
   944         event.Skip()
   945     
   945     
   946     def OnAlignMiddleMenu(self, event):
   946     def OnAlignMiddleMenu(self, event):
   947         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   947         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   948             self.SelectedElement.AlignElements(None, ALIGN_MIDDLE)
   948             self.SelectedElement.AlignElements(None, ALIGN_MIDDLE)
   949             self.RefreshBuffer()
   949             self.RefreshBuffer()
   950             self.Refresh()
   950             self.Refresh(False)
   951         event.Skip()
   951         event.Skip()
   952     
   952     
   953     def OnAlignBottomMenu(self, event):
   953     def OnAlignBottomMenu(self, event):
   954         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   954         if self.SelectedElement and isinstance(self.SelectedElement, Graphic_Group):
   955             self.SelectedElement.AlignElements(None, ALIGN_BOTTOM)
   955             self.SelectedElement.AlignElements(None, ALIGN_BOTTOM)
   956             self.RefreshBuffer()
   956             self.RefreshBuffer()
   957             self.Refresh()
   957             self.Refresh(False)
   958         event.Skip()
   958         event.Skip()
   959         
   959         
   960     def OnNoModifierMenu(self, event):
   960     def OnNoModifierMenu(self, event):
   961         if self.SelectedElement and self.IsBlock(self.SelectedElement):
   961         if self.SelectedElement and self.IsBlock(self.SelectedElement):
   962             self.SelectedElement.SetConnectorNegated(False)
   962             self.SelectedElement.SetConnectorNegated(False)
  1071                     else:
  1071                     else:
  1072                         rect = self.SelectedElement.GetRedrawRect()
  1072                         rect = self.SelectedElement.GetRedrawRect()
  1073                         self.SelectedElement.Delete()
  1073                         self.SelectedElement.Delete()
  1074                         self.SelectedElement = None
  1074                         self.SelectedElement = None
  1075                         element = None
  1075                         element = None
  1076                         self.RefreshRect(self.GetScrolledRect(rect))
  1076                         self.RefreshRect(self.GetScrolledRect(rect), False)
  1077                 elif connector:
  1077                 elif connector:
  1078                     self.DrawingWire = True
  1078                     self.DrawingWire = True
  1079                     pos = GetScaledEventPosition(event, self.GetLogicalDC(), self.Scaling)
  1079                     pos = GetScaledEventPosition(event, self.GetLogicalDC(), self.Scaling)
  1080                     if (connector.GetDirection() == EAST):
  1080                     if (connector.GetDirection() == EAST):
  1081                         wire = Wire(self, [wx.Point(pos.x, pos.y), EAST], [wx.Point(pos.x, pos.y), WEST])
  1081                         wire = Wire(self, [wx.Point(pos.x, pos.y), EAST], [wx.Point(pos.x, pos.y), WEST])
  1172                 elif connector is None or self.SelectedElement.GetDragging():
  1172                 elif connector is None or self.SelectedElement.GetDragging():
  1173                     self.DrawingWire = False
  1173                     self.DrawingWire = False
  1174                     rect = self.SelectedElement.GetRedrawRect()
  1174                     rect = self.SelectedElement.GetRedrawRect()
  1175                     self.SelectedElement.Delete()
  1175                     self.SelectedElement.Delete()
  1176                     self.SelectedElement = None
  1176                     self.SelectedElement = None
  1177                     self.RefreshRect(self.GetScrolledRect(rect))
  1177                     self.RefreshRect(self.GetScrolledRect(rect), False)
  1178             else:
  1178             else:
  1179                 self.SelectedElement.OnLeftUp(event, dc, self.Scaling)
  1179                 self.SelectedElement.OnLeftUp(event, dc, self.Scaling)
  1180                 wx.CallAfter(self.SetCursor, wx.NullCursor)
  1180                 wx.CallAfter(self.SetCursor, wx.NullCursor)
  1181                 self.SelectedElement.Refresh()
  1181                 self.SelectedElement.Refresh()
  1182         if self.Mode != MODE_SELECTION and not self.SavedMode:
  1182         if self.Mode != MODE_SELECTION and not self.SavedMode:
  1235                 if not connector or self.SelectedElement.EndConnected == None:
  1235                 if not connector or self.SelectedElement.EndConnected == None:
  1236                     self.SelectedElement.ResetPoints()
  1236                     self.SelectedElement.ResetPoints()
  1237                     movex, movey = self.SelectedElement.OnMotion(event, dc, self.Scaling)
  1237                     movex, movey = self.SelectedElement.OnMotion(event, dc, self.Scaling)
  1238                     self.SelectedElement.GeneratePoints()
  1238                     self.SelectedElement.GeneratePoints()
  1239                     if movex != 0 or movey != 0:
  1239                     if movex != 0 or movey != 0:
  1240                         self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(movex, movey)))
  1240                         self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(movex, movey)), False)
  1241             else:
  1241             else:
  1242                 movex, movey = self.SelectedElement.OnMotion(event, dc, self.Scaling)
  1242                 movex, movey = self.SelectedElement.OnMotion(event, dc, self.Scaling)
  1243                 if movex != 0 or movey != 0:
  1243                 if movex != 0 or movey != 0:
  1244                     self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(movex, movey)))
  1244                     self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(movex, movey)), False)
  1245         self.UpdateScrollPos(event)
  1245         self.UpdateScrollPos(event)
  1246         event.Skip()
  1246         event.Skip()
  1247 
  1247 
  1248     def OnLeaveViewer(self, event):
  1248     def OnLeaveViewer(self, event):
  1249         if self.SelectedElement and self.SelectedElement.GetDragging():
  1249         if self.SelectedElement and self.SelectedElement.GetDragging():
  1289             self.SelectedElement.Delete()
  1289             self.SelectedElement.Delete()
  1290             self.SelectedElement = None
  1290             self.SelectedElement = None
  1291             self.RefreshBuffer()
  1291             self.RefreshBuffer()
  1292             self.RefreshScrollBars()
  1292             self.RefreshScrollBars()
  1293             self.SetCursor(wx.NullCursor)
  1293             self.SetCursor(wx.NullCursor)
  1294             self.RefreshRect(self.GetScrolledRect(rect))
  1294             self.RefreshRect(self.GetScrolledRect(rect), False)
  1295         elif keycode == wx.WXK_RETURN and self.SelectedElement:
  1295         elif keycode == wx.WXK_RETURN and self.SelectedElement:
  1296             self.SelectedElement.OnLeftDClick(event, self.GetLogicalDC(), self.Scaling)
  1296             self.SelectedElement.OnLeftDClick(event, self.GetLogicalDC(), self.Scaling)
  1297         elif keycode == wx.WXK_LEFT:
  1297         elif keycode == wx.WXK_LEFT:
  1298             if event.ControlDown() and event.ShiftDown():
  1298             if event.ControlDown() and event.ShiftDown():
  1299                 self.Scroll(0, ypos)
  1299                 self.Scroll(0, ypos)
  1302             elif self.SelectedElement:
  1302             elif self.SelectedElement:
  1303                 self.SelectedElement.Move(-scaling[0], 0)
  1303                 self.SelectedElement.Move(-scaling[0], 0)
  1304                 self.SelectedElement.RefreshModel()
  1304                 self.SelectedElement.RefreshModel()
  1305                 self.RefreshBuffer()
  1305                 self.RefreshBuffer()
  1306                 self.RefreshScrollBars()
  1306                 self.RefreshScrollBars()
  1307                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)))
  1307                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(-scaling[0], 0)), False)
  1308         elif keycode == wx.WXK_RIGHT:
  1308         elif keycode == wx.WXK_RIGHT:
  1309             if event.ControlDown() and event.ShiftDown():
  1309             if event.ControlDown() and event.ShiftDown():
  1310                 self.Scroll(xmax, ypos)
  1310                 self.Scroll(xmax, ypos)
  1311             elif event.ControlDown():
  1311             elif event.ControlDown():
  1312                 event.Skip()
  1312                 event.Skip()
  1313             elif self.SelectedElement:
  1313             elif self.SelectedElement:
  1314                 self.SelectedElement.Move(scaling[0], 0)
  1314                 self.SelectedElement.Move(scaling[0], 0)
  1315                 self.SelectedElement.RefreshModel()
  1315                 self.SelectedElement.RefreshModel()
  1316                 self.RefreshBuffer()
  1316                 self.RefreshBuffer()
  1317                 self.RefreshScrollBars()
  1317                 self.RefreshScrollBars()
  1318                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)))
  1318                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(scaling[0], 0)), False)
  1319         elif keycode == wx.WXK_UP:
  1319         elif keycode == wx.WXK_UP:
  1320             if event.ControlDown() and event.ShiftDown():
  1320             if event.ControlDown() and event.ShiftDown():
  1321                 self.Scroll(xpos, 0)
  1321                 self.Scroll(xpos, 0)
  1322             elif event.ControlDown():
  1322             elif event.ControlDown():
  1323                 event.Skip()
  1323                 event.Skip()
  1324             elif self.SelectedElement:
  1324             elif self.SelectedElement:
  1325                 self.SelectedElement.Move(0, -scaling[1])
  1325                 self.SelectedElement.Move(0, -scaling[1])
  1326                 self.SelectedElement.RefreshModel()
  1326                 self.SelectedElement.RefreshModel()
  1327                 self.RefreshBuffer()
  1327                 self.RefreshBuffer()
  1328                 self.RefreshScrollBars()
  1328                 self.RefreshScrollBars()
  1329                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])))
  1329                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, -scaling[1])), False)
  1330         elif keycode == wx.WXK_DOWN:
  1330         elif keycode == wx.WXK_DOWN:
  1331             if event.ControlDown() and event.ShiftDown():
  1331             if event.ControlDown() and event.ShiftDown():
  1332                 self.Scroll(xpos, ymax)
  1332                 self.Scroll(xpos, ymax)
  1333             elif event.ControlDown():
  1333             elif event.ControlDown():
  1334                 event.Skip()
  1334                 event.Skip()
  1335             elif self.SelectedElement:
  1335             elif self.SelectedElement:
  1336                 self.SelectedElement.Move(0, scaling[1])
  1336                 self.SelectedElement.Move(0, scaling[1])
  1337                 self.SelectedElement.RefreshModel()
  1337                 self.SelectedElement.RefreshModel()
  1338                 self.RefreshBuffer()
  1338                 self.RefreshBuffer()
  1339                 self.RefreshScrollBars()
  1339                 self.RefreshScrollBars()
  1340                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])))
  1340                 self.RefreshRect(self.GetScrolledRect(self.SelectedElement.GetRedrawRect(0, scaling[1])), False)
  1341         elif keycode == wx.WXK_SPACE and self.SelectedElement is not None and self.SelectedElement.Dragging:
  1341         elif keycode == wx.WXK_SPACE and self.SelectedElement is not None and self.SelectedElement.Dragging:
  1342             self.CopyBlock(self.SelectedElement, wx.Point(*self.SelectedElement.GetPosition()))
  1342             self.CopyBlock(self.SelectedElement, wx.Point(*self.SelectedElement.GetPosition()))
  1343             self.RefreshBuffer()
  1343             self.RefreshBuffer()
  1344             self.RefreshScrollBars()
  1344             self.RefreshScrollBars()
  1345             self.ParentWindow.RefreshVariablePanel(self.TagName)
  1345             self.ParentWindow.RefreshVariablePanel(self.TagName)
  2166             rect = self.SelectedElement.GetRedrawRect(1, 1)
  2166             rect = self.SelectedElement.GetRedrawRect(1, 1)
  2167             self.SelectedElement.Delete()
  2167             self.SelectedElement.Delete()
  2168             self.SelectedElement = None
  2168             self.SelectedElement = None
  2169             self.RefreshBuffer()
  2169             self.RefreshBuffer()
  2170             self.RefreshScrollBars()
  2170             self.RefreshScrollBars()
  2171             self.RefreshRect(self.GetScrolledRect(rect))
  2171             self.RefreshRect(self.GetScrolledRect(rect), False)
  2172         
  2172         
  2173     def Copy(self):
  2173     def Copy(self):
  2174         if self.IsBlock(self.SelectedElement):
  2174         if self.IsBlock(self.SelectedElement):
  2175             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone())
  2175             self.ParentWindow.SetCopyBuffer(self.SelectedElement.Clone())
  2176             
  2176