238 for i in xrange(self.Extension - len(blocktype["inputs"])): |
238 for i in xrange(self.Extension - len(blocktype["inputs"])): |
239 start += 1 |
239 start += 1 |
240 inputs.append(("IN%d"%start, inputs[-1][1], inputs[-1][2])) |
240 inputs.append(("IN%d"%start, inputs[-1][1], inputs[-1][2])) |
241 else: |
241 else: |
242 self.Colour = wx.RED |
242 self.Colour = wx.RED |
243 if "inputs" in connectors: |
243 inputs = connectors.get("inputs", []) |
244 inputs = connectors["inputs"] |
244 outputs = connectors.get("outputs", []) |
245 else: |
|
246 inputs = [] |
|
247 if "outputs" in connectors: |
|
248 outputs = connectors["outputs"] |
|
249 else: |
|
250 outputs = [] |
|
251 if self.ExecutionControl: |
245 if self.ExecutionControl: |
252 inputs.insert(0, ("EN","BOOL","none")) |
246 inputs.insert(0, ("EN","BOOL","none")) |
253 outputs.insert(0, ("ENO","BOOL","none")) |
247 outputs.insert(0, ("ENO","BOOL","none")) |
254 self.Pen = wx.Pen(self.Colour) |
248 self.Pen = wx.Pen(self.Colour) |
255 self.Clean() |
249 self.Clean() |
419 output.Draw(dc) |
413 output.Draw(dc) |
420 if self.ExecutionOrder != 0: |
414 if self.ExecutionOrder != 0: |
421 # Draw block execution order |
415 # Draw block execution order |
422 dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0], |
416 dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0], |
423 self.Pos.y + self.Size[1] + 2) |
417 self.Pos.y + self.Size[1] + 2) |
424 if "name" in self.Errors: |
418 if self.Errors.has_key("name"): |
425 HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1]) |
419 HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1]) |
426 if "type" in self.Errors: |
420 if self.Errors.has_key("type"): |
427 HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1]) |
421 HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1]) |
428 dc.SetTextForeground(wx.BLACK) |
422 dc.SetTextForeground(wx.BLACK) |
429 |
423 |
430 |
424 |
431 #------------------------------------------------------------------------------- |
425 #------------------------------------------------------------------------------- |
854 if getattr(dc, "printing", False): |
848 if getattr(dc, "printing", False): |
855 name_size = dc.GetTextExtent(self.Name) |
849 name_size = dc.GetTextExtent(self.Name) |
856 else: |
850 else: |
857 name_size = self.NameSize |
851 name_size = self.NameSize |
858 |
852 |
859 # Draw a rectangle with the connection size with arrows in |
853 # Draw a rectangle with the connection size with arrows inside |
860 dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1) |
854 dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1) |
861 arrowsize = min(self.Size[1] / 2, (self.Size[0] - name_size[0] - 10) / 2) |
855 arrowsize = min(self.Size[1] / 2, (self.Size[0] - name_size[0] - 10) / 2) |
862 dc.DrawLine(self.Pos.x, self.Pos.y, self.Pos.x + arrowsize, |
856 dc.DrawLine(self.Pos.x, self.Pos.y, self.Pos.x + arrowsize, |
863 self.Pos.y + self.Size[1] / 2) |
857 self.Pos.y + self.Size[1] / 2) |
864 dc.DrawLine(self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2, |
858 dc.DrawLine(self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2, |