diff -r a00ba144e64f -r 9f1a94815f07 MenuEditor.st --- a/MenuEditor.st Mon Jun 29 15:51:55 1998 +0200 +++ b/MenuEditor.st Mon Jun 29 16:42:47 1998 +0200 @@ -892,17 +892,25 @@ #window: #(#WindowSpec #name: 'Image Item' - #layout: #(#LayoutFrame 473 0 301 0 717 0 442 0) + #layout: #(#LayoutFrame 252 0 359 0 647 0 635 0) #label: 'Image Item' #min: #(#Point 10 10) #max: #(#Point 1280 1024) - #bounds: #(#Rectangle 473 301 718 443) + #bounds: #(#Rectangle 252 359 648 636) #usePreferredExtent: false ) #component: #(#SpecCollection #collection: #( + #(#CheckBoxSpec + #name: 'iconAndLabelCheckBox' + #layout: #(#LayoutOrigin 20 0 215 0) + #activeHelpKey: #imageImageAndLabel + #tabable: true + #model: #iconAndLabel + #label: 'Image & Label' + ) #(#LabelSpec #name: 'retrieverLabel' #layout: #(#AlignmentOrigin 107 0 26 0 1 0.5) @@ -939,19 +947,22 @@ ) #(#ActionButtonSpec #name: 'imageEditorButton' - #layout: #(#LayoutFrame 110 0 66 0 -5 1 90 0) + #layout: #(#LayoutFrame 5 0.6 67 0 -5 1 91 0) #activeHelpKey: #imageImageEditor #label: 'Image Editor' #tabable: true #model: #doEditImage ) - #(#CheckBoxSpec - #name: 'iconAndLabel' - #layout: #(#LayoutOrigin 20 0 104 0) - #activeHelpKey: #imageImageAndLabel - #tabable: true - #model: #iconAndLabel - #label: 'Image & Label' + #(#SequenceViewSpec + #name: 'systemOrUserImagesList' + #layout: #(#LayoutFrame 110 0 66 0 0 0.6 200 0) + #model: #selectionOfImage + #hasHorizontalScrollBar: true + #hasVerticalScrollBar: true + #miniScrollerHorizontal: true + #valueChangeSelector: #imageSelected + #useIndex: false + #sequenceList: #listOfImages ) ) ) @@ -1432,21 +1443,21 @@ #isButton: true #value: #doNew #activeHelpKey: #fileNew - #labelImage: #(#ResourceRetriever nil #newIcon) + #labelImage: #(#ResourceRetriever #Icon #newIcon) ) #(#MenuItem #label: 'Load' #isButton: true #value: #doLoad #activeHelpKey: #fileLoad - #labelImage: #(#ResourceRetriever nil #loadIcon) + #labelImage: #(#ResourceRetriever #Icon #loadIcon) ) #(#MenuItem #label: 'Save' #isButton: true #value: #doSave #activeHelpKey: #fileSave - #labelImage: #(#ResourceRetriever nil #saveIcon) + #labelImage: #(#ResourceRetriever #Icon #saveIcon) ) #(#MenuItem #label: '' @@ -1457,7 +1468,7 @@ #value: #doCut #activeHelpKey: #editCut #enabled: #hasValidSelection - #labelImage: #(#ResourceRetriever nil #cutIcon) + #labelImage: #(#ResourceRetriever #Icon #cutIcon) ) #(#MenuItem #label: 'Copy' @@ -1465,7 +1476,7 @@ #value: #doCopy #activeHelpKey: #editCopy #enabled: #hasValidSelection - #labelImage: #(#ResourceRetriever nil #copyIcon) + #labelImage: #(#ResourceRetriever #Icon #copyIcon) ) #(#MenuItem #label: 'Paste' @@ -1473,7 +1484,7 @@ #value: #doPaste #activeHelpKey: #editPaste #enabled: #valueOfCanPaste - #labelImage: #(#ResourceRetriever nil #pasteIcon) + #labelImage: #(#ResourceRetriever #Icon #pasteIcon) ) #(#MenuItem #label: 'Delete' @@ -1481,7 +1492,7 @@ #value: #doDelete #activeHelpKey: #editDelete #enabled: #hasValidSelection - #labelImage: #(#ResourceRetriever nil #deleteIcon) + #labelImage: #(#ResourceRetriever #Icon #deleteIcon) ) #(#MenuItem #label: '' @@ -1527,7 +1538,7 @@ #value: #doStepUp #activeHelpKey: #editMoveUp #enabled: #valueOfEnableMovingUpOrDown - #labelImage: #(#ResourceRetriever nil #upIcon) + #labelImage: #(#ResourceRetriever #Icon #upIcon) ) #(#MenuItem #label: 'Move Down' @@ -1535,7 +1546,7 @@ #value: #doStepDown #activeHelpKey: #editMoveDown #enabled: #valueOfEnableMovingUpOrDown - #labelImage: #(#ResourceRetriever nil #downIcon) + #labelImage: #(#ResourceRetriever #Icon #downIcon) ) #(#MenuItem #label: 'Move In' @@ -1543,7 +1554,7 @@ #value: #doStepIn #activeHelpKey: #editMoveIn #enabled: #valueOfEnableMovingIn - #labelImage: #(#ResourceRetriever nil #downRightIcon) + #labelImage: #(#ResourceRetriever #Icon #downRightIcon) ) #(#MenuItem #label: 'Move Out' @@ -1551,7 +1562,7 @@ #value: #doStepOut #activeHelpKey: #editMoveOut #enabled: #valueOfEnableMovingOut - #labelImage: #(#ResourceRetriever nil #leftDownIcon) + #labelImage: #(#ResourceRetriever #Icon #leftDownIcon) ) ) nil nil @@ -1648,6 +1659,19 @@ ^builder booleanValueAspectFor: #hasValidSingleSelection ! +listOfImages + "get a list of the images" + + |holder| + (holder := builder bindingAt:#listOfImages) isNil ifTrue:[ + builder aspectAt:#listOfImages put: (holder := List new). + self updateListOfImages + ]. + ^ holder + + +! + noteBookView "create the note book view containing the attibute sections and the help tool" @@ -1670,6 +1694,18 @@ ^ noteBook ! +selectionOfImage + "get selection of list of the images as value" + + |holder| + (holder := builder bindingAt:#selectionOfImage) isNil ifTrue:[ + builder aspectAt:#selectionOfImage put: (holder := nil asValue). + ]. + ^ holder + + +! + tabList "get a value holder with the list of the attribute sections (slices)" @@ -1724,6 +1760,7 @@ |node parent next state| state := false. + self updateSelectionOfImage. (node := self treeView selectedNode) notNil ifTrue: @@ -1755,6 +1792,35 @@ self hasValidSingleSelection value:false. self hasValidSelection value:state. self valueOfCanPaste value:(self hasValidSingleSelection value or: [node == self treeView root]) & self valueOfCanPaste value. + +! + +updateListAndSelectionOfImage + "updates the list and selection of image" + + self updateListOfImages. + self updateSelectionOfImage +! + +updateListOfImages + "updates the list of images" + + |iconClass| + iconClass := Smalltalk at: (aspects at: #retriever) value ? specClass. + self listOfImages contents: + ((self class getAllImageSelectorsFrom: iconClass) + collect: [:sel| |image| image := iconClass perform: sel. LabelAndIcon icon:(image magnifiedBy: 22/image extent y ) string: sel]). + + +! + +updateSelectionOfImage + "updates the selection of image" + + self selectionOfImage value: nil. + self updateListOfImages. + self selectionOfImage value: (self listOfImages detect: [:im| im string == (aspects at: #icon) value] ifNone: nil). + ! ! !MenuEditor methodsFor:'event handling'! @@ -1810,6 +1876,12 @@ !MenuEditor methodsFor:'selection'! +imageSelected + + (aspects at: #icon) value: self selectionOfImage value string + +! + menuChanged |node item slc sel old| @@ -1892,8 +1964,7 @@ aspects do: [:holder| holder addDependent:self]. self updateFonts. specCanvas raise. - ] - + ] ! ! !MenuEditor methodsFor:'startup / release'! @@ -1954,7 +2025,8 @@ specSelector := self treeView selectorName. ] ]. - self updateInfoLabel + self updateInfoLabel. + self updateListAndSelectionOfImage ! cancel @@ -1972,6 +2044,13 @@ modified := false ! +doEditImage + + super doEditImage. + + self updateListAndSelectionOfImage +! + doNew super doNew ifTrue: [self helpTool doNew]