835 |
835 |
836 def BuildStdIECTypesMenu(self, type_menu): |
836 def BuildStdIECTypesMenu(self, type_menu): |
837 # build a submenu containing standard IEC types |
837 # build a submenu containing standard IEC types |
838 base_menu = wx.Menu(title='') |
838 base_menu = wx.Menu(title='') |
839 for base_type in self.Controler.GetBaseTypes(): |
839 for base_type in self.Controler.GetBaseTypes(): |
840 new_id = wx.NewId() |
840 item = base_menu.Append(wx.ID_ANY, help='', kind=wx.ITEM_NORMAL, text=base_type) |
841 base_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) |
841 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), item) |
842 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), id=new_id) |
842 |
843 |
843 type_menu.AppendMenu(wx.ID_ANY, _("Base Types"), base_menu) |
844 type_menu.AppendMenu(wx.NewId(), _("Base Types"), base_menu) |
|
845 |
844 |
846 def BuildUserTypesMenu(self, type_menu): |
845 def BuildUserTypesMenu(self, type_menu): |
847 # build a submenu containing user-defined types |
846 # build a submenu containing user-defined types |
848 datatype_menu = wx.Menu(title='') |
847 datatype_menu = wx.Menu(title='') |
849 datatypes = self.Controler.GetDataTypes(basetypes=False, confnodetypes=False) |
848 datatypes = self.Controler.GetDataTypes(basetypes=False, confnodetypes=False) |
850 for datatype in datatypes: |
849 for datatype in datatypes: |
851 new_id = wx.NewId() |
850 item = datatype_menu.Append(wx.ID_ANY, help='', kind=wx.ITEM_NORMAL, text=datatype) |
852 datatype_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) |
851 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), item) |
853 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id) |
852 |
854 |
853 type_menu.AppendMenu(wx.ID_ANY, _("User Data Types"), datatype_menu) |
855 type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu) |
|
856 |
854 |
857 def BuildLibsTypesMenu(self, type_menu): |
855 def BuildLibsTypesMenu(self, type_menu): |
858 for category in self.Controler.GetConfNodeDataTypes(): |
856 for category in self.Controler.GetConfNodeDataTypes(): |
859 if len(category["list"]) > 0: |
857 if len(category["list"]) > 0: |
860 # build a submenu containing confnode types |
858 # build a submenu containing confnode types |
861 confnode_datatype_menu = wx.Menu(title='') |
859 confnode_datatype_menu = wx.Menu(title='') |
862 for datatype in category["list"]: |
860 for datatype in category["list"]: |
863 new_id = wx.NewId() |
861 item = confnode_datatype_menu.Append(wx.ID_ANY, help='', kind=wx.ITEM_NORMAL, text=datatype) |
864 confnode_datatype_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) |
862 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), item) |
865 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id) |
863 |
866 |
864 type_menu.AppendMenu(wx.ID_ANY, category["name"], confnode_datatype_menu) |
867 type_menu.AppendMenu(wx.NewId(), category["name"], confnode_datatype_menu) |
|
868 |
865 |
869 def BuildProjectTypesMenu(self, type_menu, classtype): |
866 def BuildProjectTypesMenu(self, type_menu, classtype): |
870 # build a submenu containing function block types |
867 # build a submenu containing function block types |
871 bodytype = self.Controler.GetEditedElementBodyType(self.TagName) |
868 bodytype = self.Controler.GetEditedElementBodyType(self.TagName) |
872 _pouname, poutype = self.Controler.GetEditedElementType(self.TagName) |
869 _pouname, poutype = self.Controler.GetEditedElementType(self.TagName) |
873 if classtype in ["Input", "Output", "InOut", "External", "Global"] or \ |
870 if classtype in ["Input", "Output", "InOut", "External", "Global"] or \ |
874 poutype != "function" and bodytype in ["ST", "IL"]: |
871 poutype != "function" and bodytype in ["ST", "IL"]: |
875 functionblock_menu = wx.Menu(title='') |
872 functionblock_menu = wx.Menu(title='') |
876 fbtypes = self.Controler.GetFunctionBlockTypes(self.TagName) |
873 fbtypes = self.Controler.GetFunctionBlockTypes(self.TagName) |
877 for functionblock_type in fbtypes: |
874 for functionblock_type in fbtypes: |
878 new_id = wx.NewId() |
875 item = functionblock_menu.Append(wx.ID_ANY, help='', kind=wx.ITEM_NORMAL, text=functionblock_type) |
879 functionblock_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type) |
876 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), item) |
880 self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id) |
877 |
881 |
878 type_menu.AppendMenu(wx.ID_ANY, _("Function Block Types"), functionblock_menu) |
882 type_menu.AppendMenu(wx.NewId(), _("Function Block Types"), functionblock_menu) |
|
883 |
879 |
884 def BuildArrayTypesMenu(self, type_menu): |
880 def BuildArrayTypesMenu(self, type_menu): |
885 new_id = wx.NewId() |
881 item = type_menu.Append(wx.ID_ANY, help='', kind=wx.ITEM_NORMAL, text=_("Array")) |
886 type_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Array")) |
882 self.Bind(wx.EVT_MENU, self.VariableArrayTypeFunction, item) |
887 self.Bind(wx.EVT_MENU, self.VariableArrayTypeFunction, id=new_id) |
|
888 |
883 |
889 def OnVariablesGridEditorShown(self, event): |
884 def OnVariablesGridEditorShown(self, event): |
890 row, col = event.GetRow(), event.GetCol() |
885 row, col = event.GetRow(), event.GetCol() |
891 |
886 |
892 label_value = self.Table.GetColLabelValue(col, False) |
887 label_value = self.Table.GetColLabelValue(col, False) |