PLCOpenEditor.py
changeset 275 acf474a94136
parent 274 047e36c63736
child 292 800e100038ae
--- a/PLCOpenEditor.py	Thu Sep 18 08:05:55 2008 +0200
+++ b/PLCOpenEditor.py	Mon Sep 22 08:01:10 2008 +0200
@@ -1611,8 +1611,19 @@
                 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")
+            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)
+            pou_type = self.Controler.GetPouType(name, self.Debug)
+            if pou_type in ["function", "functionBlock"]:
+                change_menu = wx.Menu(title='')
+                if pou_type == "function":
+                    new_id = wx.NewId()
+                    AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Function Block")
+                    self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "functionBlock"), id=new_id)
+                new_id = wx.NewId()
+                AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Program")
+                self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), id=new_id)
+                menu.AppendMenu(wx.NewId(), "Change POU Type To", change_menu)
             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)
@@ -2185,10 +2196,18 @@
             event.Skip()
         return OnAddResourceMenu
 
-
-#-------------------------------------------------------------------------------
-#                        Remove Project Elements Functions
-#-------------------------------------------------------------------------------
+    def GenerateChangePouTypeFunction(self, name, new_type):
+        def OnChangePouTypeMenu(event):
+            selected = self.TypesTree.GetSelection()
+            if self.TypesTree.GetPyData(selected) == ITEM_POU: 
+                self.Controler.ProjectChangePouType(name, new_type)
+                self.RefreshTitle()
+                self.RefreshEditMenu()
+                self.RefreshTypesTree()
+                self.RefreshLibraryTree()
+                self.RefreshToolBar()
+            event.Skip()
+        return OnChangePouTypeMenu
 
     def OnCreatePouFromMenu(self, event):
         selected = self.TypesTree.GetSelection()
@@ -2204,6 +2223,10 @@
                 self.RefreshToolBar()
         event.Skip()
 
+#-------------------------------------------------------------------------------
+#                        Remove Project Elements Functions
+#-------------------------------------------------------------------------------
+
     def OnRemoveDataTypeMenu(self, event):
         selected = self.TypesTree.GetSelection()
         if self.TypesTree.GetPyData(selected) == ITEM_DATATYPE: