diff -r 1b7c88d91de8 -r 204da2f7db8e FileDialog.st --- a/FileDialog.st Fri May 31 00:47:36 2013 +0100 +++ b/FileDialog.st Mon Jun 03 18:43:00 2013 +0100 @@ -19,7 +19,7 @@ appendButtonVisibleHolder appendWasPressed buttonPanelVisibleHolder appendLabelHolder browseVisibleHolder selectedDeviceDrive listOfDeviceDrives rootDirectoryHolder - initialRoot' + initialRoot verticalView' classVariableNames:'LastExtent' poolDictionaries:'' category:'Interface-Tools-File' @@ -80,6 +80,24 @@ fd multipleSelect:true. fd open [exEnd] + + Adding custom components: + [exBegin] + DialogBox aboutToOpenBoxNotificationSignal handle:[:ex | + | fmtBox | + + fmtBox := ComboListView new. + fmtBox list: #('Comma Separated Values (.csv)' + 'Microsoft Excel (.xls)' + 'Microsoft Excel XML (.xlsx)') . + fmtBox model:'Select...' asValue. + ex application addComponent: fmtBox. + ex proceed. + ] do:[ + Dialog requestFileName: 'Save file as...' + ] + [exEnd] + " ! @@ -745,133 +763,149 @@ label: 'FileDialog' name: 'FileDialog' min: (Point 10 10) - bounds: (Rectangle 0 0 407 400) + bounds: (Rectangle 0 0 400 400) menu: mainMenu performer: treeBrowser ) component: (SpecCollection collection: ( - (ViewSpec - name: 'FilePart' - layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 -32 1.0) + (VerticalPanelViewSpec + name: 'VerticalPanel' + layout: (LayoutFrame 0 0 0 0 0 1 -32 1) + horizontalLayout: fit + verticalLayout: topSpaceFit + horizontalSpace: 0 + verticalSpace: 3 + elementsChangeSize: true component: (SpecCollection collection: ( - (MenuPanelSpec - name: 'ToolBar1' - layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 40 0) - tabable: true - menu: toolBarMenu - textDefault: true - ) - (VariableHorizontalPanelSpec - name: 'DeviceAndFilterPanel' - layout: (LayoutFrame 0 0 40 0 0 1 70 0) - level: 1 - showHandle: true + (ViewSpec + name: 'FilePart' component: (SpecCollection collection: ( - (ViewSpec - name: 'Box1' + (MenuPanelSpec + name: 'ToolBar1' + layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 40 0) + tabable: true + menu: toolBarMenu + textDefault: true + ) + (VariableHorizontalPanelSpec + name: 'DeviceAndFilterPanel' + layout: (LayoutFrame 0 0 40 0 0 1 70 0) + level: 1 + showHandle: true component: (SpecCollection collection: ( - (ComboListSpec - name: 'ComboList1' - layout: (LayoutFrame 1 0 1 0.0 -1 1 -1 1) - visibilityChannel: driveSelectorVisible - model: selectedDeviceDrive - comboList: listOfDeviceDrives - useIndex: false - hidePullDownMenuButton: false + (ViewSpec + name: 'Box1' + component: + (SpecCollection + collection: ( + (ComboListSpec + name: 'ComboList1' + layout: (LayoutFrame 1 0 1 0.0 -1 1 -1 1) + visibilityChannel: driveSelectorVisible + model: selectedDeviceDrive + comboList: listOfDeviceDrives + useIndex: false + hidePullDownMenuButton: false + ) + ) + + ) + ) + (ViewSpec + name: 'Box2' + component: + (SpecCollection + collection: ( + (LabelSpec + label: 'Filter:' + name: 'FilterLabel' + layout: (LayoutFrame 1 0 2 0 59 0 -2 1) + translateLabel: true + adjust: right + ) + (InputFieldSpec + name: 'FilterEntryField' + layout: (LayoutFrame 60 0 -27 1 -2 1 -2 1) + model: filterHolder + immediateAccept: true + acceptOnReturn: true + acceptOnTab: true + acceptOnLostFocus: true + acceptOnPointerLeave: false + postBuildCallback: postBuildFilterField: + ) + ) + + ) ) ) ) + handles: (Any 0.2972972972973 1.0) ) - (ViewSpec - name: 'Box2' - component: - (SpecCollection - collection: ( - (LabelSpec - label: 'Filter:' - name: 'FilterLabel' - layout: (LayoutFrame 1 0 2 0 59 0 -2 1) - translateLabel: true - adjust: right - ) - (InputFieldSpec - name: 'FilterEntryField' - layout: (LayoutFrame 60 0 -27 1 -2 1 -2 1) - model: filterHolder - immediateAccept: true - acceptOnReturn: true - acceptOnTab: true - acceptOnLostFocus: true - acceptOnPointerLeave: false - postBuildCallback: postBuildFilterField: - ) - ) - + (SubCanvasSpec + name: 'DirectoryTreeBrowser' + layout: (LayoutFrame 0 0.0 70 0 0 1.0 -30 1) + tabable: true + hasHorizontalScrollBar: false + hasVerticalScrollBar: false + majorKey: DirectoryTreeBrowser + subAspectHolders: + (Array + + (SubChannelInfoSpec + subAspect: filterModel + aspect: filterHolder + ) + (SubChannelInfoSpec + subAspect: rootHolder + aspect: rootDirectoryHolder + ) + + (SubChannelInfoSpec + subAspect: showHiddenFiles + aspect: showHiddenFiles + ) ) + createNewApplication: true + createNewBuilder: true + postBuildCallback: postBuildTreeBrowser: + ) + (LabelSpec + label: 'Filename:' + name: 'FilenameLabel' + layout: (LayoutFrame 3 0 -25 1 73 0 -1 1) + translateLabel: true + labelChannel: filenameLabelHolder + adjust: left + ) + (FilenameInputFieldSpec + name: 'FilenameEntryField' + layout: (LayoutFrame 70 0 -25 1 -4 1 -1 1) + tabable: true + model: filenameHolder + immediateAccept: false + acceptOnPointerLeave: false + hasKeyboardFocusInitially: true + postBuildCallback: postBuildFileNameField: ) ) ) - handles: (Any 0.2972972972973 1.0) - ) - (SubCanvasSpec - name: 'DirectoryTreeBrowser' - layout: (LayoutFrame 0 0.0 70 0 0 1.0 -30 1) - tabable: true - hasHorizontalScrollBar: false - hasVerticalScrollBar: false - majorKey: DirectoryTreeBrowser - subAspectHolders: - (Array - - (SubChannelInfoSpec - subAspect: filterModel - aspect: filterHolder - ) - (SubChannelInfoSpec - subAspect: rootHolder - aspect: rootDirectoryHolder - ) - - (SubChannelInfoSpec - subAspect: showHiddenFiles - aspect: showHiddenFiles - ) - ) - createNewApplication: true - createNewBuilder: true - postBuildCallback: postBuildTreeBrowser: - ) - (LabelSpec - label: 'Filename:' - name: 'FilenameLabel' - layout: (LayoutFrame 3 0 -25 1 73 0 -1 1) - translateLabel: true - labelChannel: filenameLabelHolder - adjust: left - ) - (FilenameInputFieldSpec - name: 'FilenameEntryField' - layout: (LayoutFrame 70 0 -25 1 -4 1 -1 1) - tabable: true - model: filenameHolder - immediateAccept: false - acceptOnPointerLeave: false - hasKeyboardFocusInitially: true - postBuildCallback: postBuildFileNameField: + extent: (Point 400 362) ) ) ) + postBuildCallback: postBuildVerticalView: ) (HorizontalPanelViewSpec name: 'ButtonPanel' @@ -892,7 +926,7 @@ labelChannel: cancelLabelHolder tabable: true model: doCancel - extent: (Point 131 22) + extent: (Point 129 22) ) (ActionButtonSpec label: 'Append' @@ -902,7 +936,7 @@ labelChannel: appendLabelHolder tabable: true model: appendPressed - extent: (Point 132 22) + extent: (Point 129 22) ) (ActionButtonSpec label: 'OK' @@ -912,7 +946,7 @@ tabable: true model: okPressed isDefault: true - extent: (Point 132 22) + extent: (Point 130 22) ) ) @@ -1701,6 +1735,14 @@ "Modified: / 14-02-2011 / 17:54:35 / cg" ! ! +!FileDialog methodsFor:'construction-adding'! + +addComponent: aView + verticalView addComponent: aView + + "Created: / 03-06-2013 / 17:47:58 / Jan Vrany " +! ! + !FileDialog methodsFor:'event handling'! appendWasPressed @@ -1799,6 +1841,12 @@ "Modified: / 24-08-2010 / 16:07:16 / sr" ! +postBuildVerticalView:aView + verticalView := aView. + + "Created: / 03-06-2013 / 17:41:14 / Jan Vrany " +! + postBuildWith:aBuilder treeBrowser multipleSelect:multipleSelect. appendWasPressed := false. @@ -1821,17 +1869,18 @@ treeBrowser currentFileNameHolder value:(Array with:self startFilename). ! -postOpenWith:aBuilder - |lastExtent| - - super postOpenWith:aBuilder. - treeBrowser currentFileNameHolder value:(OrderedCollection with:self startFilename). +preOpenWith:aBuilder + | h | - lastExtent := self class lastExtent. - lastExtent notNil ifTrue:[ - self window topView extent:lastExtent. + "Increase height of the window so height of the file part + remain the same" + h := 0. + verticalView subViews from:2 do:[:view| + h := h + view preferredHeight. ]. - self window label:self initialText. + aBuilder window height: aBuilder window height + h. + + "Created: / 03-06-2013 / 18:19:38 / Jan Vrany " ! rememberExtent @@ -1996,11 +2045,11 @@ !FileDialog class methodsFor:'documentation'! version - ^ '$Id: FileDialog.st 7854 2012-01-30 17:49:41Z vranyj1 $' + ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.117 2013-06-03 18:41:12 +0100 vrany Exp $' ! version_CVS - ^ '§Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.116 2011/04/04 08:09:15 stefan Exp §' + ^ '$Header: /cvs/stx/stx/libtool/FileDialog.st,v 1.117 2013-06-03 18:41:12 +0100 vrany Exp $' ! version_HG