--- 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: