allow editing of color values;
authorClaus Gittinger <cg@exept.de>
Sat, 08 Aug 1998 13:44:51 +0200
changeset 945 cb689f3971ab
parent 944 bffc1f3625e1
child 946 536722005e32
allow editing of color values; react on change and redraw image then.
ImageEditor.st
--- 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"