Color.st
changeset 1428 79251ddda7a1
parent 1390 4b519886451f
child 1502 684c734d784b
--- a/Color.st	Wed Mar 05 17:08:45 1997 +0100
+++ b/Color.st	Thu Mar 06 02:34:31 1997 +0100
@@ -15,7 +15,8 @@
 		writable'
 	classVariableNames:'MaxValue Cells Black White LightGrey Grey DarkGrey Pseudo0
 		Pseudo1 PseudoAll Red Green Blue RetryAllocation DitherBits
-		ColorAllocationFailSignal InvalidColorNameSignal'
+		ColorAllocationFailSignal InvalidColorNameSignal
+		StandardColorValues'
 	poolDictionaries:''
 	category:'Graphics-Support'
 !
@@ -396,12 +397,43 @@
     RetryAllocation := true.
 
     DitherBits := self ditherBits.
+    self initializeStandardColorNames.
 
     "
      Color initialize
     "
 
-    "Modified: 24.2.1997 / 22:08:35 / cg"
+    "Modified: 6.3.1997 / 02:22:24 / cg"
+!
+
+initializeStandardColorNames
+    "setup standard colors"
+
+    StandardColorValues := Dictionary new.
+    #(
+                'red'     (16rFFFF 16r0000 16r0000)
+                'green'   (16r0000 16rFFFF 16r0000)
+                'blue'    (16r0000 16r0000 100)
+                'yellow'  (16rFFFF 16rFFFF 16r0000)
+                'magenta' (16rFFFF 16r0000 16rFFFF)
+                'cyan'    (16r0000 16rFFFF 16rFFFF)
+                'white'   (16rFFFF 16rFFFF 16rFFFF)
+                'black'   (16r0000 16r0000 16r0000)
+                'olive'   (16r7FFF 16r7FFF 16r0000)
+                'teal'    (16r0000 16r7FFF 16r7FFF)
+                'silver'  (16r6666 16r6666 16r6666)
+                'lime'    (16r3333 16rFFFF 16r0000)
+                'fuchsia' (16r9999 16r07ae 16rFFFF)
+                'aqua'    (16r199a 16rFFFF 16rFFFF)
+    ) pairWiseDo:[:name :value |
+        StandardColorValues at:name put:value
+    ].
+
+    "
+     Color initializeStandardColorNames
+    "
+
+    "Modified: 6.3.1997 / 02:28:58 / cg"
 !
 
 update:something with:aParameter from:changedObject
@@ -570,16 +602,24 @@
      If aString is not a valid color name, 
      return the result from evaluating errorBlock."
 
-    |r g b|
-
-    Display
-        getScaledRGBFromName:colorName 
-        into:[:rr :gg :bb |
-            r := rr.
-            g := gg.
-            b := bb
-        ].
-
+    |triple r g b|
+
+    triple := StandardColorValues at:colorName asString ifAbsent:nil.
+    triple notNil ifTrue:[
+        r := triple at:1.
+        g := triple at:2.
+        b := triple at:3.
+    ] ifFalse:[
+        "/ ask display ...
+
+        Display
+            getScaledRGBFromName:colorName 
+            into:[:rr :gg :bb |
+                r := rr.
+                g := gg.
+                b := bb
+            ].
+    ].
     r notNil ifTrue:[
         ^ here scaledRed:r scaledGreen:g scaledBlue:b
     ].
@@ -587,10 +627,12 @@
 
     "
      Color name:'brown' ifIllegal:[Color black]
+     Color name:'red' ifIllegal:[Color black]      
+     Color name:'fuchsia' ifIllegal:[Color black]      
      Color name:'foo' ifIllegal:[Color black]
     "
 
-    "Modified: 16.1.1997 / 22:59:24 / cg"
+    "Modified: 6.3.1997 / 02:32:41 / cg"
 !
 
 noColor
@@ -4007,6 +4049,6 @@
 !Color class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Color.st,v 1.91 1997-02-28 12:28:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Color.st,v 1.92 1997-03-06 01:34:31 cg Exp $'
 ! !
 Color initialize!