# HG changeset patch # User Edouard Tisserant # Date 1621859634 -7200 # Node ID 38afed869ff639ee9446b3cd74845ad3db802f2c # Parent a81b72ef156cd4f23a0317c079c3f9948bbc46ba Finished fixing Wx IDs abuse. There was still some wasted IDs because of wx.NewId calls in many places where it wasn't needed, and those IDs were not re-used. As a consequence Beremiz was making exception crashing after a few hours of intensive use. diff -r a81b72ef156c -r 38afed869ff6 BeremizIDE.py --- a/BeremizIDE.py Wed May 12 11:36:56 2021 +0200 +++ b/BeremizIDE.py Mon May 24 14:33:54 2021 +0200 @@ -81,7 +81,6 @@ LIBRARYTREE,\ PAGETITLES,\ IDEFrame, \ - AppendMenu,\ EncodeFileSystemPath, \ DecodeFileSystemPath @@ -92,6 +91,8 @@ def Bpath(*args): return os.path.join(beremiz_dir, *args) +def AppendMenu(parent, help, id, kind, text): + return parent.Append(help=help, id=id, kind=kind, text=text) MAX_RECENT_PROJECTS = 9 diff -r a81b72ef156c -r 38afed869ff6 IDEFrame.py --- a/IDEFrame.py Wed May 12 11:36:56 2021 +0200 +++ b/IDEFrame.py Mon May 24 14:33:54 2021 +0200 @@ -114,8 +114,8 @@ return text(path, sys.getfilesystemencoding()) -def AppendMenu(parent, help, id, kind, text): - parent.Append(help=help, id=id, kind=kind, text=text) +def AppendMenu(parent, help, kind, text, id=wx.ID_ANY): + return parent.Append(help=help, kind=kind, text=text, id=id) [ @@ -444,10 +444,9 @@ zoommenu = wx.Menu(title='') parent.AppendMenu(wx.ID_ZOOM_FIT, _("Zoom"), zoommenu) for idx, value in enumerate(ZOOM_FACTORS): - new_id = wx.NewId() - AppendMenu(zoommenu, help='', id=new_id, + new_item = AppendMenu(zoommenu, help='', kind=wx.ITEM_RADIO, text=str(int(round(value * 100))) + "%") - self.Bind(wx.EVT_MENU, self.GenerateZoomFunction(idx), id=new_id) + self.Bind(wx.EVT_MENU, self.GenerateZoomFunction(idx), new_item) parent.AppendSeparator() AppendMenu(parent, help='', id=ID_PLCOPENEDITORDISPLAYMENUSWITCHPERSPECTIVE, @@ -1906,56 +1905,49 @@ if name == "Data Types": menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add DataType")) - self.Bind(wx.EVT_MENU, self.OnAddDataTypeMenu, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add DataType")) + self.Bind(wx.EVT_MENU, self.OnAddDataTypeMenu, new_item) elif name in ["Functions", "Function Blocks", "Programs", "Project"]: menu = wx.Menu(title='') if name != "Project": - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add POU")) - self.Bind(wx.EVT_MENU, self.GenerateAddPouFunction({"Functions": "function", "Function Blocks": "functionBlock", "Programs": "program"}[name]), id=new_id) - - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Paste POU")) - self.Bind(wx.EVT_MENU, self.OnPastePou, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add POU")) + self.Bind(wx.EVT_MENU, self.GenerateAddPouFunction({"Functions": "function", "Function Blocks": "functionBlock", "Programs": "program"}[name]), new_item) + + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Paste POU")) + self.Bind(wx.EVT_MENU, self.OnPastePou, new_item) if self.GetCopyBuffer() is None: - menu.Enable(new_id, False) + menu.Enable(new_item, False) elif name == "Configurations": menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Configuration")) - self.Bind(wx.EVT_MENU, self.OnAddConfigurationMenu, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Configuration")) + self.Bind(wx.EVT_MENU, self.OnAddConfigurationMenu, new_item) elif name == "Transitions": menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Transition")) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Transition")) parent = self.ProjectTree.GetItemParent(item) parent_type = self.ProjectTree.GetPyData(parent)["type"] while parent_type != ITEM_POU: parent = self.ProjectTree.GetItemParent(parent) parent_type = self.ProjectTree.GetPyData(parent)["type"] - self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.ProjectTree.GetItemText(parent)), id=new_id) + self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.ProjectTree.GetItemText(parent)), new_item) elif name == "Actions": menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action")) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Action")) parent = self.ProjectTree.GetItemParent(item) parent_type = self.ProjectTree.GetPyData(parent)["type"] while parent_type != ITEM_POU: parent = self.ProjectTree.GetItemParent(parent) parent_type = self.ProjectTree.GetPyData(parent)["type"] - self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.ProjectTree.GetItemText(parent)), id=new_id) + self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.ProjectTree.GetItemText(parent)), new_item) elif name == "Resources": menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource")) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Resource")) parent = self.ProjectTree.GetItemParent(item) parent_type = self.ProjectTree.GetPyData(parent)["type"] while parent_type not in [ITEM_CONFIGURATION, ITEM_PROJECT]: @@ -1969,52 +1961,44 @@ else: parent_name = self.ProjectTree.GetItemText(parent) if parent_name is not None: - self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(parent_name), id=new_id) + self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(parent_name), new_item) else: if item_infos["type"] == ITEM_POU: menu = wx.Menu(title='') if self.Controler.GetPouBodyType(name) == "SFC": - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Transition")) - self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), id=new_id) - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action")) - self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Transition")) + self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), new_item) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Action")) + self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), new_item) menu.AppendSeparator() - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Copy POU")) - self.Bind(wx.EVT_MENU, self.OnCopyPou, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Copy POU")) + self.Bind(wx.EVT_MENU, self.OnCopyPou, new_item) pou_type = self.Controler.GetPouType(name) 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) + new_item = AppendMenu(change_menu, help='', kind=wx.ITEM_NORMAL, text=_("Function Block")) + self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "functionBlock"), new_item) + new_item = AppendMenu(change_menu, help='', kind=wx.ITEM_NORMAL, text=_("Program")) + self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), new_item) menu.AppendMenu(wx.NewId(), _("Duplicate as..."), change_menu) - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Rename")) - self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Rename")) + self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, new_item) elif item_infos["type"] == ITEM_CONFIGURATION: menu = wx.Menu(title='') - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource")) - self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(name), id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Resource")) + self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(name), new_item) elif item_infos["type"] in [ITEM_DATATYPE, ITEM_TRANSITION, ITEM_ACTION, ITEM_RESOURCE]: menu = wx.Menu(title='') if menu is not None: - new_id = wx.NewId() - AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete")) - self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=new_id) + new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Delete")) + self.Bind(wx.EVT_MENU, self.OnDeleteMenu, new_item) if menu is not None: self.FindFocus().PopupMenu(menu) diff -r a81b72ef156c -r 38afed869ff6 PLCOpenEditor.py --- a/PLCOpenEditor.py Wed May 12 11:36:56 2021 +0200 +++ b/PLCOpenEditor.py Mon May 24 14:33:54 2021 +0200 @@ -140,9 +140,8 @@ _(u'Community support'), wx.OK | wx.ICON_INFORMATION) - id = wx.NewId() - parent.Append(help='', id=id, kind=wx.ITEM_NORMAL, text=_(u'Community support')) - self.Bind(wx.EVT_MENU, handler, id=id) + menu_entry = parent.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, text=_(u'Community support')) + self.Bind(wx.EVT_MENU, handler, menu_entry) AppendMenu(parent, help='', id=wx.ID_ABOUT, kind=wx.ITEM_NORMAL, text=_(u'About')) diff -r a81b72ef156c -r 38afed869ff6 controls/DiscoveryPanel.py --- a/controls/DiscoveryPanel.py Wed May 12 11:36:56 2021 +0200 +++ b/controls/DiscoveryPanel.py Mon May 24 14:33:54 2021 +0200 @@ -35,9 +35,9 @@ class AutoWidthListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin): - def __init__(self, parent, id, name, pos=wx.DefaultPosition, + def __init__(self, parent, name, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0): - wx.ListCtrl.__init__(self, parent, id, pos, size, style, name=name) + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, pos, size, style, name=name) listmix.ListCtrlAutoWidthMixin.__init__(self) @@ -73,9 +73,7 @@ def _init_list_ctrl(self): # Set up list control - listID = wx.NewId() self.ServicesList = AutoWidthListCtrl( - id=listID, name='ServicesList', parent=self, pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.LC_REPORT | wx.LC_EDIT_LABELS | wx.LC_SORT_ASCENDING | wx.LC_SINGLE_SEL) self.ServicesList.InsertColumn(0, _('NAME')) @@ -87,8 +85,8 @@ self.ServicesList.SetColumnWidth(2, 150) self.ServicesList.SetColumnWidth(3, 150) self.ServicesList.SetInitialSize(wx.Size(-1, 300)) - self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, id=listID) - self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, id=listID) + self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.ServicesList) + self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, self.ServicesList) def _init_ctrls(self, prnt): self.staticText1 = wx.StaticText( diff -r a81b72ef156c -r 38afed869ff6 controls/LogViewer.py --- a/controls/LogViewer.py Wed May 12 11:36:56 2021 +0200 +++ b/controls/LogViewer.py Mon May 24 14:33:54 2021 +0200 @@ -711,9 +711,8 @@ if message is not None: menu = wx.Menu(title='') - new_id = wx.NewId() - menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Copy")) - self.Bind(wx.EVT_MENU, self.GetCopyMessageToClipboardFunction(message), id=new_id) + menu_entry = menu.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, text=_("Copy")) + self.Bind(wx.EVT_MENU, self.GetCopyMessageToClipboardFunction(message), menu_entry) self.MessagePanel.PopupMenu(menu) menu.Destroy() diff -r a81b72ef156c -r 38afed869ff6 controls/SearchResultPanel.py --- a/controls/SearchResultPanel.py Wed May 12 11:36:56 2021 +0200 +++ b/controls/SearchResultPanel.py Mon May 24 14:33:54 2021 +0200 @@ -49,13 +49,6 @@ # Search Result Panel # ------------------------------------------------------------------------------- - -[ - ID_SEARCHRESULTPANEL, ID_SEARCHRESULTPANELHEADERLABEL, - ID_SEARCHRESULTPANELSEARCHRESULTSTREE, ID_SEARCHRESULTPANELRESETBUTTON, -] = [wx.NewId() for _init_ctrls in range(4)] - - class SearchResultPanel(wx.Panel): def _init_coll_MainSizer_Items(self, parent): @@ -84,18 +77,15 @@ self.SetSizer(self.MainSizer) def _init_ctrls(self, prnt): - self.HeaderLabel = wx.StaticText(id=ID_SEARCHRESULTPANELHEADERLABEL, - name='HeaderLabel', parent=self, + self.HeaderLabel = wx.StaticText(name='HeaderLabel', parent=self, pos=wx.Point(0, 0), size=wx.Size(0, 17), style=0) search_results_tree_style = CT.TR_HAS_BUTTONS | CT.TR_NO_LINES | CT.TR_HAS_VARIABLE_ROW_HEIGHT - self.SearchResultsTree = CT.CustomTreeCtrl(id=ID_SEARCHRESULTPANELSEARCHRESULTSTREE, - name="SearchResultsTree", parent=self, + self.SearchResultsTree = CT.CustomTreeCtrl(name="SearchResultsTree", parent=self, pos=wx.Point(0, 0), style=search_results_tree_style) - if wx.VERSION >= (2, 8, 11): - self.SearchResultsTree.SetAGWWindowStyleFlag(search_results_tree_style) + self.SearchResultsTree.SetAGWWindowStyleFlag(search_results_tree_style) self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnSearchResultsTreeItemActivated, - id=ID_SEARCHRESULTPANELSEARCHRESULTSTREE) + self.SearchResultsTree) self.ResetButton = wx.lib.buttons.GenBitmapButton( self, bitmap=GetBitmap("reset"), @@ -106,7 +96,7 @@ self._init_sizers() def __init__(self, parent, window): - wx.Panel.__init__(self, id=ID_SEARCHRESULTPANEL, + wx.Panel.__init__(self, name='SearchResultPanel', parent=parent, pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) diff -r a81b72ef156c -r 38afed869ff6 docutil/dochtml.py --- a/docutil/dochtml.py Wed May 12 11:36:56 2021 +0200 +++ b/docutil/dochtml.py Mon May 24 14:33:54 2021 +0200 @@ -41,7 +41,6 @@ window.Show() -[ID_HTMLFRAME, ID_HTMLFRAMEHTMLCONTENT] = [wx.NewId() for _init_ctrls in range(2)] EVT_HTML_URL_CLICK = wx.NewId() @@ -72,13 +71,12 @@ self.SetIcon(prnt.icon) self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) - self.HtmlContent = UrlClickHtmlWindow(id=ID_HTMLFRAMEHTMLCONTENT, - name='HtmlContent', parent=self, pos=wx.Point(0, 0), + self.HtmlContent = UrlClickHtmlWindow(name='HtmlContent', parent=self, pos=wx.Point(0, 0), size=wx.Size(-1, -1), style=wx.html.HW_SCROLLBAR_AUTO | wx.html.HW_NO_SELECTION) self.HtmlContent.Bind(HtmlWindowUrlClick, self.OnLinkClick) def __init__(self, parent, opened): - wx.Frame.__init__(self, id=ID_HTMLFRAME, name='HtmlFrame', + wx.Frame.__init__(self, name='HtmlFrame', parent=parent, pos=wx.Point(320, 231), size=wx.Size(853, 616), style=wx.DEFAULT_FRAME_STYLE, title='') diff -r a81b72ef156c -r 38afed869ff6 editors/CodeFileEditor.py --- a/editors/CodeFileEditor.py Wed May 12 11:36:56 2021 +0200 +++ b/editors/CodeFileEditor.py Mon May 24 14:33:54 2021 +0200 @@ -826,16 +826,14 @@ type_menu = wx.Menu(title='') base_menu = wx.Menu(title='') for base_type in self.Controler.GetBaseTypes(): - new_id = wx.NewId() - base_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) - self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), id=new_id) - type_menu.AppendMenu(wx.NewId(), "Base Types", base_menu) + new_entry = base_menu.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, text=base_type) + self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), new_entry) + type_menu.AppendMenu(wx.ID_ANY, "Base Types", base_menu) datatype_menu = wx.Menu(title='') for datatype in self.Controler.GetDataTypes(): - new_id = wx.NewId() - datatype_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) - self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id) - type_menu.AppendMenu(wx.NewId(), "User Data Types", datatype_menu) + new_entry = datatype_menu.Append(help='', id=wx.ID_ANY, kind=wx.ITEM_NORMAL, text=datatype) + self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), new_entry) + type_menu.AppendMenu(wx.ID_ANY, "User Data Types", datatype_menu) rect = self.VariablesGrid.BlockToDeviceRect((row, col), (row, col)) self.VariablesGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.VariablesGrid.GetColLabelSize()) diff -r a81b72ef156c -r 38afed869ff6 editors/DataTypeEditor.py --- a/editors/DataTypeEditor.py Wed May 12 11:36:56 2021 +0200 +++ b/editors/DataTypeEditor.py Mon May 24 14:33:54 2021 +0200 @@ -46,8 +46,8 @@ DIMENSION_MODEL = re.compile(r"([0-9]+)\.\.([0-9]+)$") -def AppendMenu(parent, help, id, kind, text): - parent.Append(help=help, id=id, kind=kind, text=text) +def AppendMenu(parent, help, kind, text): + return parent.Append(help=help, id=wx.ID_ANY, kind=kind, text=text) def GetElementsTableColnames(): @@ -633,31 +633,18 @@ base_menu = wx.Menu(title='') for base_type in self.Controler.GetBaseTypes(): - new_id = wx.NewId() - AppendMenu(base_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type) - self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(base_type), id=new_id) - type_menu.AppendMenu(wx.NewId(), _("Base Types"), base_menu) + new_entry = AppendMenu(base_menu, help='', kind=wx.ITEM_NORMAL, text=base_type) + self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(base_type), new_entry) + type_menu.AppendMenu(wx.ID_ANY, _("Base Types"), base_menu) datatype_menu = wx.Menu(title='') for datatype in self.Controler.GetDataTypes(self.TagName, False): - new_id = wx.NewId() - AppendMenu(datatype_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype) - self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(datatype), id=new_id) - type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu) - - new_id = wx.NewId() - AppendMenu(type_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Array")) - self.Bind(wx.EVT_MENU, self.ElementArrayTypeFunction, id=new_id) - -# functionblock_menu = wx.Menu(title='') -# bodytype = self.Controler.GetEditedElementBodyType(self.TagName) -# pouname, poutype = self.Controler.GetEditedElementType(self.TagName) -# if classtype in ["Input","Output","InOut","External","Global"] or poutype != "function" and bodytype in ["ST", "IL"]: -# for functionblock_type in self.Controler.GetFunctionBlockTypes(self.TagName): -# new_id = wx.NewId() -# AppendMenu(functionblock_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type) -# self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id) -# type_menu.AppendMenu(wx.NewId(), _("Function Block Types"), functionblock_menu) + new_entry = AppendMenu(datatype_menu, help='', kind=wx.ITEM_NORMAL, text=datatype) + self.Bind(wx.EVT_MENU, self.GetElementTypeFunction(datatype), new_entry) + type_menu.AppendMenu(wx.ID_ANY, _("User Data Types"), datatype_menu) + + new_entry = AppendMenu(type_menu, help='', kind=wx.ITEM_NORMAL, text=_("Array")) + self.Bind(wx.EVT_MENU, self.ElementArrayTypeFunction, new_entry) rect = self.StructureElementsGrid.BlockToDeviceRect((row, col), (row, col)) self.StructureElementsGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.StructureElementsGrid.GetColLabelSize()) diff -r a81b72ef156c -r 38afed869ff6 editors/ResourceEditor.py --- a/editors/ResourceEditor.py Wed May 12 11:36:56 2021 +0200 +++ b/editors/ResourceEditor.py Mon May 24 14:33:54 2021 +0200 @@ -43,14 +43,8 @@ # ------------------------------------------------------------------------------- -[ - ID_CONFIGURATIONEDITOR, -] = [wx.NewId() for _init_ctrls in range(1)] - - class ConfigurationEditor(EditorPanel): - ID = ID_CONFIGURATIONEDITOR VARIABLE_PANEL_TYPE = "config" def GetBufferState(self): diff -r a81b72ef156c -r 38afed869ff6 editors/TextViewer.py --- a/editors/TextViewer.py Wed May 12 11:36:56 2021 +0200 +++ b/editors/TextViewer.py Mon May 24 14:33:54 2021 +0200 @@ -55,10 +55,6 @@ STC_PLC_EMPTY] = range(11) [SPACE, WORD, NUMBER, STRING, WSTRING, COMMENT, PRAGMA, DPRAGMA] = range(8) -[ - ID_TEXTVIEWER, ID_TEXTVIEWERTEXTCTRL, -] = [wx.NewId() for _init_ctrls in range(2)] - re_texts = {} re_texts["letter"] = "[A-Za-z]" re_texts["digit"] = "[0-9]" @@ -79,11 +75,8 @@ class TextViewer(EditorPanel): - ID = ID_TEXTVIEWER - def _init_Editor(self, prnt): - self.Editor = CustomStyledTextCtrl(id=ID_TEXTVIEWERTEXTCTRL, - parent=prnt, name="TextViewer", size=wx.Size(0, 0), style=0) + self.Editor = CustomStyledTextCtrl(parent=prnt, name="TextViewer", size=wx.Size(0, 0), style=0) self.Editor.ParentWindow = self self.Editor.CmdKeyAssign(ord('+'), wx.stc.STC_SCMOD_CTRL, wx.stc.STC_CMD_ZOOMIN) @@ -140,14 +133,14 @@ wx.stc.STC_MOD_BEFOREDELETE | wx.stc.STC_PERFORMED_USER) - self.Bind(wx.stc.EVT_STC_STYLENEEDED, self.OnStyleNeeded, id=ID_TEXTVIEWERTEXTCTRL) + self.Bind(wx.stc.EVT_STC_STYLENEEDED, self.OnStyleNeeded, self.Editor) self.Editor.Bind(wx.stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Editor.Bind(wx.stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Editor.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) if self.Controler is not None: self.Editor.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) - self.Bind(wx.stc.EVT_STC_DO_DROP, self.OnDoDrop, id=ID_TEXTVIEWERTEXTCTRL) - self.Bind(wx.stc.EVT_STC_MODIFIED, self.OnModification, id=ID_TEXTVIEWERTEXTCTRL) + self.Bind(wx.stc.EVT_STC_DO_DROP, self.OnDoDrop, self.Editor) + self.Bind(wx.stc.EVT_STC_MODIFIED, self.OnModification, self.Editor) def __init__(self, parent, tagname, window, controler, debug=False, instancepath=""): if tagname != "" and controler is not None: diff -r a81b72ef156c -r 38afed869ff6 editors/Viewer.py --- a/editors/Viewer.py Wed May 12 11:36:56 2021 +0200 +++ b/editors/Viewer.py Mon May 24 14:33:54 2021 +0200 @@ -67,10 +67,6 @@ wx.StockCursor(wx.CURSOR_SIZENS)] -def AppendMenu(parent, help, id, kind, text): - parent.Append(help=help, id=id, kind=kind, text=text) - - if wx.Platform == '__WXMSW__': faces = { 'times': 'Times New Roman', @@ -238,25 +234,6 @@ # ------------------------------------------------------------------------------- -# ID Constants for alignment menu items -[ - ID_VIEWERALIGNMENTMENUITEMS0, ID_VIEWERALIGNMENTMENUITEMS1, - ID_VIEWERALIGNMENTMENUITEMS2, ID_VIEWERALIGNMENTMENUITEMS4, - ID_VIEWERALIGNMENTMENUITEMS5, ID_VIEWERALIGNMENTMENUITEMS6, -] = [wx.NewId() for _init_coll_AlignmentMenu_Items in range(6)] - -# ID Constants for contextual menu items -[ - ID_VIEWERCONTEXTUALMENUITEMS0, ID_VIEWERCONTEXTUALMENUITEMS1, - ID_VIEWERCONTEXTUALMENUITEMS2, ID_VIEWERCONTEXTUALMENUITEMS3, - ID_VIEWERCONTEXTUALMENUITEMS5, ID_VIEWERCONTEXTUALMENUITEMS6, - ID_VIEWERCONTEXTUALMENUITEMS8, ID_VIEWERCONTEXTUALMENUITEMS9, - ID_VIEWERCONTEXTUALMENUITEMS11, ID_VIEWERCONTEXTUALMENUITEMS12, - ID_VIEWERCONTEXTUALMENUITEMS14, ID_VIEWERCONTEXTUALMENUITEMS16, - ID_VIEWERCONTEXTUALMENUITEMS17, -] = [wx.NewId() for _init_coll_ContextualMenu_Items in range(13)] - - class ViewerDropTarget(wx.TextDropTarget): def __init__(self, parent): @@ -535,17 +512,6 @@ manipulating graphic elements """ - # Add list of menu items to the given menu - def AddMenuItems(self, menu, items): - for item in items: - if item is None: - menu.AppendSeparator() - else: - id, kind, text, help, callback = item - AppendMenu(menu, help=help, id=id, kind=kind, text=text) - # Link menu event to corresponding called functions - self.Bind(wx.EVT_MENU, callback, id=id) - def AppendItem(self, menu, text, callback, *args, **kwargs): item = menu.Append(wx.ID_ANY, text, *args, **kwargs) self.Bind(wx.EVT_MENU, callback, item) diff -r a81b72ef156c -r 38afed869ff6 etherlab/ConfigEditor.py --- a/etherlab/ConfigEditor.py Wed May 12 11:36:56 2021 +0200 +++ b/etherlab/ConfigEditor.py Mon May 24 14:33:54 2021 +0200 @@ -33,13 +33,6 @@ [ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE] = range(3) -def AppendMenu(parent, help, id, kind, text): - if wx.VERSION >= (2, 6, 0): - parent.Append(help=help, id=id, kind=kind, text=text) - else: - parent.Append(helpString=help, id=id, kind=kind, item=text) - - def GetVariablesTableColnames(position=False): _ = NoTranslate colname = ["#"]