PLCOpenEditor.py
changeset 274 047e36c63736
parent 268 5508af39d1f7
child 275 acf474a94136
--- a/PLCOpenEditor.py	Wed Sep 17 17:59:53 2008 +0200
+++ b/PLCOpenEditor.py	Thu Sep 18 08:05:55 2008 +0200
@@ -1611,6 +1611,9 @@
                 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id)
                 menu.AppendSeparator()
             new_id = wx.NewId()
+            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Create a new POU from")
+            self.Bind(wx.EVT_MENU, self.OnCreatePouFromMenu, id=new_id)
+            new_id = wx.NewId()
             AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Delete")
             self.Bind(wx.EVT_MENU, self.OnRemovePouMenu, id=new_id)
             self.PopupMenu(menu)
@@ -2187,6 +2190,20 @@
 #                        Remove Project Elements Functions
 #-------------------------------------------------------------------------------
 
+    def OnCreatePouFromMenu(self, event):
+        selected = self.TypesTree.GetSelection()
+        if self.TypesTree.GetPyData(selected) == ITEM_POU: 
+            dialog = PouNameDialog(self, "Please enter POU name", "Create a new POU from", "", wx.OK|wx.CANCEL)
+            dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug))
+            if dialog.ShowModal() == wx.ID_OK:
+                self.Controler.ProjectCreatePouFrom(dialog.GetValue(), self.TypesTree.GetItemText(selected))
+                self.RefreshTitle()
+                self.RefreshEditMenu()
+                self.RefreshTypesTree()
+                self.RefreshLibraryTree()
+                self.RefreshToolBar()
+        event.Skip()
+
     def OnRemoveDataTypeMenu(self, event):
         selected = self.TypesTree.GetSelection()
         if self.TypesTree.GetPyData(selected) == ITEM_DATATYPE: