421 |
421 |
422 if USE_AUI: |
422 if USE_AUI: |
423 self.TabsOpened = wx.aui.AuiNotebook(self) |
423 self.TabsOpened = wx.aui.AuiNotebook(self) |
424 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
424 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
425 self.OnPouSelectedChanged) |
425 self.OnPouSelectedChanged) |
|
426 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, |
|
427 self.OnPageClose) |
426 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane()) |
428 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane()) |
427 else: |
429 else: |
428 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
430 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
429 name='TabsOpened', parent=self.MainSplitter, pos=wx.Point(0, |
431 name='TabsOpened', parent=self.MainSplitter, pos=wx.Point(0, |
430 0), size=wx.Size(0, 0), style=0) |
432 0), size=wx.Size(0, 0), style=0) |
468 self.AUIManager.AddPane(self.VariablePanelIndexer, wx.aui.AuiPaneInfo().Caption("Variables").Bottom().Layer(0).BestSize(wx.Size(800, 200)).CloseButton(False)) |
470 self.AUIManager.AddPane(self.VariablePanelIndexer, wx.aui.AuiPaneInfo().Caption("Variables").Bottom().Layer(0).BestSize(wx.Size(800, 200)).CloseButton(False)) |
469 |
471 |
470 self.TabsOpened = wx.aui.AuiNotebook(self) |
472 self.TabsOpened = wx.aui.AuiNotebook(self) |
471 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
473 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
472 self.OnPouSelectedChanged) |
474 self.OnPouSelectedChanged) |
|
475 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, |
|
476 self.OnPageClose) |
473 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane().MinSize(wx.Size(0, 0))) |
477 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane().MinSize(wx.Size(0, 0))) |
474 |
478 |
475 self.LibraryPanel = wx.Panel(id=ID_PLCOPENEDITORLIBRARYPANEL, |
479 self.LibraryPanel = wx.Panel(id=ID_PLCOPENEDITORLIBRARYPANEL, |
476 name='LibraryPanel', parent=self, pos=wx.Point(0, |
480 name='LibraryPanel', parent=self, pos=wx.Point(0, |
477 0), size=wx.Size(0, 0), style=0) |
481 0), size=wx.Size(0, 0), style=0) |
615 |
619 |
616 def ResetSelectedItem(self): |
620 def ResetSelectedItem(self): |
617 self.SelectedItem = None |
621 self.SelectedItem = None |
618 |
622 |
619 def OnPageClose(self, event): |
623 def OnPageClose(self, event): |
620 selected = self.TabsOpened.GetSelection() |
624 selected = event.GetSelection() |
621 if selected >= 0: |
625 if selected >= 0: |
622 tagname = self.GetPage(selected).GetTagName() |
626 if not self.Debug: |
623 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
627 tagname = self.TabsOpened.GetPage(selected).GetTagName() |
|
628 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
624 if self.TabsOpened.GetPageCount() > 0: |
629 if self.TabsOpened.GetPageCount() > 0: |
625 new_index = min(selected, self.TabsOpened.GetPageCount() - 1) |
630 new_index = min(selected, self.TabsOpened.GetPageCount() - 1) |
626 tagname = self.GetPage(new_index).GetTagName() |
|
627 self.TabsOpened.SetSelection(new_index) |
631 self.TabsOpened.SetSelection(new_index) |
628 self.VariablePanelIndexer.ChangeVariablePanel(tagname) |
632 if not self.Debug: |
|
633 tagname = self.TabsOpened.GetPage(new_index).GetTagName() |
|
634 self.VariablePanelIndexer.ChangeVariablePanel(tagname) |
629 self.RefreshTitle() |
635 self.RefreshTitle() |
630 self.RefreshFileMenu() |
636 self.RefreshFileMenu() |
631 self.RefreshEditMenu() |
637 self.RefreshEditMenu() |
632 self.RefreshToolBar() |
638 self.RefreshToolBar() |
633 event.Skip() |
639 event.Skip() |
820 event.Skip() |
826 event.Skip() |
821 |
827 |
822 def OnCloseTabMenu(self, event): |
828 def OnCloseTabMenu(self, event): |
823 selected = self.TabsOpened.GetSelection() |
829 selected = self.TabsOpened.GetSelection() |
824 if selected >= 0: |
830 if selected >= 0: |
825 self.TabsOpened.DeletePage(selected) |
|
826 if not self.Debug: |
831 if not self.Debug: |
827 tagname = self.TabsOpened.GetPage(selected).GetTagName() |
832 tagname = self.TabsOpened.GetPage(selected).GetTagName() |
828 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
833 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
|
834 self.TabsOpened.DeletePage(selected) |
829 if self.TabsOpened.GetPageCount() > 0: |
835 if self.TabsOpened.GetPageCount() > 0: |
830 new_index = min(selected, self.TabsOpened.GetPageCount() - 1) |
836 new_index = min(selected, self.TabsOpened.GetPageCount() - 1) |
831 self.TabsOpened.SetSelection(new_index) |
837 self.TabsOpened.SetSelection(new_index) |
832 if not self.Debug: |
838 if not self.Debug: |
833 tagname = self.TabsOpened.GetPage(new_index).GetTagName() |
839 tagname = self.TabsOpened.GetPage(new_index).GetTagName() |
1055 self.RefreshLibraryTree() |
1061 self.RefreshLibraryTree() |
1056 event.Skip() |
1062 event.Skip() |
1057 |
1063 |
1058 def OnCutMenu(self, event): |
1064 def OnCutMenu(self, event): |
1059 control = self.FindFocus() |
1065 control = self.FindFocus() |
1060 if isinstance(control, Viewer): |
1066 if isinstance(control, (Viewer, TextViewer)): |
1061 control.Cut() |
1067 control.Cut() |
1062 else: |
1068 elif isinstance(control, wx.TextCtrl): |
1063 control.ProcessEvent(event) |
1069 control.ProcessEvent(event) |
1064 event.Skip() |
1070 event.Skip() |
1065 |
1071 |
1066 def OnCopyMenu(self, event): |
1072 def OnCopyMenu(self, event): |
1067 control = self.FindFocus() |
1073 control = self.FindFocus() |
1068 if isinstance(control, Viewer): |
1074 if isinstance(control, (Viewer, TextViewer)): |
1069 control.Copy() |
1075 control.Copy() |
1070 else: |
1076 elif isinstance(control, wx.TextCtrl): |
1071 control.ProcessEvent(event) |
1077 control.ProcessEvent(event) |
1072 event.Skip() |
1078 event.Skip() |
1073 |
1079 |
1074 def OnPasteMenu(self, event): |
1080 def OnPasteMenu(self, event): |
1075 control = self.FindFocus() |
1081 control = self.FindFocus() |
1076 if isinstance(control, Viewer): |
1082 if isinstance(control, (Viewer, TextViewer)): |
1077 control.Paste() |
1083 control.Paste() |
1078 else: |
1084 elif isinstance(control, wx.TextCtrl): |
1079 control.ProcessEvent(event) |
1085 control.ProcessEvent(event) |
1080 event.Skip() |
1086 event.Skip() |
1081 |
1087 |
1082 def OnDeleteMenu(self, event): |
1088 def OnDeleteMenu(self, event): |
1083 window = self.FindFocus() |
1089 window = self.FindFocus() |
3521 self.VariablePanelList[tagname] = new_panel |
3527 self.VariablePanelList[tagname] = new_panel |
3522 |
3528 |
3523 def RemoveVariablePanel(self, tagname): |
3529 def RemoveVariablePanel(self, tagname): |
3524 if tagname in self.VariablePanelList: |
3530 if tagname in self.VariablePanelList: |
3525 panel = self.VariablePanelList.pop(tagname) |
3531 panel = self.VariablePanelList.pop(tagname) |
3526 panel.Hide() |
|
3527 self.MainSizer.Remove(panel) |
3532 self.MainSizer.Remove(panel) |
|
3533 panel.Destroy() |
3528 if self.CurrentPanel == tagname: |
3534 if self.CurrentPanel == tagname: |
3529 self.CurrentPanel = None |
3535 self.CurrentPanel = None |
3530 |
3536 |
3531 def RemoveAllPanels(self): |
3537 def RemoveAllPanels(self): |
3532 if self.CurrentPanel is not None and self.CurrentPanel in self.VariablePanelList: |
3538 for tagname in self.VariablePanelList.keys(): |
3533 self.VariablePanelList[self.CurrentPanel].Hide() |
3539 self.RemoveVariablePanel(tagname) |
3534 self.VariablePanelList = {} |
|
3535 self.MainSizer.Clear() |
|
3536 self.CurrentPanel = None |
|
3537 |
3540 |
3538 def UpdateVariablePanelTagName(self, old_tagname, new_tagname): |
3541 def UpdateVariablePanelTagName(self, old_tagname, new_tagname): |
3539 if old_tagname in self.VariablePanelList: |
3542 if old_tagname in self.VariablePanelList: |
3540 self.VariablePanelList[new_tagname] = self.VariablePanelList.pop(old_tagname) |
3543 self.VariablePanelList[new_tagname] = self.VariablePanelList.pop(old_tagname) |
3541 if self.CurrentPanel == old_tagname: |
3544 if self.CurrentPanel == old_tagname: |
3937 wx.grid.EVT_GRID_CELL_LEFT_CLICK(self.VariablesGrid, self.OnVariablesGridCellLeftClick) |
3940 wx.grid.EVT_GRID_CELL_LEFT_CLICK(self.VariablesGrid, self.OnVariablesGridCellLeftClick) |
3938 wx.grid.EVT_GRID_EDITOR_SHOWN(self.VariablesGrid, self.OnVariablesGridEditorShown) |
3941 wx.grid.EVT_GRID_EDITOR_SHOWN(self.VariablesGrid, self.OnVariablesGridEditorShown) |
3939 self.VariablesGrid.SetDropTarget(VariableDropTarget(self)) |
3942 self.VariablesGrid.SetDropTarget(VariableDropTarget(self)) |
3940 |
3943 |
3941 self.AddButton = wx.Button(id=ID_VARIABLEEDITORPANELADDBUTTON, label='Add', |
3944 self.AddButton = wx.Button(id=ID_VARIABLEEDITORPANELADDBUTTON, label='Add', |
3942 name='AddButton', parent=self, pos=wx.Point(345, 340), |
3945 name='AddButton', parent=self, pos=wx.Point(0, 0), |
3943 size=wx.Size(72, 32), style=0) |
3946 size=wx.Size(72, 32), style=0) |
3944 self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_VARIABLEEDITORPANELADDBUTTON) |
3947 self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_VARIABLEEDITORPANELADDBUTTON) |
3945 |
3948 |
3946 self.DeleteButton = wx.Button(id=ID_VARIABLEEDITORPANELDELETEBUTTON, label='Delete', |
3949 self.DeleteButton = wx.Button(id=ID_VARIABLEEDITORPANELDELETEBUTTON, label='Delete', |
3947 name='DeleteButton', parent=self, pos=wx.Point(425, 340), |
3950 name='DeleteButton', parent=self, pos=wx.Point(0, 0), |
3948 size=wx.Size(72, 32), style=0) |
3951 size=wx.Size(72, 32), style=0) |
3949 self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_VARIABLEEDITORPANELDELETEBUTTON) |
3952 self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_VARIABLEEDITORPANELDELETEBUTTON) |
3950 |
3953 |
3951 self.UpButton = wx.Button(id=ID_VARIABLEEDITORPANELUPBUTTON, label='^', |
3954 self.UpButton = wx.Button(id=ID_VARIABLEEDITORPANELUPBUTTON, label='^', |
3952 name='UpButton', parent=self, pos=wx.Point(505, 340), |
3955 name='UpButton', parent=self, pos=wx.Point(0, 0), |
3953 size=wx.Size(32, 32), style=0) |
3956 size=wx.Size(32, 32), style=0) |
3954 self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_VARIABLEEDITORPANELUPBUTTON) |
3957 self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_VARIABLEEDITORPANELUPBUTTON) |
3955 |
3958 |
3956 self.DownButton = wx.Button(id=ID_VARIABLEEDITORPANELDOWNBUTTON, label='v', |
3959 self.DownButton = wx.Button(id=ID_VARIABLEEDITORPANELDOWNBUTTON, label='v', |
3957 name='DownButton', parent=self, pos=wx.Point(545, 340), |
3960 name='DownButton', parent=self, pos=wx.Point(0, 0), |
3958 size=wx.Size(32, 32), style=0) |
3961 size=wx.Size(32, 32), style=0) |
3959 self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_VARIABLEEDITORPANELDOWNBUTTON) |
3962 self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_VARIABLEEDITORPANELDOWNBUTTON) |
3960 |
3963 |
3961 self._init_sizers() |
3964 self._init_sizers() |
3962 |
3965 |