Beremiz.py
changeset 771 85d33a130a5c
parent 766 42c0062655a7
child 781 cdc6393705ce
equal deleted inserted replaced
768:fe47069f214c 771:85d33a130a5c
   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()