controls/VariablePanel.py
branchwx.NewID_abuse_fix
changeset 2554 45d4f9a84c60
parent 2450 5024c19ca8f0
child 2573 071d10c7ab8f
equal deleted inserted replaced
2553:4b967831374f 2554:45d4f9a84c60
   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)