diff -r 3e5f6ddd50d8 -r 545cd2c65dfa FileDialog.st --- 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 $' ! !