--- 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)