graphics/FBD_Objects.py
changeset 213 4931959ea256
parent 165 e464a4e4e06d
child 231 fc2d6cbb8b39
--- 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)