--- a/Viewer.py Mon Sep 10 16:12:29 2007 +0200
+++ b/Viewer.py Mon Sep 10 18:16:07 2007 +0200
@@ -49,38 +49,38 @@
def __init__(self, parent):
wx.TextDropTarget.__init__(self)
- self.Parent = parent
+ self.ParentWindow = parent
def OnDropText(self, x, y, data):
values = eval(data)
if values[1] in ["function", "functionBlock", "program"]:
- id = self.Parent.GetNewId()
- block = FBD_Block(self.Parent, values[0], values[2], id)
+ id = self.ParentWindow.GetNewId()
+ block = FBD_Block(self.ParentWindow, values[0], values[2], id)
block.SetPosition(x, y)
width, height = block.GetMinSize()
block.SetSize(width, height)
- self.Parent.AddBlock(block)
- self.Parent.Controler.AddCurrentElementEditingBlock(id)
- self.Parent.RefreshBlockModel(block)
- self.Parent.RefreshScrollBars()
- self.Parent.Refresh()
+ self.ParentWindow.AddBlock(block)
+ self.ParentWindow.Controler.AddCurrentElementEditingBlock(id)
+ self.ParentWindow.RefreshBlockModel(block)
+ self.ParentWindow.RefreshScrollBars()
+ self.ParentWindow.Update()
elif values[1] != "location":
- id = self.Parent.GetNewId()
+ id = self.ParentWindow.GetNewId()
if values[1] == "Output":
var_type = OUTPUT
elif values[1] == "InOut":
var_type = INPUT
else:
var_type = INPUT
- variable = FBD_Variable(self.Parent, var_type, values[0], values[2], id)
+ variable = FBD_Variable(self.ParentWindow, var_type, values[0], values[2], id)
variable.SetPosition(x, y)
width, height = variable.GetMinSize()
variable.SetSize(width, height)
- self.Parent.AddBlock(variable)
- self.Parent.Controler.AddCurrentElementEditingVariable(id, var_type)
- self.Parent.RefreshVariableModel(variable)
- self.Parent.RefreshScrollBars()
- self.Parent.Refresh()
+ self.ParentWindow.AddBlock(variable)
+ self.ParentWindow.Controler.AddCurrentElementEditingVariable(id, var_type)
+ self.ParentWindow.RefreshVariableModel(variable)
+ self.ParentWindow.RefreshScrollBars()
+ self.ParentWindow.Update()
"""
@@ -161,7 +161,7 @@
self.Mode = MODE_SELECTION
self.SavedMode = False
- self.Parent = window
+ self.ParentWindow = window
self.Controler = controler
self.SetDropTarget(ViewerDropTarget(self))
@@ -174,8 +174,9 @@
self.Bind(wx.EVT_RIGHT_UP, self.OnViewerRightUp)
self.Bind(wx.EVT_MOTION, self.OnViewerMotion)
self.Bind(wx.EVT_CHAR, self.OnChar)
- self.Bind(wx.EVT_SCROLLWIN, self.OnMoveWindow)
- self.Bind(wx.EVT_SIZE, self.OnMoveWindow)
+ if wx.VERSION < (2, 7, 0):
+ self.Bind(wx.EVT_SCROLLWIN, self.OnMoveWindow)
+ self.Bind(wx.EVT_SIZE, self.OnMoveWindow)
# Returns a new id
def GetNewId(self):
@@ -186,8 +187,12 @@
def __del__(self):
self.ResetView()
- def GetLogicalDC(self):
- dc = wx.ClientDC(self)
+ def GetLogicalDC(self, buffered=False):
+ if buffered:
+ dc = wx.BufferedPaintDC(self)
+ else:
+ dc = wx.ClientDC(self)
+ dc.SetFont(wx.NORMAL_FONT)
self.DoPrepareDC(dc)
return dc
@@ -265,17 +270,17 @@
if self.Mode != MODE_SELECTION and self.SelectedElement:
self.SelectedElement.SetSelected(False)
self.SelectedElement = None
- self.Refresh()
+ self.Refresh(False)
# Return current drawing mode
def GetDrawingMode(self):
- return self.Parent.GetDrawingMode()
+ return self.ParentWindow.GetDrawingMode()
# Buffer the last model state
def RefreshBuffer(self):
self.Controler.BufferProject()
- self.Parent.RefreshTitle()
- self.Parent.RefreshEditMenu()
+ self.ParentWindow.RefreshTitle()
+ self.ParentWindow.RefreshEditMenu()
#-------------------------------------------------------------------------------
# Refresh functions
@@ -298,7 +303,7 @@
if instance:
self.loadInstance(instance, ids)
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
def RefreshScrollBars(self):
xstart, ystart = self.GetViewStart()
@@ -518,10 +523,25 @@
connector.SetPosition(wx.Point(*instance["connector"]["position"]))
self.CreateWires(connector, instance["connector"]["links"], ids)
else:
+ connectors = {"inputs" : [], "outputs" : []}
+ for input in instance["connectors"]["inputs"]:
+ if input["negated"]:
+ connectors["inputs"].append((input["name"], None, "negated"))
+ elif input["edge"]:
+ connectors["inputs"].append((input["name"], None, input["edge"]))
+ else:
+ connectors["inputs"].append((input["name"], None, "none"))
+ for output in instance["connectors"]["outputs"]:
+ if output["negated"]:
+ connectors["outputs"].append((output["name"], None, "negated"))
+ elif output["edge"]:
+ connectors["outputs"].append((output["name"], None, output["edge"]))
+ else:
+ connectors["outputs"].append((output["name"], None, "none"))
if instance["name"] != None:
- block = FBD_Block(self, instance["type"], instance["name"], instance["id"], len(instance["connectors"]["inputs"]))
- else:
- block = FBD_Block(self, instance["type"], "", instance["id"], len(instance["connectors"]["inputs"]))
+ block = FBD_Block(self, instance["type"], instance["name"], instance["id"], len(instance["connectors"]["inputs"]), connectors=connectors)
+ else:
+ block = FBD_Block(self, instance["type"], "", instance["id"], len(instance["connectors"]["inputs"]), connectors=connectors)
block.SetPosition(instance["x"], instance["y"])
block.SetSize(instance["width"], instance["height"])
self.AddBlock(block)
@@ -685,17 +705,6 @@
self.ContextualMenu.FindItemByPosition(9).Enable(False)
self.PopupMenu(self.ContextualMenu)
- def EditCommentContent(self, comment):
- dialog = wx.TextEntryDialog(self.Parent, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE)
- if dialog.ShowModal() == wx.ID_OK:
- value = dialog.GetValue()
- comment.SetContent(value)
- infos = {"content" : value}
- infos["width"], infos["height"] = comment.GetSize()
- self.Controler.SetCurrentElementEditingCommentInfos(comment.GetId(), infos)
- self.Refresh()
- dialog.Destroy()
-
#-------------------------------------------------------------------------------
# Menu items functions
#-------------------------------------------------------------------------------
@@ -783,11 +792,11 @@
if self.SelectedElement and self.SelectedElement != element:
self.SelectedElement.SetSelected(False)
self.SelectedElement = None
- self.Refresh()
+ self.Refresh(False)
if element:
self.SelectedElement = element
self.SelectedElement.OnLeftDown(event, dc, self.Scaling)
- self.Refresh()
+ self.Refresh(False)
else:
self.rubberBand.Reset()
self.rubberBand.OnLeftDown(event, dc, self.Scaling)
@@ -815,7 +824,7 @@
elif self.SelectedElement:
self.SelectedElement.SetSelected(False)
self.SelectedElement = None
- self.Refresh()
+ self.Refresh(False)
event.Skip()
def OnViewerLeftUp(self, event):
@@ -826,12 +835,12 @@
if len(elements) == 1:
self.SelectedElement = elements[0]
self.SelectedElement.SetSelected(True)
- self.Refresh()
+ self.Refresh(False)
elif len(elements) > 1:
self.SelectedElement = Graphic_Group(self)
self.SelectedElement.SetElements(elements)
self.SelectedElement.SetSelected(True)
- self.Refresh()
+ self.Refresh(False)
else:
bbox = self.rubberBand.GetCurrentExtent()
self.rubberBand.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
@@ -864,8 +873,7 @@
elif self.Mode == MODE_SELECTION and self.SelectedElement:
self.SelectedElement.OnLeftUp(event, self.GetLogicalDC(), self.Scaling)
wx.CallAfter(self.SetCursor, wx.NullCursor)
- self.ReleaseMouse()
- self.Refresh()
+ self.Refresh(False)
elif self.Mode == MODE_WIRE and self.SelectedElement:
if self.SelectedElement.EndConnected != None:
self.SelectedElement.ResetPoints()
@@ -877,9 +885,9 @@
else:
self.SelectedElement.Delete()
self.SelectedElement = None
- self.Refresh()
+ self.Refresh(False)
if not self.SavedMode:
- wx.CallAfter(self.Parent.ResetCurrentMode)
+ wx.CallAfter(self.ParentWindow.ResetCurrentMode)
event.Skip()
def OnViewerRightUp(self, event):
@@ -894,21 +902,21 @@
self.SelectedElement.OnRightUp(event, self.GetLogicalDC(), self.Scaling)
wx.CallAfter(self.SetCursor, wx.NullCursor)
self.ReleaseMouse()
- self.Refresh()
+ self.Refresh(False)
event.Skip()
def OnViewerLeftDClick(self, event):
if self.Mode == MODE_SELECTION and self.SelectedElement:
self.SelectedElement.OnLeftDClick(event, self.GetLogicalDC(), self.Scaling)
- self.Refresh()
+ self.Refresh(False)
event.Skip()
def OnViewerMotion(self, event):
if self.rubberBand.IsShown():
self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling)
elif self.Mode == MODE_SELECTION and self.SelectedElement:
- self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
- self.Refresh()
+ if self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling):
+ self.Refresh(False)
elif self.Mode == MODE_WIRE and self.SelectedElement:
dc = self.GetLogicalDC()
pos = GetScaledEventPosition(event, dc, self.Scaling)
@@ -917,7 +925,7 @@
self.SelectedElement.ResetPoints()
self.SelectedElement.OnMotion(event, dc, self.Scaling)
self.SelectedElement.GeneratePoints()
- self.Refresh()
+ self.Refresh(False)
event.Skip()
def UpdateScrollPos(self, event):
@@ -957,7 +965,7 @@
self.SelectedElement = None
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
elif keycode == wx.WXK_LEFT:
if event.ControlDown() and event.ShiftDown():
self.Scroll(0, ypos)
@@ -968,7 +976,7 @@
self.SelectedElement.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
elif keycode == wx.WXK_RIGHT:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xmax, ypos)
@@ -979,7 +987,7 @@
self.SelectedElement.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
elif keycode == wx.WXK_UP:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xpos, 0)
@@ -990,7 +998,7 @@
self.SelectedElement.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
elif keycode == wx.WXK_DOWN:
if event.ControlDown() and event.ShiftDown():
self.Scroll(xpos, ymax)
@@ -1001,14 +1009,14 @@
self.SelectedElement.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
#-------------------------------------------------------------------------------
# Model adding functions
#-------------------------------------------------------------------------------
def AddNewBlock(self, bbox):
- dialog = BlockPropertiesDialog(self.Parent)
+ dialog = BlockPropertiesDialog(self.ParentWindow)
dialog.SetBlockList(self.Controler.GetBlockTypes())
dialog.SetPouNames(self.Controler.GetProjectPouNames())
dialog.SetPouElementNames(self.Controler.GetCurrentElementEditingVariables())
@@ -1027,12 +1035,12 @@
self.RefreshBlockModel(block)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Parent.RefreshEditor()
- self.Refresh()
+ self.ParentWindow.RefreshEditor()
+ self.Refresh(False)
dialog.Destroy()
def AddNewVariable(self, bbox):
- dialog = VariablePropertiesDialog(self.Parent)
+ dialog = VariablePropertiesDialog(self.ParentWindow)
dialog.SetMinVariableSize((bbox.width, bbox.height))
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
@@ -1055,11 +1063,11 @@
self.RefreshVariableModel(variable)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewConnection(self, bbox):
- dialog = ConnectionPropertiesDialog(self.Parent)
+ dialog = ConnectionPropertiesDialog(self.ParentWindow)
dialog.SetMinConnectionSize((bbox.width, bbox.height))
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1072,11 +1080,11 @@
self.RefreshConnectionModel(connection)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewComment(self, bbox):
- dialog = wx.TextEntryDialog(self.Parent, "Add a new comment", "Please enter comment text", "", wx.OK|wx.CANCEL|wx.TE_MULTILINE)
+ dialog = wx.TextEntryDialog(self.ParentWindow, "Add a new comment", "Please enter comment text", "", wx.OK|wx.CANCEL|wx.TE_MULTILINE)
if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetValue()
id = self.GetNewId()
@@ -1089,11 +1097,11 @@
self.RefreshCommentModel(comment)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewContact(self, bbox):
- dialog = LDElementDialog(self.Parent, "contact")
+ dialog = LDElementDialog(self.ParentWindow, "contact")
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
@@ -1114,11 +1122,11 @@
self.RefreshContactModel(contact)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewCoil(self, bbox):
- dialog = LDElementDialog(self.Parent, "coil")
+ dialog = LDElementDialog(self.ParentWindow, "coil")
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
@@ -1142,11 +1150,11 @@
self.RefreshCoilModel(coil)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewPowerRail(self, bbox):
- dialog = LDPowerRailDialog(self.Parent)
+ dialog = LDPowerRailDialog(self.ParentWindow)
dialog.SetMinSize((bbox.width, bbox.height))
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1159,11 +1167,11 @@
self.RefreshPowerRailModel(powerrail)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewStep(self, bbox, initial = False):
- dialog = StepContentDialog(self.Parent, initial)
+ dialog = StepContentDialog(self.ParentWindow, initial)
dialog.SetPouNames(self.Controler.GetProjectPouNames())
dialog.SetVariables(self.Controler.GetCurrentElementEditingInterfaceVars())
dialog.SetStepNames([block.GetName() for block in self.Blocks if isinstance(block, SFC_Step)])
@@ -1192,11 +1200,11 @@
self.RefreshStepModel(step)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewTransition(self, bbox):
- dialog = TransitionContentDialog(self.Parent, self.GetDrawingMode() == FREEDRAWING_MODE)
+ dialog = TransitionContentDialog(self.ParentWindow, self.GetDrawingMode() == FREEDRAWING_MODE)
dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1210,11 +1218,11 @@
self.RefreshTransitionModel(transition)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def AddNewDivergence(self, bbox):
- dialog = DivergenceCreateDialog(self.Parent)
+ dialog = DivergenceCreateDialog(self.ParentWindow)
dialog.SetMinSize((bbox.width, bbox.height))
if dialog.ShowModal() == wx.ID_OK:
id = self.GetNewId()
@@ -1228,7 +1236,7 @@
self.RefreshDivergenceModel(divergence)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
@@ -1237,7 +1245,7 @@
#-------------------------------------------------------------------------------
def EditBlockContent(self, block):
- dialog = BlockPropertiesDialog(self.Parent)
+ dialog = BlockPropertiesDialog(self.ParentWindow)
dialog.SetBlockList(self.Controler.GetBlockTypes())
dialog.SetPouNames(self.Controler.GetProjectPouNames())
dialog.SetPouElementNames(self.Controler.GetCurrentElementEditingVariables())
@@ -1254,11 +1262,11 @@
self.RefreshBlockModel(block)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditVariableContent(self, variable):
- dialog = VariablePropertiesDialog(self.Parent)
+ dialog = VariablePropertiesDialog(self.ParentWindow)
dialog.SetMinVariableSize(variable.GetSize())
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
@@ -1285,11 +1293,11 @@
self.RefreshVariableModel(variable)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditConnectionContent(self, connection):
- dialog = ConnectionPropertiesDialog(self.Parent)
+ dialog = ConnectionPropertiesDialog(self.ParentWindow)
dialog.SetMinConnectionSize(connection.GetSize())
values = {"name" : connection.GetName(), "type" : connection.GetType()}
dialog.SetValues(values)
@@ -1306,11 +1314,11 @@
self.RefreshConnectionModel(connection)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditContactContent(self, contact):
- dialog = LDElementDialog(self.Parent, "contact")
+ dialog = LDElementDialog(self.ParentWindow, "contact")
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
@@ -1329,11 +1337,11 @@
self.RefreshContactModel(contact)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditCoilContent(self, coil):
- dialog = LDElementDialog(self.Parent, "coil")
+ dialog = LDElementDialog(self.ParentWindow, "coil")
varlist = []
vars = self.Controler.GetCurrentElementEditingInterfaceVars()
if vars:
@@ -1355,11 +1363,11 @@
self.RefreshCoilModel(coil)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditPowerRailContent(self, powerrail):
- dialog = LDPowerRailDialog(self.Parent, powerrail.GetType(), len(powerrail.GetConnectors()))
+ dialog = LDPowerRailDialog(self.ParentWindow, powerrail.GetType(), len(powerrail.GetConnectors()))
dialog.SetMinSize(powerrail.GetSize())
if dialog.ShowModal() == wx.ID_OK:
old_type = powerrail.GetType()
@@ -1373,11 +1381,11 @@
self.RefreshPowerRailModel(powerrail)
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditStepContent(self, step):
- dialog = StepContentDialog(self.Parent, step.GetInitial())
+ dialog = StepContentDialog(self.ParentWindow, step.GetInitial())
dialog.SetPouNames(self.Controler.GetProjectPouNames())
dialog.SetVariables(self.Controler.GetCurrentElementEditingInterfaceVars())
dialog.SetStepNames([block.GetName() for block in self.Blocks if isinstance(block, SFC_Step) and block.GetName() != step.GetName()])
@@ -1407,10 +1415,10 @@
step.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
def EditTransitionContent(self, transition):
- dialog = TransitionContentDialog(self.Parent, self.GetDrawingMode() == FREEDRAWING_MODE)
+ dialog = TransitionContentDialog(self.ParentWindow, self.GetDrawingMode() == FREEDRAWING_MODE)
dialog.SetTransitions(self.Controler.GetCurrentElementEditingTransitions())
dialog.SetValues({"type":transition.GetType(),"value":transition.GetCondition(), "priority":transition.GetPriority()})
dialog.SetElementSize(transition.GetSize())
@@ -1421,7 +1429,7 @@
transition.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditJumpContent(self, jump):
@@ -1429,7 +1437,7 @@
for block in self.Blocks:
if isinstance(block, SFC_Step):
choices.append(block.GetName())
- dialog = wx.SingleChoiceDialog(self.Parent, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL)
+ dialog = wx.SingleChoiceDialog(self.ParentWindow, "Edit jump target", "Please choose a target", choices, wx.OK|wx.CANCEL)
dialog.SetSelection(choices.index(jump.GetTarget()))
if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetStringSelection()
@@ -1437,11 +1445,11 @@
jump.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
dialog.Destroy()
def EditActionBlockContent(self, actionblock):
- dialog = ActionBlockDialog(self.Parent)
+ dialog = ActionBlockDialog(self.ParentWindow)
dialog.SetQualifierList(self.Controler.GetQualifierTypes())
dialog.SetActionList(self.Controler.GetCurrentElementEditingActions())
dialog.SetVariableList(self.Controler.GetCurrentElementEditingInterfaceVars())
@@ -1452,7 +1460,18 @@
actionblock.RefreshModel()
self.RefreshBuffer()
self.RefreshScrollBars()
- self.Refresh()
+ self.Refresh(False)
+ dialog.Destroy()
+
+ def EditCommentContent(self, comment):
+ dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL|wx.TE_MULTILINE)
+ if dialog.ShowModal() == wx.ID_OK:
+ value = dialog.GetValue()
+ comment.SetContent(value)
+ comment.RefreshModel()
+ self.RefreshBuffer()
+ self.RefreshScrollBars()
+ self.Refresh(False)
dialog.Destroy()
#-------------------------------------------------------------------------------
@@ -1587,7 +1606,7 @@
self.Controler.RemoveCurrentElementEditingInstance(block.GetId())
for element in elements:
element.RefreshModel()
- wx.CallAfter(self.Parent.RefreshEditor)
+ wx.CallAfter(self.ParentWindow.RefreshEditor)
def DeleteVariable(self, variable):
connectors = variable.GetConnectors()
@@ -1732,9 +1751,10 @@
event.Skip()
def OnPaint(self, event):
- dc = self.GetLogicalDC()
+ dc = self.GetLogicalDC(True)
dc.Clear()
dc.SetPen(wx.Pen(wx.Colour(230, 230, 230)))
+ dc.BeginDrawing()
if self.Scaling and self.DrawGrid:
width, height = dc.GetSize()
for i in xrange(1, width / self.Scaling[0] + 1):
@@ -1753,7 +1773,8 @@
if self.SelectedElement:
self.SelectedElement.Draw(dc)
if self.rubberBand.IsShown():
- self.rubberBand.Draw()
+ self.rubberBand.Draw(dc)
+ dc.EndDrawing()
event.Skip()