diff -r e36ba4f15fc8 -r 4931959ea256 graphics/FBD_Objects.py --- a/graphics/FBD_Objects.py Wed Jun 04 17:48:26 2008 +0200 +++ b/graphics/FBD_Objects.py Mon Jun 23 18:48:49 2008 +0200 @@ -356,12 +356,22 @@ dc.SetPen(self.Pen) dc.SetBrush(wx.WHITE_BRUSH) dc.SetTextForeground(self.Colour) + + if getattr(dc, "printing", False): + name_size = dc.GetTextExtent(self.Name) + type_size = dc.GetTextExtent(self.Type) + executionorder_size = dc.GetTextExtent(str(self.ExecutionOrder)) + else: + name_size = self.NameSize + type_size = self.TypeSize + executionorder_size = self.ExecutionOrderSize + # Draw a rectangle with the block size dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1) # Draw block name and block type - dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - self.NameSize[0]) / 2, - self.Pos.y - (self.NameSize[1] + 2)) - dc.DrawText(self.Type, self.Pos.x + (self.Size[0] - self.TypeSize[0]) / 2, + dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - name_size[0]) / 2, + self.Pos.y - (name_size[1] + 2)) + dc.DrawText(self.Type, self.Pos.x + (self.Size[0] - type_size[0]) / 2, self.Pos.y + 5) # Draw inputs and outputs connectors for input in self.Inputs: @@ -370,7 +380,7 @@ output.Draw(dc) if self.ExecutionOrder != 0: # Draw block execution order - dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - self.ExecutionOrderSize[0], + dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0], self.Pos.y + self.Size[1] + 2) dc.SetTextForeground(wx.BLACK) @@ -589,11 +599,19 @@ Graphic_Element.Draw(self, dc) dc.SetPen(wx.BLACK_PEN) dc.SetBrush(wx.WHITE_BRUSH) + + if getattr(dc, "printing", False): + name_size = dc.GetTextExtent(self.Name) + executionorder_size = dc.GetTextExtent(str(self.ExecutionOrder)) + else: + name_size = self.NameSize + executionorder_size = self.ExecutionOrderSize + # Draw a rectangle with the variable size dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1) # Draw variable name - dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - self.NameSize[0]) / 2, - self.Pos.y + (self.Size[1] - self.NameSize[1]) / 2) + dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - name_size[0]) / 2, + self.Pos.y + (self.Size[1] - name_size[1]) / 2) # Draw connectors if self.Input: self.Input.Draw(dc) @@ -601,7 +619,7 @@ self.Output.Draw(dc) if self.ExecutionOrder != 0: # Draw variable execution order - dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - self.ExecutionOrderSize[0], + dc.DrawText(str(self.ExecutionOrder), self.Pos.x + self.Size[0] - executionorder_size[0], self.Pos.y + self.Size[1] + 2) @@ -761,9 +779,15 @@ Graphic_Element.Draw(self, dc) dc.SetPen(wx.BLACK_PEN) dc.SetBrush(wx.WHITE_BRUSH) + + if getattr(dc, "printing", False): + name_size = dc.GetTextExtent(self.Name) + else: + name_size = self.NameSize + # Draw a rectangle with the connection size with arrows in dc.DrawRectangle(self.Pos.x, self.Pos.y, self.Size[0] + 1, self.Size[1] + 1) - arrowsize = min(self.Size[1] / 2, (self.Size[0] - self.NameSize[0] - 10) / 2) + arrowsize = min(self.Size[1] / 2, (self.Size[0] - name_size[0] - 10) / 2) dc.DrawLine(self.Pos.x, self.Pos.y, self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2) dc.DrawLine(self.Pos.x + arrowsize, self.Pos.y + self.Size[1] / 2, @@ -773,8 +797,8 @@ dc.DrawLine(self.Pos.x + self.Size[0], self.Pos.y + self.Size[1] / 2, self.Pos.x + self.Size[0] - arrowsize, self.Pos.y + self.Size[1]) # Draw connection name - dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - self.NameSize[0]) / 2, - self.Pos.y + (self.Size[1] - self.NameSize[1]) / 2) + dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - name_size[0]) / 2, + self.Pos.y + (self.Size[1] - name_size[1]) / 2) # Draw connector if self.Connector: self.Connector.Draw(dc)