class: Tools::NewSystemBrowser
authorClaus Gittinger <cg@exept.de>
Sun, 01 Sep 2013 00:40:03 +0200
changeset 13447 048e3bd915e2
parent 13446 6706ae64f638
child 13448 8f3c88862f5a
class: Tools::NewSystemBrowser added: #buffersDo: #otherBrowsersMenu comment/format in: #browseMenu changed: #bufferMenu #codeCompletion #operationsMenu Nice new "Other Browsers" menu item
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Sun Sep 01 00:34:01 2013 +0200
+++ b/Tools__NewSystemBrowser.st	Sun Sep 01 00:40:03 2013 +0200
@@ -17988,6 +17988,10 @@
 
 !NewSystemBrowser methodsFor:'accessing'!
 
+buffersDo:aBlock
+    buffers notNil ifTrue:[ buffers do:aBlock ]
+!
+
 isEmbeddedBrowser
     "allows the inspector to disable certain menu items (+ buffer)"
 
@@ -47932,11 +47936,12 @@
                     ].
                 submenu addItem:item.
             ].
-            m addItem:(subItem := MenuItem labeled:(resources string:'Recently Closed')).
+            m addItem:(subItem := MenuItem label:(resources string:'Recently Closed')).
             subItem submenu:submenu.
-            m addSeparator.
-        ].
-
+        ].
+
+        m addItem:((MenuItem label:(resources string:'Other Browsers')) submenuChannel:#otherBrowsersMenu).
+        m addSeparator.
 
         bufferNameList notEmptyOrNil ifTrue:[
             selected := selectedBuffer value.
@@ -48885,9 +48890,10 @@
             ifTrue: [resources string:'Undo: %1' with:(manager undoChange name contractTo:100)]
             ifFalse: [resources string:'Undo']).
 
-    item := MenuItem labeled:lUndo.
+    item := MenuItem 
+                label:lUndo
+                itemValue:[ self operationsMenuUndo ].
     item showBusyCursorWhilePerforming:true.
-    item itemValue:[ self operationsMenuUndo ].
     manager hasUndoableOperations ifFalse: [item disable].
     menu addItem:item.
 
@@ -48895,39 +48901,88 @@
             ifTrue: [resources string:'Redo: %1' with:(manager redoChange name contractTo:100)]
             ifFalse: [resources string:'Redo']).
 
-    item := MenuItem labeled:lRedo.
+    item := MenuItem 
+                label:lRedo
+                itemValue:[ self operationsMenuRedo ].
     item showBusyCursorWhilePerforming:true.
-    item itemValue:[ self operationsMenuRedo].
     manager hasRedoableOperations ifFalse: [item disable].
     menu addItem:item.
 
     undoListMenu := Menu new.
     manager undoableOperations reverseDo:[:eachUndoChange |
-        item := MenuItem labeled:(eachUndoChange name contractTo:100).
+        item := MenuItem 
+                    label:(eachUndoChange name contractTo:100)
+                    itemValue:[ self operationsMenuUndo:eachUndoChange ].
         item showBusyCursorWhilePerforming:true.
-        item itemValue:[ self operationsMenuUndo:eachUndoChange ].
         undoListMenu addItem:item.
     ].
-    item := MenuItem labeled:(resources string:'Undo Recent').
+    item := MenuItem label:(resources string:'Undo Recent').
     item submenu:undoListMenu.
     item enabled:manager hasUndoableOperations.
     menu addItem:item.
 
-    undoCountMenuItem := (MenuItem labeled: (resources string:'Set Undo Count...'))
-                            itemValue: [self setUndoCount];
-                            yourself.
+    undoCountMenuItem := MenuItem 
+                            label: (resources string:'Set Undo Count...')
+                            itemValue: [self setUndoCount].
     menu addItemGroup: (Array with: undoCountMenuItem).
 
-    cleanChangesForClassItem := (MenuItem labeled: (resources string:'Remove Class from ChangeSet...'))
-                            itemValue: [self classMenuCleanUpChangeSet];
-                            enabled: self hasClassSelectedHolder;
-                            yourself.
+    cleanChangesForClassItem := MenuItem 
+                                    label: (resources string:'Remove Class from ChangeSet...')
+                                    itemValue: [self classMenuCleanUpChangeSet]
+                                    enabled: self hasClassSelectedHolder.
     menu addItemGroup: (Array with: cleanChangesForClassItem).
     ^menu
 
     "Modified: / 09-09-2012 / 13:21:02 / cg"
 !
 
+otherBrowsersMenu
+    <resource: #programMenu >
+
+    "a menu showing other browsers, and allowing them to be reactivated"
+
+    ^ [
+        |m selected submenu subItem|
+
+        m := Menu new.
+        self class allInstancesDo:[:brwsr |
+            |item subMenu|
+
+            (brwsr window notNil 
+            and:[ brwsr window isTopView ]) ifTrue:[
+                item := MenuItem label:'"',brwsr window label,'"'.
+                item itemValue:[:i | brwsr window raiseDeiconified ].
+                
+                brwsr bufferNameList keysAndValuesDo:[:idx :eachBufferName |  
+                    idx ~~ brwsr selectedBuffer value ifTrue:[
+                        |subItem|
+
+                        subMenu isNil ifTrue:[
+                            subMenu := Menu new.
+                            item submenu:subMenu.
+                        ].
+                        subItem := MenuItem 
+                                    label:(eachBufferName)
+                                    itemValue:[:i | 
+                                        brwsr window raiseDeiconified. 
+                                        brwsr selectedBuffer value:idx
+                                    ].                            
+                        subMenu addItem:subItem.
+                    ].
+                ].
+                subMenu notNil ifTrue:[
+                    item submenu:subMenu.
+                ].
+                m addItem:item.
+            ]
+        ].
+        m items sort:[:a :b | a label < b label].
+        m
+    ].
+
+    "Modified: / 09-09-2012 / 20:43:01 / cg"
+!
+
 projectMenu
 
     <resource: #programMenu>
@@ -56185,7 +56240,7 @@
         ex proceed.
     ] do:[
         self withWaitCursorDo:[
-            DoWhatIMeanSupport codeCompletionForClass:cls codeView:codeView.
+            DoWhatIMeanSupport codeCompletionForClass:cls context:nil codeView:codeView.
         ]
     ].
     ^ self.
@@ -58937,15 +58992,15 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1969 2013-08-31 13:41:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1970 2013-08-31 22:40:03 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1969 2013-08-31 13:41:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1970 2013-08-31 22:40:03 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st,v 1.1969 2013-08-31 13:41:29 cg Exp $'
+    ^ '$Id: Tools__NewSystemBrowser.st,v 1.1970 2013-08-31 22:40:03 cg Exp $'
 ! !