290 |
290 |
291 CONFNODEMENU_POSITION = 3 |
291 CONFNODEMENU_POSITION = 3 |
292 |
292 |
293 class Beremiz(IDEFrame): |
293 class Beremiz(IDEFrame): |
294 |
294 |
295 def _init_coll_MenuBar_Menus(self, parent): |
|
296 IDEFrame._init_coll_MenuBar_Menus(self, parent) |
|
297 |
|
298 parent.Insert(pos=CONFNODEMENU_POSITION, |
|
299 menu=self.ConfNodeMenu, title=_(u'&ConfNode')) |
|
300 |
|
301 def _init_utils(self): |
295 def _init_utils(self): |
302 self.ConfNodeMenu = wx.Menu(title='') |
296 self.ConfNodeMenu = wx.Menu(title='') |
303 self.RecentProjectsMenu = wx.Menu(title='') |
297 self.RecentProjectsMenu = wx.Menu(title='') |
304 |
298 |
305 IDEFrame._init_utils(self) |
299 IDEFrame._init_utils(self) |
365 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
359 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
366 |
360 |
367 def _init_ctrls(self, prnt): |
361 def _init_ctrls(self, prnt): |
368 IDEFrame._init_ctrls(self, prnt) |
362 IDEFrame._init_ctrls(self, prnt) |
369 |
363 |
|
364 self.EditMenuSize = self.EditMenu.GetMenuItemCount() |
|
365 |
370 self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, id=ID_BEREMIZINSPECTOR) |
366 self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, id=ID_BEREMIZINSPECTOR) |
371 accels = [wx.AcceleratorEntry(wx.ACCEL_CTRL|wx.ACCEL_ALT, ord('I'), ID_BEREMIZINSPECTOR)] |
367 accels = [wx.AcceleratorEntry(wx.ACCEL_CTRL|wx.ACCEL_ALT, ord('I'), ID_BEREMIZINSPECTOR)] |
372 for method,shortcut in [("Stop", wx.WXK_F4), |
368 for method,shortcut in [("Stop", wx.WXK_F4), |
373 ("Run", wx.WXK_F5), |
369 ("Run", wx.WXK_F5), |
374 ("Transfer", wx.WXK_F6), |
370 ("Transfer", wx.WXK_F6), |
468 self.DebugVariablePanel.SetDataProducer(self.CTR) |
464 self.DebugVariablePanel.SetDataProducer(self.CTR) |
469 |
465 |
470 self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) |
466 self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) |
471 |
467 |
472 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU) |
468 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU) |
473 self.RefreshConfNodeMenu() |
|
474 self.RefreshAll() |
469 self.RefreshAll() |
475 self.LogConsole.SetFocus() |
470 self.LogConsole.SetFocus() |
476 |
471 |
477 def RiseLogConsole(self): |
472 def RiseLogConsole(self): |
478 self.BottomNoteBook.SetSelection(self.BottomNoteBook.GetPageIndex(self.LogConsole)) |
473 self.BottomNoteBook.SetSelection(self.BottomNoteBook.GetPageIndex(self.LogConsole)) |
712 self.AUIManager.GetPane("StatusToolBar").Hide() |
707 self.AUIManager.GetPane("StatusToolBar").Hide() |
713 self.AUIManager.GetPane("EditorToolBar").Position(2) |
708 self.AUIManager.GetPane("EditorToolBar").Position(2) |
714 self.AUIManager.GetPane("StatusToolBar").Position(1) |
709 self.AUIManager.GetPane("StatusToolBar").Position(1) |
715 self.AUIManager.Update() |
710 self.AUIManager.Update() |
716 |
711 |
717 def RefreshConfNodeMenu(self): |
712 def RefreshEditMenu(self): |
|
713 IDEFrame.RefreshEditMenu(self) |
|
714 |
718 if self.CTR is not None: |
715 if self.CTR is not None: |
719 selected = self.TabsOpened.GetSelection() |
716 selected = self.TabsOpened.GetSelection() |
720 if selected >= 0: |
717 if selected >= 0: |
721 panel = self.TabsOpened.GetPage(selected) |
718 panel = self.TabsOpened.GetPage(selected) |
722 else: |
719 else: |
723 panel = None |
720 panel = None |
724 if panel != self.LastPanelSelected: |
721 if panel != self.LastPanelSelected: |
725 for i in xrange(self.ConfNodeMenu.GetMenuItemCount()): |
722 for i in xrange(self.EditMenuSize, self.EditMenu.GetMenuItemCount()): |
726 item = self.ConfNodeMenu.FindItemByPosition(0) |
723 item = self.EditMenu.FindItemByPosition(self.EditMenuSize) |
727 self.ConfNodeMenu.Delete(item.GetId()) |
724 if item.IsSeparator(): |
|
725 self.EditMenu.RemoveItem(item) |
|
726 else: |
|
727 self.EditMenu.Delete(item.GetId()) |
728 self.LastPanelSelected = panel |
728 self.LastPanelSelected = panel |
729 if panel is not None: |
729 if panel is not None: |
730 items = panel.GetConfNodeMenuItems() |
730 items = panel.GetConfNodeMenuItems() |
731 else: |
731 else: |
732 items = [] |
732 items = [] |
733 self.MenuBar.EnableTop(CONFNODEMENU_POSITION, len(items) > 0) |
733 if len(items) > 0: |
734 self.GenerateMenuRecursive(items, self.ConfNodeMenu) |
734 self.EditMenu.AppendSeparator() |
|
735 self.GenerateMenuRecursive(items, self.EditMenu) |
735 if panel is not None: |
736 if panel is not None: |
736 panel.RefreshConfNodeMenu(self.ConfNodeMenu) |
737 panel.RefreshConfNodeMenu(self.EditMenu) |
737 else: |
738 else: |
738 self.MenuBar.EnableTop(CONFNODEMENU_POSITION, False) |
739 for i in xrange(self.EditMenuSize, self.EditMenu.GetMenuItemCount()): |
|
740 item = self.EditMenu.FindItemByPosition(i) |
|
741 self.EditMenu.Delete(item.GetId()) |
|
742 self.LastPanelSelected = None |
739 self.MenuBar.UpdateMenus() |
743 self.MenuBar.UpdateMenus() |
740 |
744 |
741 def RefreshAll(self): |
745 def RefreshAll(self): |
742 self.RefreshStatusToolBar() |
746 self.RefreshStatusToolBar() |
743 |
747 |
879 def OnQuitMenu(self, event): |
883 def OnQuitMenu(self, event): |
880 self.Close() |
884 self.Close() |
881 |
885 |
882 def OnAboutMenu(self, event): |
886 def OnAboutMenu(self, event): |
883 OpenHtmlFrame(self,_("About Beremiz"), Bpath("doc","about.html"), wx.Size(550, 500)) |
887 OpenHtmlFrame(self,_("About Beremiz"), Bpath("doc","about.html"), wx.Size(550, 500)) |
884 |
|
885 def OnPouSelectedChanged(self, event): |
|
886 wx.CallAfter(self.RefreshConfNodeMenu) |
|
887 IDEFrame.OnPouSelectedChanged(self, event) |
|
888 |
|
889 def OnPageClose(self, event): |
|
890 wx.CallAfter(self.RefreshConfNodeMenu) |
|
891 IDEFrame.OnPageClose(self, event) |
|
892 |
888 |
893 def OnProjectTreeItemBeginEdit(self, event): |
889 def OnProjectTreeItemBeginEdit(self, event): |
894 selected = event.GetItem() |
890 selected = event.GetItem() |
895 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_CONFNODE: |
891 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_CONFNODE: |
896 event.Veto() |
892 event.Veto() |