12 "{ Package: 'stx:libtool2' }" |
12 "{ Package: 'stx:libtool2' }" |
13 |
13 |
14 ResourceSpecEditor subclass:#ImageEditor |
14 ResourceSpecEditor subclass:#ImageEditor |
15 instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode |
15 instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode |
16 selectedColorIndex postOpenAction imageSeqNr drawingColormap |
16 selectedColorIndex postOpenAction imageSeqNr drawingColormap |
17 lastShiftUsedWrap lastGrabbedScreenArea' |
17 lastShiftUsedWrap lastGrabbedScreenArea |
|
18 allowedToChangeImageDimensionAndDepth' |
18 classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode |
19 classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode |
19 DefaultRelativeSizes' |
20 DefaultRelativeSizes' |
20 poolDictionaries:'' |
21 poolDictionaries:'' |
21 category:'Interface-UIPainter' |
22 category:'Interface-UIPainter' |
22 ! |
23 ! |
102 Returns the modified image or nil if unsaved/unchanged" |
103 Returns the modified image or nil if unsaved/unchanged" |
103 |
104 |
104 |imageEditor imageEditView newImage| |
105 |imageEditor imageEditView newImage| |
105 |
106 |
106 imageEditor := self new. |
107 imageEditor := self new. |
107 |
108 imageEditor allowedToChangeImageDimensionAndDepth:false. |
108 imageEditor postOpenAction: [ |
109 imageEditor postOpenAction: [ |
109 imageEditView := imageEditor imageEditView. |
110 imageEditView := imageEditor imageEditView. |
110 imageEditor loadFromImage: anImage |
111 imageEditor loadFromImage: anImage |
111 ]. |
112 ]. |
112 imageEditor openModal. |
113 imageEditor openModal. |
2048 label: 'Make GrayScale' |
2049 label: 'Make GrayScale' |
2049 itemValue: makeGrayScaleImage |
2050 itemValue: makeGrayScaleImage |
2050 translateLabel: true |
2051 translateLabel: true |
2051 ) |
2052 ) |
2052 (MenuItem |
2053 (MenuItem |
2053 enabled: hasNoColormap |
2054 enabled: allowedToChangeImageDimensionAndDepth |
2054 label: 'Make dithered 8Bit Palette' |
2055 label: 'Make dithered 8Bit Palette' |
2055 itemValue: makeDitheredPaletteImage |
2056 itemValue: makeDitheredPaletteImage |
2056 translateLabel: true |
2057 translateLabel: true |
2057 isVisible: false |
2058 isVisible: false |
2058 ) |
2059 ) |
2159 ) |
2160 ) |
2160 (MenuItem |
2161 (MenuItem |
2161 label: '-' |
2162 label: '-' |
2162 ) |
2163 ) |
2163 (MenuItem |
2164 (MenuItem |
2164 enabled: imageIsLoaded |
2165 enabled: imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
2165 activeHelpKey: editResize |
2166 activeHelpKey: editResize |
2166 label: 'Resize...' |
2167 label: 'Resize...' |
2167 itemValue: doResizeImage |
2168 itemValue: doResizeImage |
2168 translateLabel: true |
2169 translateLabel: true |
2169 ) |
2170 ) |
2170 (MenuItem |
2171 (MenuItem |
2171 enabled: imageIsLoaded |
2172 enabled: imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
2172 activeHelpKey: editMagnifyImage |
2173 activeHelpKey: editMagnifyImage |
2173 label: 'Magnify...' |
2174 label: 'Magnify...' |
2174 itemValue: doMagnifyImage |
2175 itemValue: doMagnifyImage |
2175 translateLabel: true |
2176 translateLabel: true |
2176 ) |
2177 ) |
2177 (MenuItem |
2178 (MenuItem |
2178 enabled: imageIsLoaded |
2179 enabled: imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
2179 activeHelpKey: editMagnifyImage |
2180 activeHelpKey: editMagnifyImage |
2180 label: 'Magnify By...' |
2181 label: 'Magnify By...' |
2181 itemValue: doMagnifyImageBy |
2182 itemValue: doMagnifyImageBy |
2182 translateLabel: true |
2183 translateLabel: true |
2183 ) |
2184 ) |
2184 (MenuItem |
2185 (MenuItem |
2185 enabled: imageIsLoaded |
2186 enabled: imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
2186 activeHelpKey: editRotate |
2187 activeHelpKey: editRotate |
2187 label: 'Rotate...' |
2188 label: 'Rotate...' |
2188 itemValue: doRotateImage |
2189 itemValue: doRotateImage |
2189 translateLabel: true |
2190 translateLabel: true |
2190 ) |
2191 ) |
2191 (MenuItem |
2192 (MenuItem |
2192 enabled: imageIsLoaded |
2193 enabled: imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
2193 activeHelpKey: edit3DProjection |
2194 activeHelpKey: edit3DProjection |
2194 label: '3D Projection...' |
2195 label: '3D Projection...' |
2195 itemValue: do3DProjection |
2196 itemValue: do3DProjection |
2196 translateLabel: true |
2197 translateLabel: true |
2197 ) |
2198 ) |
3157 |
3158 |
3158 resourceClass:aClass |
3159 resourceClass:aClass |
3159 imageEditView resourceClass:aClass |
3160 imageEditView resourceClass:aClass |
3160 ! ! |
3161 ! ! |
3161 |
3162 |
|
3163 !ImageEditor methodsFor:'accessing-behavior'! |
|
3164 |
|
3165 allowedToChangeImageDimensionAndDepth |
|
3166 "used to edit an existing image's contents only (Expecco)" |
|
3167 |
|
3168 ^ allowedToChangeImageDimensionAndDepth ? true |
|
3169 ! |
|
3170 |
|
3171 allowedToChangeImageDimensionAndDepth:aBoolean |
|
3172 "used to edit an existing image's contents only (Expecco)" |
|
3173 |
|
3174 allowedToChangeImageDimensionAndDepth := aBoolean |
|
3175 ! ! |
|
3176 |
3162 !ImageEditor methodsFor:'accessing-views'! |
3177 !ImageEditor methodsFor:'accessing-views'! |
3163 |
3178 |
3164 colorDataSetView |
3179 colorDataSetView |
3165 "returns the view of the colormap" |
3180 "returns the view of the colormap" |
3166 |
3181 |
3280 |holder| |
3295 |holder| |
3281 (holder := builder bindingAt:#imageIsLoaded) isNil ifTrue:[ |
3296 (holder := builder bindingAt:#imageIsLoaded) isNil ifTrue:[ |
3282 builder aspectAt:#imageIsLoaded put:(holder := false asValue). |
3297 builder aspectAt:#imageIsLoaded put:(holder := false asValue). |
3283 ]. |
3298 ]. |
3284 ^ holder |
3299 ^ holder |
|
3300 ! |
|
3301 |
|
3302 imageIsLoadedAndAllowedToChangeImageDimensionAndDepth |
|
3303 "returns whether an image is loaded as value holder" |
|
3304 |
|
3305 ^ [ |
|
3306 self imageIsLoaded value |
|
3307 and:[ self allowedToChangeImageDimensionAndDepth ] |
|
3308 ] |
3285 ! |
3309 ! |
3286 |
3310 |
3287 imageIsLoadedAndClassDefined |
3311 imageIsLoadedAndClassDefined |
3288 "returns whether an image is loaded as value holder" |
3312 "returns whether an image is loaded as value holder" |
3289 |
3313 |