LDViewer.py
changeset 56 7187e1c00975
parent 50 4610aafc884e
child 58 39cd981ff242
--- a/LDViewer.py	Wed Jul 25 10:06:29 2007 +0200
+++ b/LDViewer.py	Thu Jul 26 17:23:21 2007 +0200
@@ -411,7 +411,29 @@
                         self.DeleteWire(self.SelectedElement)
                     else:
                         self.SelectedElement.Delete()
-            self.Refresh()
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
+            elif keycode == WXK_LEFT:
+                if event.ControlDown() and event.ShiftDown():
+                    self.Scroll(0, ypos)
+                elif event.ControlDown():
+                    self.Scroll(max(0, xpos - 1), ypos)
+            elif keycode == WXK_RIGHT:
+                if event.ControlDown() and event.ShiftDown():
+                    self.Scroll(xmax, ypos)
+                elif event.ControlDown():
+                    self.Scroll(min(xpos + 1, xmax), ypos)
+            elif keycode == WXK_UP:
+                if event.ControlDown() and event.ShiftDown():
+                    self.Scroll(xpos, 0)
+                elif event.ControlDown():
+                    self.Scroll(xpos, max(0, ypos - 1))
+            elif keycode == WXK_DOWN:
+                if event.ControlDown() and event.ShiftDown():
+                    self.Scroll(xpos, ymax)
+                elif event.ControlDown():
+                    self.Scroll(xpos, min(ypos + 1, ymax))
         event.Skip()
 
 #-------------------------------------------------------------------------------
@@ -493,6 +515,8 @@
             rung.SelectElement(wire)
             self.RefreshPosition(coil)
             self.Rungs.append(rung)
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
             self.Refresh()
 
     def AddLadderContact(self):
@@ -584,6 +608,8 @@
                 rung.RefreshBoundingBox()
                 new_bbox = rung.GetBoundingBox()
                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
                 self.Refresh()
         else:
             message = wxMessageDialog(self, "You must select the wire where a contact should be added!", "Error", wxOK|wxICON_ERROR)
@@ -803,6 +829,8 @@
                 rung.RefreshBoundingBox()
                 new_bbox = rung.GetBoundingBox()
                 self.RefreshRungs(new_bbox.height - old_bbox.height, rungindex + 1)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
                 self.Refresh()
             else:
                 message = wxMessageDialog(self, "The group of block must be coherent!", "Error", wxOK|wxICON_ERROR)
@@ -1158,6 +1186,8 @@
                 contact.SetName(values["name"])
                 contact.SetType(values["type"])
                 contact.RefreshModel(False)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
                 self.Refresh()
             dialog.Destroy()
 
@@ -1182,6 +1212,8 @@
                 coil.SetName(values["name"])
                 coil.SetType(values["type"])
                 coil.RefreshModel(False)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
                 self.Refresh()
             dialog.Destroy()