SFCViewer.py
changeset 71 0578bc212c20
parent 67 3a1b0afdaf84
child 80 c798a68c5560
--- a/SFCViewer.py	Mon Aug 13 18:06:50 2007 +0200
+++ b/SFCViewer.py	Tue Aug 14 14:53:06 2007 +0200
@@ -285,18 +285,19 @@
     def OnViewerMotion(self, event):
         if self.GetDrawingMode() == FREEDRAWING_MODE:
             Viewer.OnViewerMotion(self, event)
-        elif self.rubberBand.IsShown():
-            self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling)
-        elif self.Mode == MODE_SELECTION and self.SelectedElement:
-            if not self.IsWire(self.SelectedElement):
+        else:
+            if self.rubberBand.IsShown():
+                self.rubberBand.OnMotion(event, self.GetLogicalDC(), self.Scaling)
+            elif self.Mode == MODE_SELECTION and self.SelectedElement:
+                if not self.IsWire(self.SelectedElement) and not isinstance(self.SelectedElement, Graphic_Group):
+                    self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
+                self.Refresh()
+            elif self.Mode == MODE_WIRE and self.SelectedElement:
+                self.SelectedElement.ResetPoints()
                 self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
-            self.Refresh()
-        elif self.Mode == MODE_WIRE and self.SelectedElement:
-            self.SelectedElement.ResetPoints()
-            self.SelectedElement.OnMotion(event, self.GetLogicalDC(), self.Scaling)
-            self.SelectedElement.GeneratePoints()
-            self.Refresh()
-        Viewer.OnViewerMotion(self, event)
+                self.SelectedElement.GeneratePoints()
+                self.Refresh()
+            self.UpdateScrollPos(event)
         event.Skip()
 
 #-------------------------------------------------------------------------------
@@ -717,21 +718,24 @@
             dialog.Destroy()
 
     def EditStepContent(self, step):
-        dialog = StepNameDialog(self.Parent, "Edit step name", "Please enter step name", step.GetName(), wx.OK|wx.CANCEL)
-        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()])
-        if dialog.ShowModal() == wx.ID_OK:
-            value = dialog.GetValue()
-            step.SetName(value)
-            min_size = step.GetMinSize()
-            size = step.GetSize()
-            step.UpdateSize(max(min_size[0], size[0]), max(min_size[1], size[1]))
-            step.RefreshModel()
-            self.RefreshBuffer()
-            self.RefreshScrollBars()
-            self.Refresh()
-        dialog.Destroy()
+        if self.GetDrawingMode() == FREEDRAWING_MODE:
+            Viewer.EditStepContent(self, step)
+        else:
+            dialog = StepNameDialog(self.Parent, "Edit step name", "Please enter step name", step.GetName(), wx.OK|wx.CANCEL)
+            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()])
+            if dialog.ShowModal() == wx.ID_OK:
+                value = dialog.GetValue()
+                step.SetName(value)
+                min_size = step.GetMinSize()
+                size = step.GetSize()
+                step.UpdateSize(max(min_size[0], size[0]), max(min_size[1], size[1]))
+                step.RefreshModel()
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
+            dialog.Destroy()
 
 #-------------------------------------------------------------------------------
 #                          Delete element functions