class definition
authorClaus Gittinger <cg@exept.de>
Sun, 23 Jan 2011 20:35:29 +0100
changeset 3996 4ef9b35afcdc
parent 3995 4917660dba28
child 3997 35c107962304
class definition added: #enableChannel: #overWriteDefaultToggleChannel #overwriteDefaultToggleChannel #updateEnableChannel changed:7 methods
ColorMenu.st
--- a/ColorMenu.st	Sun Jan 23 15:33:06 2011 +0100
+++ b/ColorMenu.st	Sun Jan 23 20:35:29 2011 +0100
@@ -12,9 +12,9 @@
 "{ Package: 'stx:libwidg2' }"
 
 MenuPanel subclass:#ColorMenu
-	instanceVariableNames:'enabledChannel labelsAreColored color colorName
-		allowSymbolicColors showDefaultToggle acceptAction
-		useDefaultColorToggleVisibleHolder'
+	instanceVariableNames:'overwriteDefaultToggleChannel enabledChannel labelsAreColored
+		color colorName allowSymbolicColors showDefaultToggle
+		acceptAction useDefaultColorToggleVisibleHolder'
 	classVariableNames:'ColorMenuSpec RecentlyUsedColors'
 	poolDictionaries:''
 	category:'Interface-UIPainter'
@@ -224,8 +224,9 @@
 colorMenuSpec
     "color definitions used to build a color menu
     "
-"
-ColorMenuSpec := nil.
+"because it is cached, you have to:
+    ColorMenuSpec := nil.
+when changing
 "
   ^ #(
         #(  gray
@@ -265,8 +266,13 @@
             yellow:
             #( veryLight lightened 100 87 67 50 33 25)
         )
+        #(  brown
+            brown:
+            #( veryLight lightened brown darkened veryDark)
+        )
+    )
 
-    )
+    "Modified: / 23-01-2011 / 16:33:33 / cg"
 ! !
 
 !ColorMenu class methodsFor:'private'!
@@ -301,10 +307,14 @@
                     el == #veryLight ifTrue:[ 
                         color := baseColor lightened lightened
                     ] ifFalse:[ el == #lightened ifTrue:[ 
-                        color := baseColor perform:el 
+                        color := baseColor lightened 
+                    ] ifFalse:[ el == #darkened ifTrue:[ 
+                        color := baseColor darkened 
+                    ] ifFalse:[ el == #veryDark ifTrue:[ 
+                        color := baseColor darkened darkened 
                     ] ifFalse:[ 
                         color := Color perform:el 
-                    ]].
+                    ]]]].
                     colorId == #gray ifTrue:[ label := el ].
                 ] ifFalse:[
                     el isNumber ifTrue:[
@@ -324,6 +334,8 @@
     ].
     ColorMenuSpec := menu.
     ^ menu
+
+    "Modified: / 23-01-2011 / 16:34:45 / cg"
 !
 
 resolveMenuItem:aMenuItem value:aValue labelsAreColored:labelsAreColored
@@ -375,7 +387,7 @@
     (item notNil and:[((item nameKey ? '') startsWith:'pseudo') not]) ifTrue:[
         holder := self colorHolder.
         holder == item ifTrue:[
-            enabledChannel value ifTrue:[
+            self overwriteDefaultToggleChannel value ifTrue:[
                 color := self color.
             ] ifFalse:[
                 holder label:(Text string:'   ').
@@ -390,6 +402,8 @@
             acceptAction value:color
         ].
     ]
+
+    "Modified: / 23-01-2011 / 16:22:36 / cg"
 !
 
 chooseColor:aColor
@@ -428,7 +442,7 @@
     |label newColor|
 
     (aColor isColor or:[aColor isSymbol]) ifFalse:[
-        enabledChannel value:false.
+        self overwriteDefaultToggleChannel value:false.
         self colorHolder label:'   '.
     ] ifTrue:[
         newColor := aColor.
@@ -449,11 +463,13 @@
         ].
         color := newColor.
         self disabledRedrawDo:[
-            enabledChannel value:true.
+            self overwriteDefaultToggleChannel value:true.
             self colorHolder label:label.
             self chooseColor:aColor
         ]
     ]
+
+    "Modified: / 23-01-2011 / 16:23:13 / cg"
 !
 
 colorHolder
@@ -466,8 +482,18 @@
     ^ self color
 !
 
+enableChannel:aValueHolder
+    super enableChannel:aValueHolder.
+    self updateEnableChannel
+
+    "Created: / 23-01-2011 / 16:08:52 / cg"
+!
+
 enabledChannel
-    ^ enabledChannel
+    ^ self overwriteDefaultToggleChannel
+"/    ^ enabledChannel
+
+    "Modified: / 23-01-2011 / 16:24:12 / cg"
 !
 
 labelsAreColored
@@ -489,6 +515,15 @@
     ].
 !
 
+overwriteDefaultToggleChannel
+    overwriteDefaultToggleChannel isNil ifTrue:[
+        overwriteDefaultToggleChannel := false asValue.
+    ].
+    ^ overwriteDefaultToggleChannel
+
+    "Modified: / 23-01-2011 / 16:24:00 / cg"
+!
+
 useDefaultColorToggleVisibleHolder
     useDefaultColorToggleVisibleHolder isNil ifTrue:[
         useDefaultColorToggleVisibleHolder := true asValue
@@ -597,10 +632,10 @@
     allowSymbolicColors := false.
 
     self fitFirstPanel:false.
-    enabledChannel := ValueHolder with:false.
+    "/ enabledChannel := ValueHolder with:false.
     self setupMenu.
 
-    "Modified: / 21.5.1998 / 03:07:26 / cg"
+    "Modified: / 23-01-2011 / 16:05:31 / cg"
 !
 
 setupMenu
@@ -650,15 +685,22 @@
 
     self menu:menu.
 
+    self updateEnableChannel
+
+    "Modified: / 23-01-2011 / 16:08:18 / cg"
+!
+
+updateEnableChannel
     self do:[:anItem|
         anItem value == #selection ifTrue:[
-            anItem indication:enabledChannel
+            anItem indication:self overwriteDefaultToggleChannel.
+            "/ anItem enabled:enabledChannel.
         ] ifFalse:[
-            anItem enabled:enabledChannel.
+            anItem enabled:self overwriteDefaultToggleChannel.
         ]
     ]
 
-    "Modified: / 23-01-2011 / 14:49:32 / cg"
+    "Created: / 23-01-2011 / 16:08:06 / cg"
 ! !
 
 !ColorMenu methodsFor:'user actions'!
@@ -690,9 +732,9 @@
 !ColorMenu class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/ColorMenu.st,v 1.66 2011-01-23 14:33:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/ColorMenu.st,v 1.67 2011-01-23 19:35:29 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libwidg2/ColorMenu.st,v 1.66 2011-01-23 14:33:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/ColorMenu.st,v 1.67 2011-01-23 19:35:29 cg Exp $'
 ! !