added: #recentlyOpenedApplicationsMenu
authorClaus Gittinger <cg@exept.de>
Sat, 07 Nov 2009 14:34:17 +0100
changeset 9221 468d20a04f3f
parent 9220 741ac607f199
child 9222 1d6e1f6086f1
added: #recentlyOpenedApplicationsMenu changed: #toolsMenu
NewLauncher.st
--- a/NewLauncher.st	Sat Nov 07 11:37:00 2009 +0100
+++ b/NewLauncher.st	Sat Nov 07 14:34:17 2009 +0100
@@ -2697,44 +2697,104 @@
             label: '-'
           )
          (MenuItem
-            activeHelpKey: toolsGUIPainter
-            label: 'GUI Painter'
-            itemValue: openApplication:
-            nameKey: guiPainter
+            label: 'GUI'
             translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary startUIPainterIcon 'GUI Painter')
-            argument: 'UIPainter'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: toolsGUIPainter
+                  label: 'GUI Painter'
+                  itemValue: openApplication:
+                  nameKey: guiPainter
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary startUIPainterIcon 'GUI Painter')
+                  argument: 'UIPainter'
+                )
+               (MenuItem
+                  activeHelpKey: toolsMenuEditor
+                  label: 'Menu Editor'
+                  itemValue: openApplication:
+                  nameKey: menuEditor
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary startMenuEditorIcon 'Menu Editor')
+                  argument: 'MenuEditor'
+                )
+               (MenuItem
+                  activeHelpKey: toolsImageEditor
+                  label: 'Image Editor'
+                  itemValue: openApplication:
+                  nameKey: imageEditor
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary startImageEditorIcon 'Image Editor')
+                  argument: 'ImageEditor'
+                )
+               )
+              nil
+              nil
+            )
           )
          (MenuItem
-            activeHelpKey: toolsMenuEditor
-            label: 'Menu Editor'
-            itemValue: openApplication:
-            nameKey: menuEditor
+            label: 'Programming'
             translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary startMenuEditorIcon 'Menu Editor')
-            argument: 'MenuEditor'
-          )
-         (MenuItem
-            activeHelpKey: toolsImageEditor
-            label: 'Image Editor'
-            itemValue: openApplication:
-            nameKey: imageEditor
-            translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary startImageEditorIcon 'Image Editor')
-            argument: 'ImageEditor'
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  activeHelpKey: toolsChangesBrowser
+                  label: 'Change File Browser'
+                  itemValue: startChangesBrowser
+                  nameKey: changesBrowser
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon 'Change File Browser')
+                )
+               (MenuItem
+                  activeHelpKey: toolsSUnit
+                  label: 'SUnit Test'
+                  itemValue: startSUnitTestRunner
+                  nameKey: startSUnitTestRunner
+                  translateLabel: true
+                  labelImage: (ResourceRetriever NewLauncher startSUnitIcon 'SUnit Test')
+                )
+               (MenuItem
+                  activeHelpKey: toolsToDoList
+                  label: 'Programmer''s ToDo List'
+                  itemValue: startToDoListBrowser
+                  nameKey: startToDoListBrowser
+                  translateLabel: true
+                )
+               (MenuItem
+                  activeHelpKey: toolsOOM
+                  enabled: oomPackageLoaded
+                  label: 'Code Metrics Browser'
+                  itemValue: startOOMBrowser
+                  nameKey: startOOMBrowser
+                  translateLabel: true
+                )
+               (MenuItem
+                  activeHelpKey: toolsSmaCC
+                  enabled: smaccPackageLoaded
+                  label: 'SmaCC ParserGenerator'
+                  itemValue: startSmaCCParserGenerator
+                  nameKey: startSmaCCParserGenerator
+                  translateLabel: true
+                )
+               (MenuItem
+                  activeHelpKey: toolsInternationalLanguageTranslationEditor
+                  label: 'International Language Translation Editor'
+                  itemValue: startInternationalLanguageTranslationEditor
+                  translateLabel: true
+                  labelImage: (ResourceRetriever ToolbarIconLibrary languagesIcon 'International Language Translation Editor')
+                )
+               )
+              nil
+              nil
+            )
           )
          (MenuItem
             label: '-'
           )
          (MenuItem
-            activeHelpKey: toolsChangesBrowser
-            label: 'Change File Browser'
-            itemValue: startChangesBrowser
-            nameKey: changesBrowser
-            translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon 'Change File Browser')
-          )
-         (MenuItem
             label: 'Bug Reporter'
             itemValue: startBugMessages
             nameKey: bugMessages
@@ -2743,53 +2803,12 @@
             labelImage: (ResourceRetriever NewLauncher bugReporterIcon 'Bug Reporter')
           )
          (MenuItem
-            activeHelpKey: toolsSUnit
-            label: 'SUnit Test'
-            itemValue: startSUnitTestRunner
-            nameKey: startSUnitTestRunner
-            translateLabel: true
-            labelImage: (ResourceRetriever NewLauncher startSUnitIcon 'SUnit Test')
-          )
-         (MenuItem
-            activeHelpKey: toolsToDoList
-            label: 'Programmer''s ToDo List'
-            itemValue: startToDoListBrowser
-            nameKey: startToDoListBrowser
-            translateLabel: true
-          )
-         (MenuItem
-            activeHelpKey: toolsOOM
-            enabled: oomPackageLoaded
-            label: 'Code Metrics Browser'
-            itemValue: startOOMBrowser
-            nameKey: startOOMBrowser
-            translateLabel: true
-          )
-         (MenuItem
-            activeHelpKey: toolsSmaCC
-            enabled: smaccPackageLoaded
-            label: 'SmaCC ParserGenerator'
-            itemValue: startSmaCCParserGenerator
-            nameKey: startSmaCCParserGenerator
-            translateLabel: true
-          )
-         (MenuItem
-            activeHelpKey: toolsInternationalLanguageTranslationEditor
-            label: 'International Language Translation Editor'
-            itemValue: startInternationalLanguageTranslationEditor
-            translateLabel: true
-            labelImage: (ResourceRetriever ToolbarIconLibrary languagesIcon 'International Language Translation Editor')
-          )
-         (MenuItem
             label: 'SQL Workspace'
             itemValue: startSQLWorkspace
             translateLabel: true
             isVisible: sqlWorkspaceItemVisible
           )
          (MenuItem
-            label: '-'
-          )
-         (MenuItem
             activeHelpKey: fileApplicationBuilder
             label: 'Application Packager (exe-Builder)'
             itemValue: openApplication:
@@ -2801,6 +2820,14 @@
             label: '-'
           )
          (MenuItem
+            label: 'Recently Opened'
+            translateLabel: true
+            submenuChannel: recentlyOpenedApplicationsMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
             activeHelpKey: toolsMisc
             label: 'Misc'
             nameKey: misc
@@ -4152,6 +4179,32 @@
     ^menu
 !
 
+recentlyOpenedApplicationsMenu
+    |menu appHistory|
+
+    appHistory := ApplicationModel recentlyOpenedApplications.
+    appHistory isEmpty ifTrue:[^nil].
+
+    menu := Menu new receiver: self.
+    menu addItemGroup: 
+        (appHistory collect:[:appClassName|
+            MenuItem new 
+                label: (Smalltalk classNamed:appClassName) nameWithoutPrefix; 
+                value: #openApplication:; 
+                argument: appClassName. 
+        ]
+    ).
+    menu addItem: (MenuItem new 
+                        label: 'Clear History'; 
+                        value: [ ApplicationModel forgetRecentlyOpenedApplications ]; 
+                        translateLabel: true;
+                        enabled:(appHistory notEmpty);
+                        activeHelpKey: #historyEmptyMenu).
+
+    menu findGuiResourcesIn:self.
+    ^menu
+!
+
 startBrowserOnSmallTeamChangesMenu
     "returns a subMenu on the history of the filebrowsers directories"
 
@@ -4671,9 +4724,9 @@
 !NewLauncher class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.398 2009-11-03 16:31:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.399 2009-11-07 13:34:17 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.398 2009-11-03 16:31:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.399 2009-11-07 13:34:17 cg Exp $'
 ! !