--- a/graphics/LD_Objects.py Tue Aug 12 18:15:35 2008 +0200
+++ b/graphics/LD_Objects.py Tue Aug 12 18:16:09 2008 +0200
@@ -372,6 +372,7 @@
self.Name = name
self.Id = id
self.Size = wx.Size(LD_ELEMENT_SIZE[0], LD_ELEMENT_SIZE[1])
+ self.Errors = {}
# Create an input and output connector
self.Input = Connector(self, "", "BOOL", wx.Point(0, self.Size[1] / 2 + 1), WEST)
self.Output = Connector(self, "", "BOOL", wx.Point(self.Size[0], self.Size[1] / 2 + 1), EAST)
@@ -558,6 +559,10 @@
dc.DrawRectangle(self.Pos.x + self.Size[0] - 3, self.Pos.y - 2, 6, self.Size[1] + 5)
dc.SetLogicalFunction(wx.COPY)
+ def AddError(self, infos, start, end):
+ print infos
+ self.Errors[infos[0]] = (start[1], end[1])
+
# Draws contact
def Draw(self, dc):
Graphic_Element.Draw(self, dc)
@@ -586,15 +591,21 @@
dc.DrawRectangle(self.Pos.x, self.Pos.y, 2, self.Size[1] + 1)
dc.DrawRectangle(self.Pos.x + self.Size[0] - 1, self.Pos.y, 2, self.Size[1] + 1)
# Draw contact name
- dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - name_size[0]) / 2,
- self.Pos.y - (name_size[1] + 2))
+ name_pos = (self.Pos.x + (self.Size[0] - name_size[0]) / 2,
+ self.Pos.y - (name_size[1] + 2))
+ dc.DrawText(self.Name, name_pos[0], name_pos[1])
# Draw the modifier symbol in the middle of contact
if typetext != "":
- dc.DrawText(typetext, self.Pos.x + (self.Size[0] - type_size[0]) / 2 + 1,
- self.Pos.y + (self.Size[1] - type_size[1]) / 2)
+ type_pos = (self.Pos.x + (self.Size[0] - type_size[0]) / 2 + 1,
+ self.Pos.y + (self.Size[1] - type_size[1]) / 2)
+ dc.DrawText(typetext, type_pos[0], type_pos[1])
# Draw input and output connectors
self.Input.Draw(dc)
self.Output.Draw(dc)
+ if "reference" in self.Errors:
+ HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1])
+ if typetext != "" and ("negated" in self.Errors or "rising" in self.Errors or "falling" in self.Errors):
+ HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1])
#-------------------------------------------------------------------------------
@@ -614,6 +625,7 @@
self.Name = name
self.Id = id
self.Size = wx.Size(LD_ELEMENT_SIZE[0], LD_ELEMENT_SIZE[1])
+ self.Errors = {}
# Create an input and output connector
self.Input = Connector(self, "", "BOOL", wx.Point(0, self.Size[1] / 2 + 1), WEST)
self.Output = Connector(self, "", "BOOL", wx.Point(self.Size[0], self.Size[1] / 2 + 1), EAST)
@@ -800,6 +812,9 @@
dc.DrawEllipticArc(self.Pos.x, self.Pos.y - int(self.Size[1] * (sqrt(2) - 1.) / 2.) + 1, self.Size[0], int(self.Size[1] * sqrt(2)) - 1, -45, 45)
dc.SetLogicalFunction(wx.COPY)
+ def AddError(self, infos, start, end):
+ self.Errors[infos[0]] = (start[1], end[1])
+
# Draws coil
def Draw(self, dc):
Graphic_Element.Draw(self, dc)
@@ -839,13 +854,20 @@
type_size = self.TypeSize
# Draw coil name
- dc.DrawText(self.Name, self.Pos.x + (self.Size[0] - name_size[0]) / 2,
- self.Pos.y - (name_size[1] + 2))
+ name_pos = (self.Pos.x + (self.Size[0] - name_size[0]) / 2,
+ self.Pos.y - (name_size[1] + 2))
+ dc.DrawText(self.Name, name_pos[0], name_pos[1])
# Draw the modifier symbol in the middle of coil
if typetext != "":
- dc.DrawText(typetext, self.Pos.x + (self.Size[0] - type_size[0]) / 2 + 1,
- self.Pos.y + (self.Size[1] - type_size[1]) / 2)
+ type_pos = (self.Pos.x + (self.Size[0] - type_size[0]) / 2 + 1,
+ self.Pos.y + (self.Size[1] - type_size[1]) / 2)
+ dc.DrawText(typetext, type_pos[0], type_pos[1])
# Draw input and output connectors
self.Input.Draw(dc)
self.Output.Draw(dc)
-
+ if "reference" in self.Errors:
+ HighlightErrorZone(dc, name_pos[0], name_pos[1], name_size[0], name_size[1])
+ if typetext != "" and ("negated" in self.Errors or "rising" in self.Errors or "falling" in self.Errors):
+ HighlightErrorZone(dc, type_pos[0], type_pos[1], type_size[0], type_size[1])
+
+