PLCOpenEditor.py
changeset 331 9106d66bd204
parent 324 9f240641e3f0
child 332 555124c752ec
--- a/PLCOpenEditor.py	Wed Mar 18 16:42:12 2009 +0100
+++ b/PLCOpenEditor.py	Thu Mar 19 18:10:12 2009 +0100
@@ -283,6 +283,8 @@
                   kind=wx.ITEM_NORMAL, text=u'Program')
             AppendMenu(addmenu, help='', id=ID_PLCOPENEDITOREDITMENUADDCONFIGURATION,
                   kind=wx.ITEM_NORMAL, text=u'Configuration')
+            AppendMenu(parent, help='', id=wx.ID_SELECTALL,
+                  kind=wx.ITEM_NORMAL, text=u'Select All\tCTRL+A')
             AppendMenu(parent, help='', id=wx.ID_DELETE,
                   kind=wx.ITEM_NORMAL, text=u'Delete')
         self.Bind(wx.EVT_MENU, self.OnRefreshMenu, id=wx.ID_REFRESH)
@@ -304,6 +306,7 @@
                   id=ID_PLCOPENEDITOREDITMENUADDPROGRAM)
             self.Bind(wx.EVT_MENU, self.OnAddConfigurationMenu,
                   id=ID_PLCOPENEDITOREDITMENUADDCONFIGURATION)
+            self.Bind(wx.EVT_MENU, self.OnSelectAllMenu, id=wx.ID_SELECTALL)
             self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=wx.ID_DELETE)
 
     def _init_coll_HelpMenu_Items(self, parent):
@@ -662,6 +665,11 @@
         else:
             self.SetTitle(name)
 
+    def RefreshScaling(self):
+        for i in xrange(self.TabsOpened.GetPageCount()):
+            editor = self.TabsOpened.GetPage(i)
+            editor.RefreshScaling()
+
     def ShowProperties(self):
         old_values = self.Controler.GetProjectProperties(self.Debug)
         dialog = ProjectDialog(self)
@@ -675,9 +683,7 @@
                 self.RefreshFileMenu()
                 self.RefreshEditMenu()
                 self.RefreshTypesTree()
-                for i in xrange(self.TabsOpened.GetPageCount()):
-                    editor = self.TabsOpened.GetPage(i)
-                    editor.RefreshScaling()
+                self.RefreshScaling()
         dialog.Destroy()
 
     def OnCloseFrame(self, event):
@@ -1002,21 +1008,31 @@
                 self.EditMenu.Enable(wx.ID_REDO, redo)
                 self.EditMenu.Enable(wx.ID_ADD, True)
                 self.EditMenu.Enable(wx.ID_DELETE, True)
+                if self.TabsOpened.GetPageCount() > 0:
+                    self.EditMenu.Enable(wx.ID_CUT, True)
+                    self.EditMenu.Enable(wx.ID_COPY, True)
+                    if self.CopyBuffer is not None:
+                        self.EditMenu.Enable(wx.ID_PASTE, True)
+                    else:
+                        self.EditMenu.Enable(wx.ID_PASTE, False)
+                    self.EditMenu.Enable(wx.ID_SELECTALL, True)
+                else:
+                    self.EditMenu.Enable(wx.ID_CUT, False)
+                    self.EditMenu.Enable(wx.ID_COPY, False)
+                    self.EditMenu.Enable(wx.ID_PASTE, False)
+                    self.EditMenu.Enable(wx.ID_SELECTALL, False)
         else:
             self.EditMenu.Enable(wx.ID_REFRESH, False)
             if not self.Debug:
                 self.EditMenu.Enable(wx.ID_UNDO, False)
                 self.EditMenu.Enable(wx.ID_REDO, False)
+                self.EditMenu.Enable(wx.ID_CUT, False)
+                self.EditMenu.Enable(wx.ID_COPY, False)
+                self.EditMenu.Enable(wx.ID_PASTE, False)
+                self.EditMenu.Enable(wx.ID_SELECTALL, False)
                 self.EditMenu.Enable(wx.ID_ADD, False)
                 self.EditMenu.Enable(wx.ID_DELETE, False)
-        if not self.Debug:
-            self.EditMenu.Enable(wx.ID_CUT, True)
-            self.EditMenu.Enable(wx.ID_COPY, True)
-            if self.CopyBuffer is not None:
-                self.EditMenu.Enable(wx.ID_PASTE, True)
-            else:
-                self.EditMenu.Enable(wx.ID_PASTE, False)
-
+    
     def OnRefreshMenu(self, event):
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
@@ -1049,6 +1065,7 @@
         self.RefreshTypesTree()
         self.RefreshInstancesTree()
         self.RefreshLibraryTree()
+        self.RefreshScaling()
         event.Skip()
     
     def OnRedoMenu(self, event):
@@ -1070,6 +1087,7 @@
         self.RefreshTypesTree()
         self.RefreshInstancesTree()
         self.RefreshLibraryTree()
+        self.RefreshScaling()
         event.Skip()
 
     def OnCutMenu(self, event):
@@ -1096,6 +1114,13 @@
             control.ProcessEvent(event)
         event.Skip()
     
+    def OnSelectAllMenu(self, event):
+        selected = self.TabsOpened.GetSelection()        
+        if selected != -1:
+            window = self.TabsOpened.GetPage(selected)
+            window.SelectAll()
+        event.Skip()
+    
     def OnDeleteMenu(self, event):
         window = self.FindFocus()
         if window == self.TypesTree:
@@ -1242,6 +1267,16 @@
             else:
                 self.TabsOpened.SetPageText(idx, "-".join(words[1:]))
 
+    def GetTabsOpenedDClickFunction(self, window):
+        def OnTabsOpenedDClick(event):
+            pane = self.AUIManager.GetPane(self.TabsOpened)
+            if pane.IsMaximized():
+                self.AUIManager.RestorePane(pane)
+            else:
+                self.AUIManager.MaximizePane(pane)
+            self.AUIManager.Update()
+            event.Skip()
+        return OnTabsOpenedDClick
 
 #-------------------------------------------------------------------------------
 #                         Types Tree Management Functions
@@ -1604,6 +1639,9 @@
             elif elementtype == ITEM_DATATYPE:
                 new_window = DataTypeEditor(self.TabsOpened, tagname, self, self.Controler)
                 self.TabsOpened.AddPage(new_window, "")
+            if wx.VERSION >= (2, 6, 0):
+                children = self.TabsOpened.GetChildren()
+                children[len(children) - 1].Bind(wx.EVT_LEFT_DCLICK, self.GetTabsOpenedDClickFunction(new_window))  
             self.VariablePanelIndexer.ChangeVariablePanel(tagname)
             openedidx = self.IsOpened(tagname)
             old_selected = self.TabsOpened.GetSelection()
@@ -3918,7 +3956,7 @@
     
     def _init_coll_MainSizer_Items(self, parent):
         parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW)
-        parent.AddSizer(self.ControlPanelSizer, 0, border=0, flag=wx.GROW)
+        parent.AddSizer(self.ControlPanelSizer, 0, border=5, flag=wx.GROW|wx.ALL)
     
     def _init_coll_MainSizer_Growables(self, parent):
         parent.AddGrowableCol(0)
@@ -3954,9 +3992,9 @@
 
     def _init_sizers(self):
         self.MainSizer = wx.FlexGridSizer(cols=2, hgap=10, rows=1, vgap=0)
-        self.ControlPanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        self.ControlPanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
         self.ChoicePanelSizer = wx.GridSizer(cols=1, hgap=5, rows=4, vgap=5)
-        self.ButtonPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0)
+        self.ButtonPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=5)
         
         self._init_coll_MainSizer_Items(self.MainSizer)
         self._init_coll_MainSizer_Growables(self.MainSizer)
@@ -4084,7 +4122,7 @@
             self.ReturnType.Enable(False)
             self.staticText1.Hide()
             self.ReturnType.Hide()
-        
+            
         self.VariablesGrid.SetTable(self.Table)
         self.VariablesGrid.SetRowLabelSize(0)
         for col in range(self.Table.GetNumberCols()):