Viewer.py
changeset 154 203c4acdaf27
parent 145 4fb225afddf4
child 155 b695f7459ef6
--- a/Viewer.py	Wed Jan 23 18:25:57 2008 +0100
+++ b/Viewer.py	Wed Jan 23 18:26:49 2008 +0100
@@ -1643,18 +1643,22 @@
         dialog.SetValues(old_values)
         if dialog.ShowModal() == wx.ID_OK:
             new_values = dialog.GetValues()
+            rect = block.GetRedrawRect(1, 1)
             if "name" in new_values:
                 block.SetName(new_values["name"])
+            else:
+                block.SetName("")
             block.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
             block.SetType(new_values["type"], new_values["extension"])
             block.SetExecutionOrder(new_values["executionOrder"])
+            rect = rect.Union(block.GetRedrawRect())
             self.RefreshBlockModel(block)
             if old_values["executionOrder"] != new_values["executionOrder"]:
                 self.RefreshView()
             self.RefreshBuffer()
             self.RefreshScrollBars()
             self.ParentWindow.RefreshVariablePanel(self.TagName)
-            block.Refresh()
+            block.Refresh(rect)
         dialog.Destroy()
 
     def EditVariableContent(self, variable):
@@ -1675,10 +1679,12 @@
         dialog.SetValues(old_values)
         if dialog.ShowModal() == wx.ID_OK:
             new_values = dialog.GetValues()
+            rect = variable.GetRedrawRect(1, 1)
             variable.SetName(new_values["name"])
             variable.SetType(new_values["type"], new_values["value_type"])
             variable.SetSize(*self.GetScaledSize(new_values["width"], new_values["height"]))
             variable.SetExecutionOrder(new_values["executionOrder"])
+            rect = rect.Union(variable.GetRedrawRect())
             if old_values["type"] != new_values["type"]:
                 id = variable.GetId()
                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
@@ -1688,7 +1694,7 @@
                 self.RefreshView()
             self.RefreshBuffer()
             self.RefreshScrollBars()
-            variable.Refresh()
+            variable.Refresh(rect)
         dialog.Destroy()
 
     def EditConnectionContent(self, connection):
@@ -1699,9 +1705,11 @@
         if dialog.ShowModal() == wx.ID_OK:
             old_type = connection.GetType()
             values = dialog.GetValues()
+            rect = connection.GetRedrawRect(1, 1)
             connection.SetName(values["name"])
             connection.SetType(values["type"])
             connection.SetSize(*self.GetScaledSize(values["width"], values["height"]))
+            rect = rect.Union(connection.GetRedrawRect())
             if old_type != values["type"]:
                 id = connection.GetId()
                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
@@ -1709,7 +1717,7 @@
             self.RefreshConnectionModel(connection)
             self.RefreshBuffer()
             self.RefreshScrollBars()
-            connection.Refresh()
+            connection.Refresh(rect)
         dialog.Destroy()
 
     def EditContactContent(self, contact):
@@ -1726,13 +1734,15 @@
         dialog.SetElementSize(contact.GetSize())
         if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
+            rect = contact.GetRedrawRect(1, 1)
             contact.SetName(values["name"])
             contact.SetType(values["type"])
             contact.SetSize(*self.GetScaledSize(values["width"], values["height"]))
+            rect = rect.Union(contact.GetRedrawRect())
             self.RefreshContactModel(contact)
             self.RefreshBuffer()
             self.RefreshScrollBars()
-            contact.Refresh()
+            contact.Refresh(rect)
         dialog.Destroy()
 
     def EditCoilContent(self, coil):
@@ -1752,13 +1762,15 @@
         dialog.SetElementSize(coil.GetSize())
         if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
+            rect = coil.GetRedrawRect(1, 1)
             coil.SetName(values["name"])
             coil.SetType(values["type"])
             coil.SetSize(*self.GetScaledSize(values["width"], values["height"]))
+            rect = rect.Union(coil.GetRedrawRect())
             self.RefreshCoilModel(coil)
             self.RefreshBuffer()
             self.RefreshScrollBars()
-            coil.Refresh()
+            coil.Refresh(rect)
         dialog.Destroy()
 
     def EditPowerRailContent(self, powerrail):
@@ -1767,8 +1779,10 @@
         if dialog.ShowModal() == wx.ID_OK:
             old_type = powerrail.GetType()
             values = dialog.GetValues()
+            rect = powerrail.GetRedrawRect(1, 1)
             powerrail.SetType(values["type"], [True for i in xrange(values["number"])])
             powerrail.SetSize(*self.GetScaledSize(values["width"], values["height"]))
+            rect = rect.Union(powerrail.GetRedrawRect())
             if old_type != values["type"]:
                 id = powerrail.GetId()
                 self.Controler.RemoveEditedElementInstance(self.TagName, id)
@@ -1776,7 +1790,7 @@
             self.RefreshPowerRailModel(powerrail)
             self.RefreshBuffer()
             self.RefreshScrollBars()
-            powerrail.Refresh()
+            powerrail.Refresh(rect)
         dialog.Destroy()
 
     def EditStepContent(self, step):
@@ -1793,6 +1807,7 @@
         dialog.SetValues(values)
         if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
+            rect = step.GetRedrawRect(1, 1)
             step.SetName(values["name"])
             if values["input"]:
                 step.AddInput()
@@ -1807,10 +1822,11 @@
             else:
                 step.RemoveAction()
             step.UpdateSize(*self.GetScaledSize(values["width"], values["height"]))
-            step.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            step.Refresh()
+            rect = rect.Union(step.GetRedrawRect())
+            self.RefreshStepModel(step)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            step.Refresh(rect)
         
     def EditTransitionContent(self, transition):
         dialog = TransitionContentDialog(self.ParentWindow, self.GetDrawingMode() == FREEDRAWING_MODE)
@@ -1819,12 +1835,14 @@
         dialog.SetElementSize(transition.GetSize())
         if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
+            rect = transition.GetRedrawRect(1, 1)
             transition.SetType(values["type"],values["value"])
             transition.SetPriority(values["priority"])
-            transition.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            transition.Refresh()
+            rect = rect.Union(transition.GetRedrawRect())
+            self.RefreshTransitionModel(transition)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            transition.Refresh(rect)
         dialog.Destroy()
 
     def EditJumpContent(self, jump):
@@ -1836,11 +1854,13 @@
         dialog.SetSelection(choices.index(jump.GetTarget()))
         if dialog.ShowModal() == wx.ID_OK:
             value = dialog.GetStringSelection()
+            rect = jump.GetRedrawRect(1, 1)
             jump.SetTarget(value)
-            jump.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            jump.Refresh()
+            rect = rect.Union(jump.GetRedrawRect())
+            self.RefreshJumpModel(jump)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            jump.Refresh(rect)
         dialog.Destroy()
 
     def EditActionBlockContent(self, actionblock):
@@ -1851,12 +1871,14 @@
         dialog.SetValues(actionblock.GetActions())
         if dialog.ShowModal() == wx.ID_OK:
             actions = dialog.GetValues()
+            rect = actionblock.GetRedrawRect(1, 1)
             actionblock.SetActions(actions)
             actionblock.SetSize(*self.GetScaledSize(*actionblock.GetSize()))
-            actionblock.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            actionblock.Refresh()
+            rect = rect.Union(actionblock.GetRedrawRect())
+            self.RefreshActionBlockModel(actionblock)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            actionblock.Refresh(rect)
         dialog.Destroy()
 
     def EditCommentContent(self, comment):
@@ -1866,12 +1888,14 @@
             dialog = wx.TextEntryDialog(self.ParentWindow, "Edit comment", "Please enter comment text", comment.GetContent(), wx.OK|wx.CANCEL)
         if dialog.ShowModal() == wx.ID_OK:
             value = dialog.GetValue()
+            rect = comment.GetRedrawRect(1, 1)
             comment.SetContent(value)
             comment.SetSize(*self.GetScaledSize(*comment.GetSize()))
-            comment.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            comment.Refresh()
+            rect = rect.Union(comment.GetRedrawRect())
+            self.RefreshCommentModel(comment)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            comment.Refresh(rect)
         dialog.Destroy()
 
 #-------------------------------------------------------------------------------