--- a/FileDialog.st Wed Mar 26 19:53:55 2003 +0100
+++ b/FileDialog.st Thu Mar 27 09:58:52 2003 +0100
@@ -6,7 +6,8 @@
doubleClickAction cancelLabelHolder okLabelHolder startFilename
result filterField filenameField viewFiles filenameLabelHolder
asLoadDialog newDirectoryVisibilityHolder
- appendButtonVisibleHolder multipleSelect appendWasPressed'
+ appendButtonVisibleHolder multipleSelect appendWasPressed
+ buttonPanelVisibleHolder'
classVariableNames:'LastFileSelectionDirectory'
poolDictionaries:''
category:'Interface-Tools-File'
@@ -584,62 +585,73 @@
#component:
#(#SpecCollection
#collection: #(
- #(#MenuPanelSpec
- #name: 'ToolBar1'
- #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 30 0)
- #tabable: true
- #menu: #toolBarMenu
- #textDefault: true
- )
- #(#SubCanvasSpec
- #name: 'DirectoryTreeBrowser'
- #layout: #(#LayoutFrame 0 0.0 30 0 0 1.0 -107 1)
- #tabable: true
- #hasHorizontalScrollBar: false
- #hasVerticalScrollBar: false
- #majorKey: #DirectoryTreeBrowser
- #createNewApplication: true
- #createNewBuilder: true
- #postBuildCallback: #postBuildTreeBrowser:
- )
- #(#LabelSpec
- #label: 'Filename:'
- #name: 'FilenameLabel'
- #layout: #(#LayoutFrame 3 0 -97 1 73 0 -77 1)
- #translateLabel: true
- #labelChannel: #filenameLabelHolder
- #adjust: #left
- )
- #(#FilenameInputFieldSpec
- #name: 'FilenameEntryField'
- #layout: #(#LayoutFrame 70 0 -96 1 -10 1 -76 1)
- #tabable: true
- #model: #filenameHolder
- #immediateAccept: false
- #acceptOnPointerLeave: false
- #postBuildCallback: #postBuildFileNameField:
- )
- #(#LabelSpec
- #label: 'Filter:'
- #name: 'FilterLabel'
- #layout: #(#LayoutFrame 3 0 -70 1 67 0 -50 1)
- #translateLabel: true
- #adjust: #left
- )
- #(#InputFieldSpec
- #name: 'FilterEntryField'
- #layout: #(#LayoutFrame 70 0 -69 1 -10 1 -49 1)
- #model: #filterHolder
- #immediateAccept: false
- #acceptOnReturn: true
- #acceptOnTab: true
- #acceptOnLostFocus: true
- #acceptOnPointerLeave: false
- #postBuildCallback: #postBuildFilterField:
+ #(#ViewSpec
+ #name: 'FilePart'
+ #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -40 1.0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#MenuPanelSpec
+ #name: 'ToolBar1'
+ #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 30 0)
+ #tabable: true
+ #menu: #toolBarMenu
+ #textDefault: true
+ )
+ #(#SubCanvasSpec
+ #name: 'DirectoryTreeBrowser'
+ #layout: #(#LayoutFrame 0 0.0 30 0 0 1.0 -67 1)
+ #tabable: true
+ #hasHorizontalScrollBar: false
+ #hasVerticalScrollBar: false
+ #majorKey: #DirectoryTreeBrowser
+ #createNewApplication: true
+ #createNewBuilder: true
+ #postBuildCallback: #postBuildTreeBrowser:
+ )
+ #(#LabelSpec
+ #label: 'Filename:'
+ #name: 'FilenameLabel'
+ #layout: #(#LayoutFrame 3 0 -53 1 73 0 -33 1)
+ #translateLabel: true
+ #labelChannel: #filenameLabelHolder
+ #adjust: #left
+ )
+ #(#FilenameInputFieldSpec
+ #name: 'FilenameEntryField'
+ #layout: #(#LayoutFrame 70 0 -52 1 -10 1 -32 1)
+ #tabable: true
+ #model: #filenameHolder
+ #immediateAccept: false
+ #acceptOnPointerLeave: false
+ #postBuildCallback: #postBuildFileNameField:
+ )
+ #(#LabelSpec
+ #label: 'Filter:'
+ #name: 'FilterLabel'
+ #layout: #(#LayoutFrame 3 0 -26 1 67 0 -6 1)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#InputFieldSpec
+ #name: 'FilterEntryField'
+ #layout: #(#LayoutFrame 70 0 -25 1 -10 1 -5 1)
+ #model: #filterHolder
+ #immediateAccept: false
+ #acceptOnReturn: true
+ #acceptOnTab: true
+ #acceptOnLostFocus: true
+ #acceptOnPointerLeave: false
+ #postBuildCallback: #postBuildFilterField:
+ )
+ )
+
+ )
)
#(#HorizontalPanelViewSpec
#name: 'ButtonPanel'
#layout: #(#LayoutFrame 0 0.0 -40 1 0 1 0 1)
+ #visibilityChannel: #buttonPanelVisibleHolder
#horizontalLayout: #fitSpace
#verticalLayout: #center
#horizontalSpace: 3
@@ -772,30 +784,6 @@
!FileDialog methodsFor:'accessing'!
-addButton:aButton
- DialogBox defaultOKButtonAtLeft ifTrue:[
- (self componentAt:#ButtonPanel) addSubView:aButton before:(self okButton)
- ] ifFalse:[
- (self componentAt:#ButtonPanel) addSubView:aButton after:(self okButton)
- ].
-!
-
-appendWasPressed
- "valid after the dialog has been closed: true if append was pressed"
-
- ^ appendWasPressed
-!
-
-asLoadDialog
-
- ^ asLoadDialog
-!
-
-asLoadDialog:aBoolean
-
- asLoadDialog := aBoolean
-!
-
currentSelectedFiles
| selectedFiles|
@@ -816,18 +804,6 @@
directory := something.
!
-doubleClickAction
- "return the value of the instance variable 'doubleClickAction' (automatically generated)"
-
- ^ doubleClickAction
-!
-
-doubleClickAction:something
- "set the value of the instance variable 'doubleClickAction' (automatically generated)"
-
- doubleClickAction := something.
-!
-
initialText
"return the value of the instance variable 'initialText' (automatically generated)"
@@ -840,34 +816,6 @@
initialText := something.
!
-multipleSelect
- "return the value of the instance variable 'pattern' (automatically generated)"
-
- multipleSelect isNil ifTrue:[
- multipleSelect := true.
- ].
- ^ multipleSelect
-!
-
-multipleSelect:aBoolean
- "set the value of the instance variable 'multipleSelect' (automatically generated)"
-
- multipleSelect := aBoolean
-!
-
-newDirectoryVisibilityHolder
- "return the value of the instance variable 'newDirectoryVisibilityHolder' (automatically generated)"
-
- newDirectoryVisibilityHolder isNil ifTrue:[
- newDirectoryVisibilityHolder := true asValue.
- ].
- ^ newDirectoryVisibilityHolder
-!
-
-okButton
- ^ (self componentAt:#okButton)
-!
-
pattern
"return the value of the instance variable 'pattern' (automatically generated)"
@@ -913,12 +861,84 @@
"set the value of the instance variable 'startFilename' (automatically generated)"
startFilename := something.
+! !
+
+!FileDialog methodsFor:'accessing-behavior'!
+
+asLoadDialog
+
+ ^ asLoadDialog
+!
+
+asLoadDialog:aBoolean
+
+ asLoadDialog := aBoolean
+!
+
+doubleClickAction
+ "return the value of the instance variable 'doubleClickAction' (automatically generated)"
+
+ ^ doubleClickAction
+!
+
+doubleClickAction:something
+ "set the value of the instance variable 'doubleClickAction' (automatically generated)"
+
+ doubleClickAction := something.
+!
+
+multipleSelect
+ "return the value of the instance variable 'pattern' (automatically generated)"
+
+ multipleSelect isNil ifTrue:[
+ multipleSelect := true.
+ ].
+ ^ multipleSelect
+!
+
+multipleSelect:aBoolean
+ "set the value of the instance variable 'multipleSelect' (automatically generated)"
+
+ multipleSelect := aBoolean
+! !
+
+!FileDialog methodsFor:'accessing-components'!
+
+addButton:aButton
+ DialogBox defaultOKButtonAtLeft ifTrue:[
+ (self componentAt:#ButtonPanel) addSubView:aButton before:(self okButton)
+ ] ifFalse:[
+ (self componentAt:#ButtonPanel) addSubView:aButton after:(self okButton)
+ ].
+!
+
+okButton
+ ^ (self componentAt:#okButton)
!
treeBrowser
"return the value of the instance variable 'treeBrowser' (automatically generated)"
^ treeBrowser
+! !
+
+!FileDialog methodsFor:'accessing-look'!
+
+hideButtonPanel
+ self buttonPanelVisibleHolder value:false
+!
+
+newDirectoryVisibilityHolder
+ "return the value of the instance variable 'newDirectoryVisibilityHolder' (automatically generated)"
+
+ newDirectoryVisibilityHolder isNil ifTrue:[
+ newDirectoryVisibilityHolder := true asValue.
+ ].
+ ^ newDirectoryVisibilityHolder
+!
+
+showButtonPanel
+ self buttonPanelVisibleHolder value:true
!
viewFiles
@@ -942,6 +962,14 @@
^ appendButtonVisibleHolder
!
+buttonPanelVisibleHolder
+ buttonPanelVisibleHolder isNil ifTrue:[
+ buttonPanelVisibleHolder := true asValue.
+ buttonPanelVisibleHolder onChangeSend:#buttonPanelVisibilityChanged to:self.
+ ].
+ ^ buttonPanelVisibleHolder.
+!
+
cancelLabelHolder
"automatically generated by UIPainter ..."
@@ -1047,6 +1075,20 @@
!FileDialog methodsFor:'change & update'!
+buttonPanelVisibilityChanged
+ |filePart buttonPanel|
+
+ filePart := builder componentAt:#FilePart.
+ buttonPanel := builder componentAt:#ButtonPanel.
+
+ buttonPanelVisibleHolder value ifTrue:[
+ filePart layout bottomOffset:-40
+ ] ifFalse:[
+ filePart layout bottomOffset:0
+ ].
+ filePart containerChangedSize "/ force resize
+!
+
update:something with:aParameter from:changedObject
"Invoked when an object that I depend upon sends a change notification."
@@ -1098,6 +1140,12 @@
!FileDialog methodsFor:'event handling'!
+appendWasPressed
+ "valid after the dialog has been closed: true if append was pressed"
+
+ ^ appendWasPressed
+!
+
processEvent:anEvent
"filter keyboard events.
Return true, if I have eaten the event"
@@ -1144,9 +1192,14 @@
^ super postBuildWith:aBuilder
!
-postOpenWith:aBuilder
+postOpen
"/ self windowGroup addPreEventHook:self.
+
+ self window topView isModal ifFalse:[
+ self hideButtonPanel
+ ].
+
treeBrowser currentFileNameHolder addDependent:self.
treeBrowser doubleClickAction:(self doubleClickAction).
treeBrowser enableBack addDependent:self.
@@ -1165,6 +1218,16 @@
].
self filenameHolder value:(self startFilename asString).
self window label:(resources string:((self initialText) ? 'File Dialog')).
+!
+
+postOpenAsSubcanvasWith:aBuilder
+ self postOpen.
+ ^ super postOpenAsSubcanvasWith:aBuilder
+!
+
+postOpenWith:aBuilder
+
+ self postOpen.
^ super postOpenWith:aBuilder
! !
@@ -1275,5 +1338,5 @@
!FileDialog class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.27 2003-03-17 13:38:27 martin Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.28 2003-03-27 08:58:52 cg Exp $'
! !