fixed startup (modal box in calling thread, instead of
authorClaus Gittinger <cg@exept.de>
Fri, 12 Mar 1999 10:57:35 +0100
changeset 1053 31097504a15a
parent 1052 2b65eda2938e
child 1054 ef98bc11d1fd
fixed startup (modal box in calling thread, instead of imageEditor thread). Prepared addColor menu item (not yet finished)
ImageEditor.st
--- a/ImageEditor.st	Wed Mar 10 01:51:08 1999 +0100
+++ b/ImageEditor.st	Fri Mar 12 10:57:35 1999 +0100
@@ -102,7 +102,14 @@
      self openOnImage: Icon startIcon
     "
 
-    ^self open loadFromImage: anImage
+    |editor|
+
+    editor := self new.
+    editor allButOpen.
+    editor loadFromImage: anImage.
+    editor openWindow
+
+    "Modified: / 11.3.1999 / 16:18:33 / cg"
 ! !
 
 !ImageEditor class methodsFor:'accessing'!
@@ -592,13 +599,16 @@
           #window: 
            #(#WindowSpec
               #name: 'Image Editor'
-              #layout: #(#LayoutFrame 176 0 156 0 675 0 501 0)
+              #layout: #(#LayoutFrame 507 0 28 0 1004 0 371 0)
+              #level: 0
               #label: 'Image Editor'
               #min: #(#Point 400 320)
               #max: #(#Point 1152 900)
-              #bounds: #(#Rectangle 176 156 676 502)
+              #bounds: #(#Rectangle 507 28 1005 372)
               #menu: #menu
               #usePreferredExtent: false
+              #returnIsOKInDialog: true
+              #escapeIsCancelInDialog: true
           )
           #component: 
            #(#SpecCollection
@@ -647,6 +657,7 @@
                                                             #layout: #(#LayoutFrame 0 0.0 26 0.0 0 1.0 0 1.0)
                                                             #activeHelpKey: #colorMapTable
                                                             #model: #selectionOfColor
+                                                            #menu: #colorMapMenu
                                                             #style: #(#FontDescription #helvetica #medium #roman 10)
                                                             #hasHorizontalScrollBar: true
                                                             #hasVerticalScrollBar: true
@@ -717,6 +728,7 @@
                           )
                            #(#ViewSpec
                               #name: 'view2'
+                              #level: -1
                               #component: 
                                #(#SpecCollection
                                   #collection: 
@@ -732,10 +744,10 @@
                                      #(#LabelSpec
                                         #name: 'coordLabel'
                                         #layout: #(#LayoutFrame 2 0.0 -22 1 -83 1.0 0 1.0)
+                                        #level: -1
                                         #labelChannel: #imageInfoHolder
-                                        #level: -1
+                                        #resizeForLabel: false
                                         #adjust: #left
-                                        #resizeForLabel: false
                                     )
                                      #(#ArrowButtonSpec
                                         #name: 'magnifyDownButton'
@@ -770,7 +782,6 @@
                                     )
                                   )
                               )
-                              #level: -1
                           )
                         )
                     )
@@ -786,11 +797,42 @@
           )
       )
 
-    "Modified: / 7.8.1998 / 22:52:28 / cg"
+    "Modified: / 12.3.1999 / 00:15:05 / cg"
 ! !
 
 !ImageEditor class methodsFor:'menu specs'!
 
+colorMapMenu
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:ImageEditor andSelector:#menuSpec
+     (Menu new fromLiteralArrayEncoding:(ImageEditor menuSpec)) startUp
+    "
+
+    <resource: #menu>
+
+    ^
+     
+       #(#Menu
+          
+           #(
+             #(#MenuItem
+                #label: 'Add Color'
+                #translateLabel: true
+                #value: #addColorToColormap
+            )
+          ) nil
+          nil
+      )
+
+    "Created: / 12.3.1999 / 00:19:00 / cg"
+!
+
 menu
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
@@ -1865,6 +1907,31 @@
 
 !ImageEditor methodsFor:'user actions - colormap'!
 
+addColorToColormap
+    |d img cMap newCMap|
+
+    img := self image.
+    d := img depth.
+    cMap := img colorMap.
+    ((d == 1)
+    or:[cMap size == (1 bitShift:d)]) ifTrue:[
+        d >= 8 ifTrue:[
+            self warn:'No space for more colors in colormap.'.
+            ^ self
+        ].
+        (self confirm:'No space for more colors in colormap.\Change depth ?' withCRs)
+        ifFalse:[
+            ^ self
+        ]
+    ].
+    newCMap := cMap asArray copyWith:(Color black).
+    img colorMap:newCMap.
+    self listOfColors contents: newCMap.
+
+    "Created: / 12.3.1999 / 00:20:28 / cg"
+    "Modified: / 12.3.1999 / 02:09:01 / cg"
+!
+
 colorMapChanged
     |img|
 
@@ -1893,7 +1960,7 @@
     self withExecuteCursorDo:[
         oldImage := self image.
 
-        prevMode := colorMapMode.
+        prevMode := colorMapMode value.
         oldImage depth > 8 ifTrue:[
             prevMode := nil
         ].
@@ -2066,7 +2133,7 @@
         ]
     ]
 
-    "Modified: / 30.9.1998 / 23:44:19 / cg"
+    "Modified: / 11.3.1999 / 16:20:09 / cg"
 !
 
 compressColorMap