245 [ID_EDITINGPANELINDEXLISTMENUITEMS0, ID_EDITINGPANELINDEXLISTMENUITEMS1, |
245 [ID_EDITINGPANELINDEXLISTMENUITEMS0, ID_EDITINGPANELINDEXLISTMENUITEMS1, |
246 ID_EDITINGPANELINDEXLISTMENUITEMS2, |
246 ID_EDITINGPANELINDEXLISTMENUITEMS2, |
247 ] = [wx.NewId() for _init_coll_IndexListMenu_Items in range(3)] |
247 ] = [wx.NewId() for _init_coll_IndexListMenu_Items in range(3)] |
248 |
248 |
249 [ID_EDITINGPANELMENU1ITEMS0, ID_EDITINGPANELMENU1ITEMS1, |
249 [ID_EDITINGPANELMENU1ITEMS0, ID_EDITINGPANELMENU1ITEMS1, |
250 ] = [wx.NewId() for _init_coll_SubindexGridMenu_Items in range(2)] |
250 ID_EDITINGPANELMENU1ITEMS3, |
|
251 ] = [wx.NewId() for _init_coll_SubindexGridMenu_Items in range(3)] |
251 |
252 |
252 class EditingPanel(wx.SplitterWindow): |
253 class EditingPanel(wx.SplitterWindow): |
253 def _init_coll_AddToListSizer_Items(self, parent): |
254 def _init_coll_AddToListSizer_Items(self, parent): |
254 parent.AddWindow(self.AddButton, 0, border=0, flag=0) |
255 parent.AddWindow(self.AddButton, 0, border=0, flag=0) |
255 parent.AddWindow(self.IndexChoice, 0, border=0, flag=wx.GROW) |
256 parent.AddWindow(self.IndexChoice, 0, border=0, flag=wx.GROW) |
273 parent.AddGrowableCol(0) |
274 parent.AddGrowableCol(0) |
274 parent.AddGrowableRow(0) |
275 parent.AddGrowableRow(0) |
275 |
276 |
276 def _init_coll_SubindexGridMenu_Items(self, parent): |
277 def _init_coll_SubindexGridMenu_Items(self, parent): |
277 parent.Append(help='', id=ID_EDITINGPANELMENU1ITEMS0, |
278 parent.Append(help='', id=ID_EDITINGPANELMENU1ITEMS0, |
278 kind=wx.ITEM_NORMAL, text='Add') |
279 kind=wx.ITEM_NORMAL, text='Add subindexes') |
279 parent.Append(help='', id=ID_EDITINGPANELMENU1ITEMS1, |
280 parent.Append(help='', id=ID_EDITINGPANELMENU1ITEMS1, |
280 kind=wx.ITEM_NORMAL, text='Delete') |
281 kind=wx.ITEM_NORMAL, text='Delete subindexes') |
|
282 parent.AppendSeparator() |
|
283 parent.Append(help='', id=ID_EDITINGPANELMENU1ITEMS3, |
|
284 kind=wx.ITEM_NORMAL, text='Default value') |
281 self.Bind(wx.EVT_MENU, self.OnAddSubindexMenu, |
285 self.Bind(wx.EVT_MENU, self.OnAddSubindexMenu, |
282 id=ID_EDITINGPANELMENU1ITEMS0) |
286 id=ID_EDITINGPANELMENU1ITEMS0) |
283 self.Bind(wx.EVT_MENU, self.OnDeleteSubindexMenu, |
287 self.Bind(wx.EVT_MENU, self.OnDeleteSubindexMenu, |
284 id=ID_EDITINGPANELMENU1ITEMS1) |
288 id=ID_EDITINGPANELMENU1ITEMS1) |
|
289 self.Bind(wx.EVT_MENU, self.OnDefaultValueSubindexMenu, |
|
290 id=ID_EDITINGPANELMENU1ITEMS3) |
285 |
291 |
286 def _init_coll_IndexListMenu_Items(self, parent): |
292 def _init_coll_IndexListMenu_Items(self, parent): |
287 parent.Append(help='', id=ID_EDITINGPANELINDEXLISTMENUITEMS0, |
293 parent.Append(help='', id=ID_EDITINGPANELINDEXLISTMENUITEMS0, |
288 kind=wx.ITEM_NORMAL, text='Rename') |
294 kind=wx.ITEM_NORMAL, text='Rename') |
289 parent.Append(help='', id=ID_EDITINGPANELINDEXLISTMENUITEMS2, |
295 parent.Append(help='', id=ID_EDITINGPANELINDEXLISTMENUITEMS2, |
389 name='IndexChoice', parent=self.IndexListPanel, pos=wx.Point(50, |
395 name='IndexChoice', parent=self.IndexListPanel, pos=wx.Point(50, |
390 0), size=wx.Size(-1, 30), style=0) |
396 0), size=wx.Size(-1, 30), style=0) |
391 |
397 |
392 self._init_sizers() |
398 self._init_sizers() |
393 |
399 |
394 def __init__(self, parent, manager, editable = True): |
400 def __init__(self, parent, window, manager, editable = True): |
395 self._init_ctrls(parent.GetNoteBook()) |
401 self._init_ctrls(parent) |
396 self.ParentWindow = parent |
402 self.ParentWindow = window |
397 self.Manager = manager |
403 self.Manager = manager |
398 self.ListIndex = [] |
404 self.ListIndex = [] |
399 self.ChoiceIndex = [] |
405 self.ChoiceIndex = [] |
400 self.FirstCall = False |
406 self.FirstCall = False |
401 self.Editable = editable |
407 self.Editable = editable |
402 self.Index = None |
408 self.Index = None |
403 |
409 |
404 for values in DictionaryOrganisation: |
410 for values in DictionaryOrganisation: |
405 text = " 0x%04X-0x%04X %s"%(values["minIndex"],values["maxIndex"],values["name"]) |
411 text = " 0x%04X-0x%04X %s"%(values["minIndex"], values["maxIndex"], values["name"]) |
406 self.PartList.Append(text) |
412 self.PartList.Append(text) |
407 self.Table = SubindexTable(self, [], [], ["subindex", "name", "type", "value", "access", "save", "comment"]) |
413 self.Table = SubindexTable(self, [], [], ["subindex", "name", "type", "value", "access", "save", "comment"]) |
408 self.SubindexGrid.SetTable(self.Table) |
414 self.SubindexGrid.SetTable(self.Table) |
409 self.SubindexGrid.SetRowLabelSize(0) |
415 self.SubindexGrid.SetRowLabelSize(0) |
410 self.CallbackCheck.Disable() |
416 self.CallbackCheck.Disable() |
628 else: |
634 else: |
629 self.FirstCall = False |
635 self.FirstCall = False |
630 event.Skip() |
636 event.Skip() |
631 |
637 |
632 def OnSubindexGridRightClick(self, event): |
638 def OnSubindexGridRightClick(self, event): |
|
639 self.SubindexGrid.SetGridCursor(event.GetRow(), event.GetCol()) |
633 if self.Editable: |
640 if self.Editable: |
634 selected = self.IndexList.GetSelection() |
641 selected = self.IndexList.GetSelection() |
635 if selected != wx.NOT_FOUND: |
642 if selected != wx.NOT_FOUND: |
636 index = self.ListIndex[selected] |
643 index = self.ListIndex[selected] |
637 if self.Manager.IsCurrentEntry(index): |
644 if self.Manager.IsCurrentEntry(index): |
|
645 showpopup = False |
638 infos = self.Manager.GetEntryInfos(index) |
646 infos = self.Manager.GetEntryInfos(index) |
639 if index >= 0x2000 and infos["struct"] & OD_MultipleSubindexes or infos["struct"] & OD_IdenticalSubindexes: |
647 if index >= 0x2000 and infos["struct"] & OD_MultipleSubindexes or infos["struct"] & OD_IdenticalSubindexes: |
|
648 showpopup = True |
|
649 self.SubindexGridMenu.FindItemByPosition(0).Enable(True) |
|
650 self.SubindexGridMenu.FindItemByPosition(1).Enable(True) |
|
651 else: |
|
652 self.SubindexGridMenu.FindItemByPosition(0).Enable(False) |
|
653 self.SubindexGridMenu.FindItemByPosition(1).Enable(False) |
|
654 if self.Table.GetColLabelValue(event.GetCol()) == "value": |
|
655 showpopup = True |
|
656 self.SubindexGridMenu.FindItemByPosition(3).Enable(True) |
|
657 else: |
|
658 self.SubindexGridMenu.FindItemByPosition(3).Enable(False) |
|
659 if showpopup: |
640 self.PopupMenu(self.SubindexGridMenu) |
660 self.PopupMenu(self.SubindexGridMenu) |
641 event.Skip() |
661 event.Skip() |
642 |
662 |
643 def OnRenameIndexMenu(self, event): |
663 def OnRenameIndexMenu(self, event): |
644 if self.Editable: |
664 if self.Editable: |