merged in jv's chenges
authorClaus Gittinger <cg@exept.de>
Wed, 05 Feb 2014 19:59:46 +0100
changeset 13854 4b62c02ef738
parent 13853 002e319d4027
child 13855 98731325dba3
merged in jv's chenges
FileBrowserV2.st
--- a/FileBrowserV2.st	Wed Feb 05 19:59:44 2014 +0100
+++ b/FileBrowserV2.st	Wed Feb 05 19:59:46 2014 +0100
@@ -13,7 +13,8 @@
 
 AbstractFileBrowser subclass:#FileBrowserV2
 	instanceVariableNames:'fileEntryFieldHolder pathEntryField previewProcess
-		listOfDeviceDrives selectedDeviceDrive imgView lineLabel'
+		listOfDeviceDrives selectedDeviceDrive imgView lineLabel
+		bookmarkBarVisibleHolder bookmarkHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Tools-File'
@@ -211,7 +212,9 @@
 
     FileBrowserV2 isNil ifTrue:[^ self].
 
-    action := (MessageSend receiver:(Smalltalk at:self name) selector:#open).
+    "JV@2012-04-03: Changed to reflect UserPreferences"
+    "/action := (MessageSend receiver:(Smalltalk at:self name) selector:#open).
+    action := [ UserPreferences current fileBrowserClass open].
 
     icon := [self defaultIcon]. "/ self defaultIcon magnifiedTo:28@28.
 
@@ -262,6 +265,8 @@
      self installInLauncher
      self removeFromLauncher
     "
+
+    "Modified: / 03-04-2012 / 11:06:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 removeFromLauncher
@@ -342,6 +347,30 @@
 )
 
     "Modified: / 06-10-2011 / 14:37:12 / cg"
+!
+
+helpSpec
+    "This resource specification was automatically generated
+     by the UIHelpTool of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIHelpTool may not be able to read the specification."
+
+    "
+     UIHelpTool openOnClass:FileBrowserV2    
+    "
+
+    <resource: #help>
+
+    ^ super helpSpec addPairsFrom:#(
+
+#addTerminal
+''
+
+#make
+''
+
+)
 ! !
 
 !FileBrowserV2 class methodsFor:'image specs'!
@@ -389,9 +418,9 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:FileBrowserV2 andSelector:#windowSpec
-     FileBrowserV2 new openInterface:#windowSpec
-     FileBrowserV2 open
+     UIPainter new openOnClass:FileBrowserV3 andSelector:#windowSpec
+     FileBrowserV3 new openInterface:#windowSpec
+     FileBrowserV3 open
     "
 
     <resource: #canvas>
@@ -404,7 +433,7 @@
           label: FileBrowser
           name: FileBrowser
           min: (Point 10 10)
-          bounds: (Rectangle 0 0 800 768)
+          bounds: (Rectangle 0 0 800 600)
           menu: mainMenu
           icon: defaultIcon
         )
@@ -432,6 +461,7 @@
                  (MenuPanelSpec
                     name: 'ToolBar'
                     layout: (LayoutFrame 13 0 0 0 0 1 40 0)
+                    level: 1
                     menu: toolBarMainMenu
                     textDefault: true
                   )
@@ -440,8 +470,51 @@
               )
             )
            (ViewSpec
+              name: 'BookmarkBar'
+              layout: (LayoutFrame 0 0 40 0 0 1 66 0)
+              visibilityChannel: bookmarkBarVisibleHolder
+              component: 
+             (SpecCollection
+                collection: (
+                 (ActionButtonSpec
+                    label: 'hideToolBarIcon'
+                    name: 'Button1'
+                    layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+                    activeHelpKey: hideToolBar
+                    hasCharacterOrientedLabel: false
+                    translateLabel: true
+                    model: hideBookmarkBar
+                  )
+                 (SubCanvasSpec
+                    name: 'Bookmarks'
+                    layout: (LayoutFrame 13 0 0 0 0 1 0 1)
+                    level: 1
+                    hasHorizontalScrollBar: false
+                    hasVerticalScrollBar: false
+                    miniScrollerHorizontal: false
+                    majorKey: BookmarkBar
+                    subAspectHolders: 
+                   (Array
+                      
+                     (SubChannelInfoSpec
+                        subAspect: bookmarkHolder
+                        aspect: bookmarkHolder
+                      ) 
+                     (SubChannelInfoSpec
+                        subAspect: bookmarksHolder
+                        aspect: bookmarkListHolder
+                      )
+                    )
+                    createNewApplication: true
+                    createNewBuilder: true
+                  )
+                 )
+               
+              )
+            )
+           (ViewSpec
               name: 'FilenameEntryFieldBox'
-              layout: (LayoutFrame 0 0 40 0 0 1 65 0)
+              layout: (LayoutFrame 0 0 67 0 0 1 92 0)
               level: 0
               visibilityChannel: filenameEntryFieldVisibleHolder
               component: 
@@ -501,12 +574,10 @@
                                       translateLabel: true
                                       adjust: left
                                       postBuildCallback: postBuildPathViewBox:
-                                      activeHelpKey: fileFilter
                                     )
                                    (ComboBoxSpec
                                       name: 'FilterSelectionBox'
                                       layout: (LayoutFrame 40 0 0 0 0 1 0 1)
-                                      activeHelpKey: fileFilter
                                       model: filterModel
                                       immediateAccept: true
                                       acceptOnPointerLeave: false
@@ -535,7 +606,7 @@
             )
            (#'FileBrowserV2UISpecifications::PanelSpec'
               name: 'BrowserBox'
-              layout: (LayoutFrame 0 0.0 65 0.0 0 1.0 -26 1.0)
+              layout: (LayoutFrame 0 0.0 92 0.0 0 1.0 -26 1.0)
               level: 0
               showHandle: true
               snapMode: both
@@ -593,7 +664,7 @@
             )
            (ViewSpec
               name: 'InfoBox'
-              layout: (LayoutFrame 0 0 -26 1 -16 1 0 1)
+              layout: (LayoutFrame 0 0 -26 1 0 1 0 1)
               level: 0
               visibilityChannel: infoBarVisibleHolder
               component: 
@@ -699,12 +770,11 @@
                  )
                
               )
-              keepSpaceForOSXResizeHandleH: true
             )
            (LabelSpec
               label: 'Preview'
               name: 'PreviewLabel'
-              layout: (LayoutFrame 0 0.5 39 0 100 0.5 61 0)
+              layout: (LayoutFrame 0 0.5 93 0 100 0.5 115 0)
               level: 0
               borderWidth: 1
               visibilityChannel: previewVisibleHolder
@@ -713,7 +783,7 @@
             )
            (ArbitraryComponentSpec
               name: 'Preview'
-              layout: (LayoutFrame 0 0.5 63 0 -147 1 -319 1)
+              layout: (LayoutFrame 0 0.5 116 0 -147 1 -266 1)
               level: 1
               visibilityChannel: previewVisibleHolder
               hasBorder: false
@@ -722,7 +792,7 @@
            (ActionButtonSpec
               label: 'closePreviewButtonImage'
               name: 'ClosePreviewButton'
-              layout: (LayoutFrame -169 1 39 0 -147 1 61 0)
+              layout: (LayoutFrame -169 1 94 0 -147 1 116 0)
               visibilityChannel: previewVisibleHolder
               hasCharacterOrientedLabel: false
               translateLabel: true
@@ -826,158 +896,140 @@
 
     <resource: #menu>
 
-    ^
+    ^ 
      #(Menu
-	(
-	 (MenuItem
-	    label: 'Browser'
-	    translateLabel: true
-	    submenuChannel: browserMenu
-	  )
-	 (MenuItem
-	    label: 'Directory'
-	    translateLabel: true
-	    submenuChannel: directoryMenu
-	  )
-	 (MenuItem
-	    label: 'File'
-	    translateLabel: true
-	    submenuChannel: fileMenu
-	  )
-	 (MenuItem
-	    label: 'Edit'
-	    translateLabel: true
-	    submenuChannel: editMenu
-	  )
-	 (MenuItem
-	    label: 'View'
-	    translateLabel: true
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'Details'
-		  translateLabel: true
-		  submenuChannel: viewInContentsBrowserMenu
-		)
-	       (MenuItem
-		  label: 'Sort'
-		  translateLabel: true
-		  submenuChannel: sortMenu
-		)
-	       (MenuItem
-		  label: 'Show'
-		  translateLabel: true
-		  submenuChannel: showMenuSpec
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Toolbar'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: toolBarVisibleHolder
-		)
-	       (MenuItem
-		  label: 'Path Entry && Filter'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: filenameEntryFieldVisibleHolder
-		)
-	       (MenuItem
-		  label: 'Info'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: infoBarVisibleHolder
-		)
-	       (MenuItem
-		  label: 'Tags'
-		  translateLabel: true
-		  indication: tagsBrowserVisibleHolder
-		)
-	       (MenuItem
-		  label: 'Preview'
-		  translateLabel: true
-		  hideMenuOnActivated: false
-		  indication: previewVisibleHolder
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'Update'
-		  itemValue: updateCurrentDirectory
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 (MenuItem
-	    label: 'Tools'
-	    translateLabel: true
-	    submenuChannel: toolsMenuSpec
-	  )
-	 (MenuItem
-	    label: 'CVS'
-	    translateLabel: true
-	    isVisible: cvsMenusAreShown
-	    submenuChannel: cvsMenu
-	  )
-	 (MenuItem
-	    label: 'SVN'
-	    translateLabel: true
-	    isVisible: svnMenusAreShown
-	    submenuChannel: svnMenu
-	  )
-	 (MenuItem
-	    label: 'Mercurial'
-	    translateLabel: true
-	    isVisible: mercurialMenusAreShown
-	    submenuChannel: mercurialMenu
-	  )
-	 (MenuItem
-	    label: 'Perforce'
-	    translateLabel: true
-	    isVisible: perforceMenusAreShown
-	    submenuChannel: perforceMenu
-	  )
-	 (MenuItem
-	    label: 'Extras'
-	    translateLabel: true
-	    submenuChannel: extraMenu
-	  )
-	 (MenuItem
-	    label: 'MENU_Help'
-	    translateLabel: true
-	    startGroup: conditionalRight
-	    submenu:
-	   (Menu
-	      (
-	       (MenuItem
-		  label: 'FileBrowser Documentation'
-		  itemValue: openHTMLDocument:
-		  translateLabel: true
-		  argument: 'tools/fbrowserV2/TOP.html'
-		)
-	       (MenuItem
-		  label: '-'
-		)
-	       (MenuItem
-		  label: 'About FileBrowser...'
-		  itemValue: openAboutThisApplication
-		  translateLabel: true
-		)
-	       )
-	      nil
-	      nil
-	    )
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            label: 'Browser'
+            translateLabel: true
+            submenuChannel: browserMenu
+          )
+         (MenuItem
+            label: 'Directory'
+            translateLabel: true
+            submenuChannel: directoryMenu
+          )
+         (MenuItem
+            label: 'File'
+            translateLabel: true
+            submenuChannel: fileMenu
+          )
+         (MenuItem
+            label: 'Edit'
+            translateLabel: true
+            submenuChannel: editMenu
+          )
+         (MenuItem
+            label: 'View'
+            translateLabel: true
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  label: 'Details'
+                  translateLabel: true
+                  submenuChannel: viewInContentsBrowserMenu
+                )
+               (MenuItem
+                  label: 'Sort'
+                  translateLabel: true
+                  submenuChannel: sortMenu
+                )
+               (MenuItem
+                  label: 'Show'
+                  translateLabel: true
+                  submenuChannel: showMenuSpec
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Toolbar'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: toolBarVisibleHolder
+                )
+               (MenuItem
+                  label: 'Path Entry && Filter'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: filenameEntryFieldVisibleHolder
+                )
+               (MenuItem
+                  label: 'Info'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: infoBarVisibleHolder
+                )
+               (MenuItem
+                  label: 'Tags'
+                  translateLabel: true
+                  indication: tagsBrowserVisibleHolder
+                )
+               (MenuItem
+                  label: 'Preview'
+                  translateLabel: true
+                  hideMenuOnActivated: false
+                  indication: previewVisibleHolder
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Update'
+                  itemValue: updateCurrentDirectory
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Tools'
+            translateLabel: true
+            submenuChannel: toolsMenuSpec
+          )
+         (MenuItem
+            label: 'Source Code Management'
+            translateLabel: true
+            submenuChannel: scmMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Extras'
+            translateLabel: true
+            submenuChannel: extraMenu
+          )
+         (MenuItem
+            label: 'MENU_Help'
+            translateLabel: true
+            startGroup: conditionalRight
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  label: 'FileBrowser Documentation'
+                  itemValue: openHTMLDocument:
+                  translateLabel: true
+                  argument: 'tools/fbrowserV2/TOP.html'
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'About FileBrowser...'
+                  itemValue: openAboutThisApplication
+                  translateLabel: true
+                )
+               )
+              nil
+              nil
+            )
+          )
+         )
+        nil
+        nil
       )
 !
 
@@ -1010,12 +1062,264 @@
 !
 
 toolBarMainMenu
+    <resource: #menu>
+
+    ^ self toolBarMainMenu_new
+
+    "Modified: / 05-02-2014 / 11:43:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+toolBarMainMenu_new
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
 
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
+    "
+     MenuEditor new openOnClass:FileBrowserV3 andSelector:#toolBarMainMenu
+     (Menu new fromLiteralArrayEncoding:(FileBrowserV3 toolBarMainMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            activeHelpKey: directoryBack
+            enabled: enableBack
+            label: 'Back'
+            itemValue: doBack
+            translateLabel: true
+            isButton: true
+            submenuChannel: menuDirHistoryBack
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
+          )
+         (MenuItem
+            label: ''
+          )
+         (MenuItem
+            activeHelpKey: directoryForward
+            enabled: enableForward
+            label: 'Forward'
+            itemValue: doForward
+            translateLabel: true
+            isButton: true
+            submenuChannel: menuDirHistoryForward
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: directoryUp
+            enabled: enableDirectoryUp
+            label: 'DirectoryUp'
+            itemValue: doGoDirectoryUp
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary directoryUpIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileHome
+            enabled: enableHome
+            label: 'Home'
+            itemValue: doGotoHomeDirectory
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary homeIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoDefaultDirectory
+            enabled: enableGotoDefaultDirectory
+            label: 'Current'
+            itemValue: doGotoDefaultDirectory
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary currentDirectoryIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoSmalltalkDirectory
+            enabled: enableGotoSmalltalkDirectory
+            label: 'ST/X Default'
+            itemValue: doGotoSmalltalkDirectory
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary stxHomeIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoBookmark
+            label: 'Bookmarks'
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            submenuChannel: gotoBookmarksMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary directoryBookmarksIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileHistory
+            enabled: enableFileHistory
+            label: 'File History'
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            submenuChannel: menuFileHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: searchFile
+            label: 'Search File'
+            itemValue: doOpenSearchFile
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary searchFileIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: cutFile
+            enabled: hasSelection
+            label: 'Cut'
+            itemValue: cutFiles
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary cutFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: copyFile
+            enabled: hasSelection
+            label: 'Copy'
+            itemValue: copyFiles
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary copyFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: pasteFile
+            enabled: canPaste
+            label: 'Paste'
+            itemValue: pasteFiles
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary pasteFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: deleteFile
+            enabled: hasSelection
+            label: 'Delete'
+            itemValue: deleteFiles
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary deleteFileIcon)
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            activeHelpKey: editFile
+            label: 'Edit File'
+            itemValue: doShowFileContents
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary editFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileIn
+            label: 'File In'
+            itemValue: fileFileIn
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary fileInIcon)
+          )
+         (MenuItem
+            activeHelpKey: openChangeBrowser
+            enabled: hasFileSelection
+            label: 'Changes Browser'
+            itemValue: openChangesBrowser
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon)
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            activeHelpKey: addTerminal
+            label: 'VT100'
+            itemValue: doAddTerminal
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary shellTerminalIcon)
+          )
+         (MenuItem
+            activeHelpKey: make
+            enabled: canMake
+            label: 'Make'
+            itemValue: doMake
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary make24x24Icon3)
+          )
+         (MenuItem
+            activeHelpKey: viewDetails
+            label: 'viewDetails'
+            translateLabel: true
+            isButton: true
+            startGroup: right
+            hideMenuOnActivated: false
+            indication: viewDetails
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
+          )
+         (MenuItem
+            activeHelpKey: viewDetails
+            label: 'viewDetails'
+            translateLabel: true
+            isButton: true
+            startGroup: right
+            isVisible: false
+            indication: viewDetails
+            submenuChannel: viewDetailsMenuSpec
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
+          )
+         (MenuItem
+            activeHelpKey: selectDetails
+            label: ''
+            isButton: true
+            startGroup: right
+            submenuChannel: viewDetailsMenuSpec
+            labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
+          )
+         )
+        nil
+        nil
+      )
+
+    "Created: / 05-02-2014 / 11:42:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+toolBarMainMenu_old
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+
     "
      MenuEditor new openOnClass:FileBrowserV2 andSelector:#toolBarMainMenu
      (Menu new fromLiteralArrayEncoding:(FileBrowserV2 toolBarMainMenu)) startUp
@@ -1025,221 +1329,223 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    activeHelpKey: directoryBack
-	    enabled: enableBack
-	    label: 'Back'
-	    itemValue: doBack
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: menuDirHistoryBack
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
-	  )
-	 (MenuItem
-	    label: ''
-	  )
-	 (MenuItem
-	    activeHelpKey: directoryForward
-	    enabled: enableForward
-	    label: 'Forward'
-	    itemValue: doForward
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: menuDirHistoryForward
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: directoryUp
-	    enabled: enableDirectoryUp
-	    label: 'DirectoryUp'
-	    itemValue: doGoDirectoryUp
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary directoryUpIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileHome
-	    enabled: enableHome
-	    label: 'Home'
-	    itemValue: doGotoHomeDirectory
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary homeIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileGotoDefaultDirectory
-	    enabled: enableGotoDefaultDirectory
-	    label: 'Current'
-	    itemValue: doGotoDefaultDirectory
-	    translateLabel: true
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary currentDirectoryIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileGotoSmalltalkDirectory
-	    enabled: enableGotoSmalltalkDirectory
-	    label: 'ST/X Default'
-	    itemValue: doGotoSmalltalkDirectory
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary stxHomeIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileGotoBookmark
-	    label: 'Bookmarks'
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: gotoBookmarksMenu
-	    labelImage: (ResourceRetriever ToolbarIconLibrary directoryBookmarksIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileHistory
-	    enabled: enableFileHistory
-	    label: 'File History'
-	    translateLabel: true
-	    isButton: true
-	    submenuChannel: menuFileHistory
-	    labelImage: (ResourceRetriever ToolbarIconLibrary historyIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: searchFile
-	    label: 'Search File'
-	    itemValue: doOpenSearchFile
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary searchFileIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: cutFile
-	    enabled: hasSelection
-	    label: 'Cut'
-	    itemValue: cutFiles
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary cutFileIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: copyFile
-	    enabled: hasSelection
-	    label: 'Copy'
-	    itemValue: copyFiles
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary copyFileIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: pasteFile
-	    enabled: canPaste
-	    label: 'Paste'
-	    itemValue: pasteFiles
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary pasteFileIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: deleteFile
-	    enabled: hasSelection
-	    label: 'Delete'
-	    itemValue: deleteFiles
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary deleteFileIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    activeHelpKey: editFile
-	    label: 'Edit File'
-	    itemValue: doShowFileContents
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary editFileIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: fileIn
-	    label: 'File In'
-	    itemValue: fileFileIn
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary fileInIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: openChangeBrowser
-	    enabled: hasFileSelection
-	    label: 'Changes Browser'
-	    itemValue: openChangesBrowser
-	    translateLabel: true
-	    isButton: true
-	    labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon)
-	  )
-	 (MenuItem
-	    label: '-'
-	    isVisible: false
-	  )
-	 (MenuItem
-	    activeHelpKey: addTerminal
-	    label: 'VT100'
-	    itemValue: doAddTerminal
-	    translateLabel: true
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary shellTerminalIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: make
-	    enabled: canMake
-	    label: 'Make'
-	    itemValue: doMake
-	    translateLabel: true
-	    isButton: true
-	    isVisible: false
-	    labelImage: (ResourceRetriever ToolbarIconLibrary makeIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: viewDetails
-	    label: 'viewDetails'
-	    translateLabel: true
-	    isButton: true
-	    startGroup: right
-	    hideMenuOnActivated: false
-	    indication: viewDetails
-	    labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: viewDetails
-	    label: 'viewDetails'
-	    translateLabel: true
-	    isButton: true
-	    startGroup: right
-	    isVisible: false
-	    indication: viewDetails
-	    submenuChannel: viewDetailsMenuSpec
-	    labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
-	  )
-	 (MenuItem
-	    activeHelpKey: selectDetails
-	    label: ''
-	    isButton: true
-	    startGroup: right
-	    submenuChannel: viewDetailsMenuSpec
-	    labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            activeHelpKey: directoryBack
+            enabled: enableBack
+            label: 'Back'
+            itemValue: doBack
+            translateLabel: true
+            isButton: true
+            submenuChannel: menuDirHistoryBack
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
+          )
+         (MenuItem
+            label: ''
+          )
+         (MenuItem
+            activeHelpKey: directoryForward
+            enabled: enableForward
+            label: 'Forward'
+            itemValue: doForward
+            translateLabel: true
+            isButton: true
+            submenuChannel: menuDirHistoryForward
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: directoryUp
+            enabled: enableDirectoryUp
+            label: 'DirectoryUp'
+            itemValue: doGoDirectoryUp
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary directoryUpIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileHome
+            enabled: enableHome
+            label: 'Home'
+            itemValue: doGotoHomeDirectory
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary homeIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoDefaultDirectory
+            enabled: enableGotoDefaultDirectory
+            label: 'Current'
+            itemValue: doGotoDefaultDirectory
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary currentDirectoryIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoSmalltalkDirectory
+            enabled: enableGotoSmalltalkDirectory
+            label: 'ST/X Default'
+            itemValue: doGotoSmalltalkDirectory
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary stxHomeIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileGotoBookmark
+            label: 'Bookmarks'
+            translateLabel: true
+            isButton: true
+            submenuChannel: gotoBookmarksMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary directoryBookmarksIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileHistory
+            enabled: enableFileHistory
+            label: 'File History'
+            translateLabel: true
+            isButton: true
+            submenuChannel: menuFileHistory
+            labelImage: (ResourceRetriever ToolbarIconLibrary historyIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: searchFile
+            label: 'Search File'
+            itemValue: doOpenSearchFile
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary searchFileIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: cutFile
+            enabled: hasSelection
+            label: 'Cut'
+            itemValue: cutFiles
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary cutFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: copyFile
+            enabled: hasSelection
+            label: 'Copy'
+            itemValue: copyFiles
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary copyFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: pasteFile
+            enabled: canPaste
+            label: 'Paste'
+            itemValue: pasteFiles
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary pasteFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: deleteFile
+            enabled: hasSelection
+            label: 'Delete'
+            itemValue: deleteFiles
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary deleteFileIcon)
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            activeHelpKey: editFile
+            label: 'Edit File'
+            itemValue: doShowFileContents
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary editFileIcon)
+          )
+         (MenuItem
+            activeHelpKey: fileIn
+            label: 'File In'
+            itemValue: fileFileIn
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary fileInIcon)
+          )
+         (MenuItem
+            activeHelpKey: openChangeBrowser
+            enabled: hasFileSelection
+            label: 'Changes Browser'
+            itemValue: openChangesBrowser
+            translateLabel: true
+            isButton: true
+            labelImage: (ResourceRetriever ToolbarIconLibrary startChangesBrowserIcon)
+          )
+         (MenuItem
+            label: '-'
+            isVisible: false
+          )
+         (MenuItem
+            activeHelpKey: addTerminal
+            label: 'VT100'
+            itemValue: doAddTerminal
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary shellTerminalIcon)
+          )
+         (MenuItem
+            activeHelpKey: make
+            enabled: canMake
+            label: 'Make'
+            itemValue: doMake
+            translateLabel: true
+            isButton: true
+            isVisible: false
+            labelImage: (ResourceRetriever ToolbarIconLibrary makeIcon)
+          )
+         (MenuItem
+            activeHelpKey: viewDetails
+            label: 'viewDetails'
+            translateLabel: true
+            isButton: true
+            startGroup: right
+            hideMenuOnActivated: false
+            indication: viewDetails
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
+          )
+         (MenuItem
+            activeHelpKey: viewDetails
+            label: 'viewDetails'
+            translateLabel: true
+            isButton: true
+            startGroup: right
+            isVisible: false
+            indication: viewDetails
+            submenuChannel: viewDetailsMenuSpec
+            labelImage: (ResourceRetriever ToolbarIconLibrary viewDetailsIcon)
+          )
+         (MenuItem
+            activeHelpKey: selectDetails
+            label: ''
+            isButton: true
+            startGroup: right
+            submenuChannel: viewDetailsMenuSpec
+            labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
+          )
+         )
+        nil
+        nil
       )
+
+    "Created: / 05-02-2014 / 11:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !FileBrowserV2 methodsFor:'actions'!
@@ -1258,6 +1564,13 @@
     self class openWithAspects:aspects withExtent:(self builder window extent).
 !
 
+hideBookmarkBar
+
+    self bookmarkBarVisibleHolder value
+
+    "Created: / 04-04-2012 / 12:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 hideFilenameEntryField
     self filenameEntryFieldVisibleHolder value:false.
 !
@@ -1266,6 +1579,13 @@
     self toolBarVisibleHolder value:false.
 !
 
+switchToBookmarkEntry: bookmark
+
+    self gotoFile: bookmark path asFilename
+
+    "Created: / 20-04-2012 / 18:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 toggleFileDetailsFor:anItem
     |viewDetails|
 
@@ -1283,6 +1603,53 @@
 
 !FileBrowserV2 methodsFor:'aspects'!
 
+bookmarkBarVisibleHolder
+    "return/create the 'bookmarkBarVisibleHolder' value holder (automatically generated)"
+
+    bookmarkBarVisibleHolder isNil ifTrue:[
+        bookmarkBarVisibleHolder := true asValue.
+        bookmarkBarVisibleHolder addDependent:self.
+    ].
+    ^ bookmarkBarVisibleHolder
+
+    "Modified: / 10-06-2011 / 23:56:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+bookmarkBarVisibleHolder:something
+    "set the 'bookmarkBarVisibleHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    bookmarkBarVisibleHolder notNil ifTrue:[
+        oldValue := bookmarkBarVisibleHolder value.
+        bookmarkBarVisibleHolder removeDependent:self.
+    ].
+    bookmarkBarVisibleHolder := something.
+    bookmarkBarVisibleHolder notNil ifTrue:[
+        bookmarkBarVisibleHolder addDependent:self.
+    ].
+    newValue := bookmarkBarVisibleHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:bookmarkBarVisibleHolder.
+    ].
+!
+
+bookmarkHolder
+    "return/create the 'bookmarkHolder' value holder (automatically generated)"
+
+    bookmarkHolder isNil ifTrue:[
+        bookmarkHolder := ValueHolder new.
+    ].
+    ^ bookmarkHolder
+!
+
+bookmarkListHolder
+
+    ^BookmarkList forFileBrowser
+
+    "Created: / 08-06-2011 / 12:16:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 busyLabelHolder
     ^ self
 	aspectFor:#busyLabelHolder
@@ -1343,6 +1710,14 @@
       ]
 !
 
+currentDirectoryDisplayed
+    "Return a directory that is currently displayed in the browser"
+
+    ^self fileEntryFieldHolder value asFilename
+
+    "Modified: / 14-01-2013 / 11:58:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 cursorColLabelHolder
     ^ self
 	aspectFor:#cursorColLabelHolder
@@ -1487,8 +1862,10 @@
             self window label:(dir baseName)
         ]
     ].
+    self updateBookmark
 
     "Modified: / 06-07-2011 / 09:41:50 / cg"
+    "Modified: / 05-02-2014 / 11:45:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileEntryFieldHolderChanged
@@ -1641,6 +2018,18 @@
     "Modified: / 01-10-2007 / 19:21:35 / cg"
 !
 
+updateBookmark
+
+    | file bookmark |
+    file := fileEntryFieldHolder value.
+    file notEmptyOrNil ifTrue:[
+        bookmark := Bookmark forFile: file.
+    ].
+    self bookmarkHolder value: bookmark.
+
+    "Created: / 13-04-2012 / 12:37:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 updatePreview
     |previewLabel shownImage plug closePreviewButton|
 
@@ -1681,23 +2070,29 @@
 !
 
 updateToolVisibility
-    |builder toolBar infoBar filenameEntryField vPanel topOffset bottomOffset
-     toolBarVisible filenameEntryFieldVisible infoBarVisible d|
+    |bldr toolBar bookmarkBar infoBar filenameEntryField vPanel topOffset bottomOffset
+     toolBarVisible bookmarkBarVisible filenameEntryFieldVisible infoBarVisible d|
 
-    builder := self builder.
+    bldr := self builder.
 
     topOffset := 0.
     bottomOffset := 0.
 
     toolBarVisible := self toolBarVisibleHolder value.
     toolBarVisible ifTrue:[
-        toolBar := builder componentAt:#ToolbarBox.
+        toolBar := bldr componentAt:#ToolbarBox.
         topOffset := topOffset + toolBar height.
     ].
 
+    bookmarkBarVisible := self bookmarkBarVisibleHolder value.
+    bookmarkBarVisible ifTrue:[
+        bookmarkBar := bldr componentAt:#Bookmarks.
+        topOffset := topOffset + (bookmarkBar height max: 25)
+    ].
+
     filenameEntryFieldVisible := self filenameEntryFieldVisibleHolder value.
     filenameEntryFieldVisible ifTrue:[
-        filenameEntryField := builder componentAt:#FilenameEntryFieldBox.
+        filenameEntryField := bldr componentAt:#FilenameEntryFieldBox.
         d := filenameEntryField layout bottomOffset - filenameEntryField layout topOffset.
         filenameEntryField layout topOffset:topOffset bottomOffset:topOffset + d.
         topOffset := topOffset + filenameEntryField height.
@@ -1708,17 +2103,18 @@
 
     infoBarVisible := self infoBarVisibleHolder value.
     infoBarVisible ifTrue:[
-        infoBar := builder componentAt:#InfoBox.
+        infoBar := bldr componentAt:#InfoBox.
         bottomOffset := bottomOffset - infoBar height.
     ].
 
-    vPanel := builder componentAt:#BrowserBox.
-    vPanel layout 
-        topOffset:topOffset+1
-        bottomOffset:bottomOffset-1.
+    vPanel := bldr componentAt:#BrowserBox.
+    vPanel layout topOffset:topOffset+1.
+    vPanel layout bottomOffset:bottomOffset-1.
     vPanel container notNil ifTrue:[
         vPanel containerChangedSize.
     ].
+
+    "Modified: / 03-04-2012 / 22:23:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !FileBrowserV2 methodsFor:'event handling'!
@@ -2030,7 +2426,7 @@
 !FileBrowserV2 class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.213 2013-11-20 09:28:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2.st,v 1.214 2014-02-05 18:59:46 cg Exp $'
 ! !