Beremiz.py
changeset 710 d76f73c7ae5e
parent 705 a5977f64d4d9
parent 708 6ec28dc375cf
child 712 5a036ae4d6aa
child 713 37dc330e96a2
--- a/Beremiz.py	Thu Mar 29 00:14:35 2012 +0200
+++ b/Beremiz.py	Sat Mar 31 15:20:04 2012 +0200
@@ -150,7 +150,7 @@
 from wxPopen import ProcessLogger
 
 from docutils import *
-from PLCOpenEditor import IDEFrame, Viewer, AppendMenu, TITLE, TOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
+from PLCOpenEditor import IDEFrame, Viewer, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
 from PLCControler import LOCATION_PLUGIN, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
 
 SCROLLBAR_UNIT = 10
@@ -434,6 +434,12 @@
         self.Bind(wx.EVT_MENU, self.OnPropertiesMenu, id=wx.ID_PROPERTIES)
         self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)
     
+        self.AddToMenuToolBar([(wx.ID_NEW, "new.png", _(u'New'), None),
+                               (wx.ID_OPEN, "open.png", _(u'Open'), None),
+                               (wx.ID_SAVE, "save.png", _(u'Save'), None),
+                               (wx.ID_SAVEAS, "saveas.png", _(u'Save As...'), None),
+                               (wx.ID_PRINT, "print.png", _(u'Print'), None)])
+    
     def _init_coll_HelpMenu_Items(self, parent):
         parent.Append(help='', id=wx.ID_HELP,
               kind=wx.ITEM_NORMAL, text=_(u'Beremiz\tF1'))
@@ -562,7 +568,7 @@
         
         self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
         
-        self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
+        self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
         self.RefreshPluginMenu()
         self.LogConsole.SetFocus()
 
@@ -683,6 +689,7 @@
     def RefreshFileMenu(self):
         self.RefreshRecentProjectsMenu()
         
+        MenuToolBar = self.Panes["MenuToolBar"]
         if self.PluginRoot is not None:
             selected = self.TabsOpened.GetSelection()
             if selected >= 0:
@@ -694,16 +701,22 @@
                 if graphic_viewer:
                     self.FileMenu.Enable(wx.ID_PREVIEW, True)
                     self.FileMenu.Enable(wx.ID_PRINT, True)
+                    MenuToolBar.EnableTool(wx.ID_PRINT, True)
                 else:
                     self.FileMenu.Enable(wx.ID_PREVIEW, False)
                     self.FileMenu.Enable(wx.ID_PRINT, False)
+                    MenuToolBar.EnableTool(wx.ID_PRINT, False)
             else:
                 self.FileMenu.Enable(wx.ID_CLOSE, False)
                 self.FileMenu.Enable(wx.ID_PREVIEW, False)
                 self.FileMenu.Enable(wx.ID_PRINT, False)
+                MenuToolBar.EnableTool(wx.ID_PRINT, False)
             self.FileMenu.Enable(wx.ID_PAGE_SETUP, True)
-            self.FileMenu.Enable(wx.ID_SAVE, self.PluginRoot.ProjectTestModified())
+            project_modified = self.PluginRoot.ProjectTestModified()
+            self.FileMenu.Enable(wx.ID_SAVE, project_modified)
+            MenuToolBar.EnableTool(wx.ID_SAVE, project_modified)
             self.FileMenu.Enable(wx.ID_SAVEAS, True)
+            MenuToolBar.EnableTool(wx.ID_SAVEAS, True)
             self.FileMenu.Enable(wx.ID_PROPERTIES, True)
             self.FileMenu.Enable(wx.ID_CLOSE_ALL, True)
         else:
@@ -711,8 +724,11 @@
             self.FileMenu.Enable(wx.ID_PAGE_SETUP, False)
             self.FileMenu.Enable(wx.ID_PREVIEW, False)
             self.FileMenu.Enable(wx.ID_PRINT, False)
+            MenuToolBar.EnableTool(wx.ID_PRINT, False)
             self.FileMenu.Enable(wx.ID_SAVE, False)
+            MenuToolBar.EnableTool(wx.ID_SAVE, False)
             self.FileMenu.Enable(wx.ID_SAVEAS, False)
+            MenuToolBar.EnableTool(wx.ID_SAVEAS, False)
             self.FileMenu.Enable(wx.ID_PROPERTIES, False)
             self.FileMenu.Enable(wx.ID_CLOSE_ALL, False)
     
@@ -1363,6 +1379,7 @@
                     main_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=_("Append ")+help)
                     self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id)
             self.PopupMenuXY(main_menu)
+            main_menu.Destroy()
         return AddPluginMenu
     
     def GetButtonCallBackFunction(self, plugin, method):
@@ -1629,7 +1646,7 @@
             else:
                 self.ResetView()
                 self.ShowErrorMessage(result)
-            self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
+            self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU)
         dialog.Destroy()
     
     def OnOpenProjectMenu(self, event):
@@ -1665,14 +1682,14 @@
                 self.ShowErrorMessage(result)
         else:
             self.ShowErrorMessage(_("\"%s\" folder is not a valid Beremiz project\n") % projectpath)
-        self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
+        self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU)
     
     def OnCloseProjectMenu(self, event):
         if self.PluginRoot is not None and not self.CheckSaveBeforeClosing():
             return
         
         self.ResetView()
-        self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
+        self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU)
         self.RefreshAll()
     
     def OnSaveProjectMenu(self, event):