changeable preview background (to see effect of transpaent pixels)
authorClaus Gittinger <cg@exept.de>
Fri, 21 Nov 2003 13:56:01 +0100
changeset 1764 7e9b804fd2d9
parent 1763 05ed7ac7f732
child 1765 c9378fcba509
changeable preview background (to see effect of transpaent pixels)
ImageEditor.st
--- a/ImageEditor.st	Fri Nov 21 08:27:09 2003 +0100
+++ b/ImageEditor.st	Fri Nov 21 13:56:01 2003 +0100
@@ -2266,12 +2266,44 @@
     <resource: #menu>
 
     ^ 
-     #(#Menu
-        #(
-         #(#MenuItem
-            #label: 'TileMode'
-            #translateLabel: true
-            #indication: #tileModeHolder
+     #(Menu
+        (
+         (MenuItem
+            label: 'TileMode'
+            translateLabel: true
+            indication: tileModeHolder
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Background Color'
+            translateLabel: true
+            submenu: 
+           (Menu
+              (
+               (MenuItem
+                  label: 'Gray'
+                  translateLabel: true
+                  choice: previewBackgroundColor
+                  choiceValue: nil
+                )
+               (MenuItem
+                  label: 'Black'
+                  translateLabel: true
+                  choice: previewBackgroundColor
+                  choiceValue: black
+                )
+               (MenuItem
+                  label: 'White'
+                  translateLabel: true
+                  choice: previewBackgroundColor
+                  choiceValue: white
+                )
+               )
+              nil
+              nil
+            )
           )
          )
         nil
@@ -2536,6 +2568,15 @@
     ^ holder
 !
 
+previewBackgroundColor
+    |holder|
+    (holder := builder bindingAt:#previewBackgroundColor) isNil ifTrue:[
+        builder aspectAt:#previewBackgroundColor put:(holder := nil asValue).
+        holder addDependent:self.
+    ].
+    ^ holder
+!
+
 selectionOfColor
     "returns a valueHolder for the current selection of the edit color.
      Here, an AspectAdaptor which accesses selectedColorIndex is returned."
@@ -2611,13 +2652,25 @@
 !
 
 update:something with:aParameter from:changedObject
-    |clrIndex img |
+    |clrIndex img clr|
 
     img := self image.
 
     changedObject == self tileModeHolder ifTrue:[
-        self imagePreView tileMode:(changedObject value) tileOffset:(img extent).
-        self imagePreView clear; invalidate.
+        self imagePreView 
+            tileMode:(changedObject value) tileOffset:(img extent);
+            clear; 
+            invalidate.
+        ^ self
+    ].
+    changedObject == self previewBackgroundColor ifTrue:[
+        clr := changedObject value isNil 
+                    ifTrue:[imageEditView viewBackground]
+                    ifFalse:[Color perform:changedObject value].
+        self imagePreView 
+            viewBackground:clr;
+            clear; 
+            invalidate.
         ^ self
     ].