allow editing of color values;
react on change and redraw image then.
--- a/ImageEditor.st Sat Aug 08 13:42:04 1998 +0200
+++ b/ImageEditor.st Sat Aug 08 13:44:51 1998 +0200
@@ -461,11 +461,11 @@
#window:
#(#WindowSpec
#name: 'Image Editor'
- #layout: #(#LayoutFrame 362 0 221 0 861 0 566 0)
+ #layout: #(#LayoutFrame 176 0 156 0 675 0 501 0)
#label: 'Image Editor'
#min: #(#Point 400 320)
#max: #(#Point 1152 900)
- #bounds: #(#Rectangle 362 221 862 567)
+ #bounds: #(#Rectangle 176 156 676 502)
#menu: #menu
#usePreferredExtent: false
)
@@ -539,7 +539,7 @@
#type: #number
#model: #redFromColor:
#writeSelector: #redAtColor:put:
- #canSelect: false
+ #selectSelector: #canSelectRedInColor:
)
#(#DataSetColumnSpec
#label: 'G'
@@ -549,7 +549,7 @@
#type: #number
#model: #greenFromColor:
#writeSelector: #greenAtColor:put:
- #canSelect: false
+ #selectSelector: #canSelectGreenInColor:
)
#(#DataSetColumnSpec
#label: 'B'
@@ -559,7 +559,7 @@
#type: #number
#model: #blueFromColor:
#writeSelector: #blueAtColor:put:
- #canSelect: false
+ #selectSelector: #canSelectBlueInColor:
)
)
#columnAdaptor: #colorColumnAdaptor
@@ -654,6 +654,8 @@
)
)
)
+
+ "Modified: / 7.8.1998 / 22:52:28 / cg"
! !
!ImageEditor class methodsFor:'menu specs'!
@@ -1276,8 +1278,17 @@
!
update:something with:aParameter from:changedObject
+ changedObject == self listOfColors ifTrue:[
+ something == #at: ifTrue:[
+ "/ colormap entry changed at aParameter
+ self image colorMap at:aParameter put:(changedObject at:aParameter).
+ self colorMapChanged.
+ ^ self
+ ].
+ ].
super update:something with:aParameter from:changedObject
+ "Modified: / 7.8.1998 / 22:32:09 / cg"
!
updateForNoneImage
@@ -1333,6 +1344,27 @@
"Modified: / 31.7.1998 / 01:11:18 / cg"
!
+canSelectBlueInColor:aColor
+ ^ aColor blueByte notNil
+
+ "Created: / 7.8.1998 / 22:50:34 / cg"
+ "Modified: / 7.8.1998 / 22:52:57 / cg"
+!
+
+canSelectGreenInColor:aColor
+ ^ aColor greenByte notNil
+
+ "Created: / 7.8.1998 / 22:50:22 / cg"
+ "Modified: / 7.8.1998 / 22:52:46 / cg"
+!
+
+canSelectRedInColor:aColor
+ ^ aColor redByte notNil
+
+ "Created: / 7.8.1998 / 22:50:00 / cg"
+ "Modified: / 7.8.1998 / 22:51:03 / cg"
+!
+
greenAtColor:aColor put:newGreen
"helper used to return a new row element, when green is changed"
@@ -1596,6 +1628,21 @@
!ImageEditor methodsFor:'user actions - colormap'!
+colorMapChanged
+ |img|
+
+ img := self image.
+ img release.
+ (imageEditView image:img) notNil ifTrue:
+ [
+ self updateLabelsAndHistory.
+ self imagePreView image:img
+ ]
+
+ "Created: / 7.8.1998 / 22:26:10 / cg"
+ "Modified: / 7.8.1998 / 22:37:29 / cg"
+!
+
colorMapMode:aMode value: aValue
"calculates a new color map for the image from aMode"