--- a/ColorEditDialog.st Thu Mar 27 10:09:28 2008 +0100
+++ b/ColorEditDialog.st Mon Mar 31 15:31:21 2008 +0200
@@ -466,11 +466,58 @@
name: 'ColorNameField'
layout: (LayoutFrame 108 0 176 0 -162 1 198 0)
model: colorNameHolder
- immediateAccept: true
+ immediateAccept: false
+ acceptOnReturn: true
+ acceptOnTab: true
+ acceptOnLostFocus: true
+ acceptOnPointerLeave: true
+ )
+ (LabelSpec
+ label: 'HTML Color Name:'
+ name: 'HTMLColorNameLabel'
+ layout: (LayoutFrame 4 0 204 0 110 0 226 0)
+ translateLabel: true
+ adjust: right
+ )
+ (InputFieldSpec
+ name: 'MLHTColorNameFieldField'
+ layout: (LayoutFrame 108 0 204 0 -162 1 226 0)
+ model: htmlColorNameHolder
+ immediateAccept: false
acceptOnReturn: true
acceptOnTab: true
acceptOnLostFocus: true
- acceptOnPointerLeave: false
+ acceptOnPointerLeave: true
+ )
+ (ActionButtonSpec
+ label: 'Copy Color'
+ name: 'CopyColor'
+ layout: (LayoutFrame 12 0 236 0 100 0 258 0)
+ activeHelpKey: hlsMixer
+ translateLabel: true
+ resizeForLabel: true
+ tabable: true
+ model: copyColor
+ )
+ (ActionButtonSpec
+ label: 'Paste Color'
+ name: 'PasteColor'
+ layout: (LayoutFrame 108 0 236 0 196 0 258 0)
+ translateLabel: true
+ resizeForLabel: true
+ tabable: true
+ model: pasteColor
+ )
+ (ActionButtonSpec
+ label: 'pickColorIcon'
+ name: 'Button1'
+ layout: (LayoutFrame 285 0 236 0 312 0 263 0)
+ activeHelpKey: pickColor
+ hasCharacterOrientedLabel: false
+ translateLabel: true
+ resizeForLabel: true
+ tabable: true
+ model: pickColor
)
(HorizontalPanelViewSpec
name: 'HorizontalPanel1'
@@ -507,53 +554,6 @@
)
)
- (LabelSpec
- label: 'HTML Color Name:'
- name: 'HTMLColorNameLabel'
- layout: (LayoutFrame 4 0 204 0 110 0 226 0)
- translateLabel: true
- adjust: right
- )
- (InputFieldSpec
- name: 'MLHTColorNameFieldField'
- layout: (LayoutFrame 108 0 204 0 -162 1 226 0)
- model: htmlColorNameHolder
- immediateAccept: true
- acceptOnReturn: true
- acceptOnTab: true
- acceptOnLostFocus: true
- acceptOnPointerLeave: false
- )
- (ActionButtonSpec
- label: 'Copy Color'
- name: 'CopyColor'
- layout: (LayoutFrame 12 0 236 0 100 0 258 0)
- activeHelpKey: hlsMixer
- translateLabel: true
- resizeForLabel: true
- tabable: true
- model: copyColor
- )
- (ActionButtonSpec
- label: 'Paste Color'
- name: 'PasteColor'
- layout: (LayoutFrame 108 0 236 0 196 0 258 0)
- translateLabel: true
- resizeForLabel: true
- tabable: true
- model: pasteColor
- )
- (ActionButtonSpec
- label: 'pickColorIcon'
- name: 'Button1'
- layout: (LayoutFrame 285 0 236 0 312 0 263 0)
- activeHelpKey: pickColor
- hasCharacterOrientedLabel: false
- translateLabel: true
- resizeForLabel: true
- tabable: true
- model: pickColor
- )
)
)
@@ -567,9 +567,10 @@
colorName := self colorName.
colorName notEmptyOrNil ifTrue:[
+ "/ ^ Color name:(colorName asSymbol)
^ colorName asSymbol
].
- ^Color redByte:(red value) greenByte:(green value) blueByte:(blue value)
+ ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value)
!
color:aColor
@@ -603,19 +604,14 @@
clr isColor ifTrue:[
"not a symbol"
self setPreview:clr.
- self htmlColorNameHolder value:(clr htmlPrintString).
+ self htmlColorNameHolder value:(clr htmlPrintString) withoutNotifying:self.
].
!
-colorNameChanged
+colorChangedTo:clr
"compute rgb and hls (if possible)"
- |clr h|
-
- clr := Color name:colorNameHolder value ifIllegal:nil.
- clr isNil ifTrue:[
- ^ self
- ].
+ |h|
self red value:clr redByte withoutNotifying:self.
self green value:clr greenByte withoutNotifying:self.
@@ -631,6 +627,18 @@
self colorChanged
!
+colorNameChanged
+ "compute rgb and hls (if possible)"
+
+ |clr|
+
+ clr := Color name:colorNameHolder value ifIllegal:nil.
+ clr isNil ifTrue:[
+ ^ self
+ ].
+ self colorChangedTo:clr.
+!
+
copyColor
self window setClipboardObject:self color
!
@@ -651,6 +659,22 @@
self colorChanged
!
+htmlColorNameChanged
+ "compute rgb and hls (if possible)"
+
+ |clr|
+
+ clr := Color rgbValue:(Integer
+ readFrom:(htmlColorNameHolder value copyFrom:2)
+ radix:16
+ onError:nil).
+ clr isNil ifTrue:[
+ ^ self
+ ].
+ self colorNameHolder value:'' withoutNotifying:self.
+ self colorChangedTo:clr.
+!
+
pasteColor
|copyBufferColor|
@@ -731,6 +755,7 @@
htmlColorNameHolder
htmlColorNameHolder isNil ifTrue:[
htmlColorNameHolder := '' asValue.
+ htmlColorNameHolder addDependent:self.
].
^htmlColorNameHolder
!
@@ -773,20 +798,27 @@
(changedObject == red
or:[changedObject == green
or:[changedObject == blue]]) ifTrue:[
- ^ self rgbSliderChanged
+ self rgbSliderChanged.
+ ^ self
].
(changedObject == hue
or:[changedObject == light
or:[changedObject == saturation]]) ifTrue:[
- ^ self hlsSliderChanged
+ self hlsSliderChanged.
+ ^ self
].
(changedObject == colorNameHolder) ifTrue:[
- ^ self colorNameChanged
+ self colorNameChanged.
+ ^ self
+ ].
+ (changedObject == htmlColorNameHolder) ifTrue:[
+ self htmlColorNameChanged.
+ ^ self
].
- ^ super update:something with:aParameter from:changedObject
+ super update:something with:aParameter from:changedObject
! !
!ColorEditDialog methodsFor:'startup & release'!