ColorEditDialog.st
author Claus Gittinger <cg@exept.de>
Tue, 14 May 2019 09:46:21 +0200
changeset 3663 9d49ecf8661a
parent 3657 bb1dd1360035
child 3687 a3c56c0e4157
permissions -rw-r--r--
#UI_ENHANCEMENT by cg
class: TabListEditor class
changed:
#canvasSpec
#menu
#windowSpec
     1 "{ Encoding: utf8 }"
     2 
     3 "
     4  COPYRIGHT (c) 1995 by eXept Software AG
     5               All Rights Reserved
     6 
     7  This software is furnished under a license and may be used
     8  only in accordance with the terms of that license and with the
     9  inclusion of the above copyright notice.   This software may not
    10  be provided or otherwise made available to, or used by, any
    11  other person.  No title to or ownership of the software is
    12  hereby transferred.
    13 "
    14 "{ Package: 'stx:libtool2' }"
    15 
    16 "{ NameSpace: Smalltalk }"
    17 
    18 SimpleDialog subclass:#ColorEditDialog
    19 	instanceVariableNames:'red green blue hue light saturation colorNameHolder
    20 		htmlColorNameHolder colorDefinitionStringHolder previewBox
    21 		brightnessStringHolder'
    22 	classVariableNames:''
    23 	poolDictionaries:''
    24 	category:'Interface-UIPainter'
    25 !
    26 
    27 !ColorEditDialog class methodsFor:'documentation'!
    28 
    29 copyright
    30 "
    31  COPYRIGHT (c) 1995 by eXept Software AG
    32               All Rights Reserved
    33 
    34  This software is furnished under a license and may be used
    35  only in accordance with the terms of that license and with the
    36  inclusion of the above copyright notice.   This software may not
    37  be provided or otherwise made available to, or used by, any
    38  other person.  No title to or ownership of the software is
    39  hereby transferred.
    40 "
    41 !
    42 
    43 documentation
    44 "
    45     An edit-dialog for colors.
    46 "
    47 !
    48 
    49 examples
    50 "
    51                                                                                 [exBegin]                                      
    52     |editor color|
    53 
    54     editor := ColorEditDialog new.
    55     editor color:(Color green).
    56     editor open.
    57     editor accepted ifTrue:[
    58         editor color inspect.
    59     ]
    60                                                                                 [exEnd]
    61 "
    62 ! !
    63 
    64 !ColorEditDialog class methodsFor:'help specs'!
    65 
    66 helpSpec
    67     "This resource specification was automatically generated
    68      by the UIHelpTool of ST/X."
    69 
    70     "Do not manually edit this!! If it is corrupted,
    71      the UIHelpTool may not be able to read the specification."
    72 
    73     "
    74      UIHelpTool openOnClass:ColorEditDialog    
    75     "
    76 
    77     <resource: #help>
    78 
    79     ^ super helpSpec addPairsFrom:#(
    80 
    81 #pickColor
    82 'Pick a Color from the Screen'
    83 
    84 #brightness
    85 'The Color''s brightness value (0..1)'
    86 
    87 #colorDefinitionString
    88 'A Smalltalk expression to construct the color'
    89 
    90 #colorName
    91 'The standard colorname (as used in the X-Window System), if known'
    92 
    93 #copyToClipboard
    94 'Copy the color to the clipboard'
    95 
    96 #hlsMixer
    97 'Mix color from hls (hue-light-saturation) components'
    98 
    99 #htmlColorName
   100 'The color as used in an HTML page'
   101 
   102 #pasteFromClipboard
   103 'Paste color from the Clipboard'
   104 
   105 #rgbMixer
   106 'Mix color from rgb (red-green-blue) components'
   107 
   108 )
   109 
   110     "Modified: / 09-08-2012 / 09:35:29 / cg"
   111 ! !
   112 
   113 !ColorEditDialog class methodsFor:'image specs'!
   114 
   115 hueGradientImage
   116     "This resource specification was automatically generated
   117      by the ImageEditor of ST/X."
   118 
   119     "Do not manually edit this!! If it is corrupted,
   120      the ImageEditor may not be able to read the specification."
   121 
   122     "
   123      self hueGradientImage inspect
   124      ImageEditor openOnClass:self andSelector:#hueGradientImage
   125      Icon flushCachedIcons
   126     "
   127 
   128     <resource: #image>
   129 
   130     ^Icon
   131         constantNamed:'ColorEditDialog hueGradientImage'
   132         ifAbsentPut:[(Depth8Image new) width:400; height:50; bits:(ByteArray fromPackedString:'
   133 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE
   134 ''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9
   135 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   136 +;F/+1 XFA"R$+"8.K!!&''"N^''''@I\@%WVU$TEAPA(:N#"(*J"(X_G1-,[F0UEQUOS6]OR;]K\WM1\R8.K"9>_''9>_''9>''Y46''Y6]M#Z************4-KR4
   137 -KR4-B,+J2,+J2,+J0-LS@-LSD1APTEAPTEAPTFK"8.K"8.K"5YVU")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   138 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   139 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   140 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   141 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   142 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR
   143 _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   144 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)
   145 Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+
   146 J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   147 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   148 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   149 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   150 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZKHB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@
   151 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G
   152 !!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   153 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90
   154 BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   155 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7Z"("\''/K0?O2%)ZTQ+Q4\J-[T$IAD"$YD;N36(P(RD
   156 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   157 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   158 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   159 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   160 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   161 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   162 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   163 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   164 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%1\, 9 XF@P
   165 TZ^T%IR''KR4EKTYFQ$Y4]GP%IRU?ZF!!(*1*+!!5-[V5.I"P<OC5A<_@A<KB0,KI&Y&Y.H"H"OST6OSS@YFQ$0FQ$YNS$9NS%:^'')CP4MCP8VE#(8<OC2N#"</
   166 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   167 UJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6****
   168 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   169 MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   170 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   171  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_
   172 F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*
   173 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-
   174 Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<@G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9
   175 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   176 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   177 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   178 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   179 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   180 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   181 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4
   182 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24-AR5FQ$YF]GQ4IRT%
   183 _6!!(ZJ,Z*8][V5-["X$OC0=P_G0@_B0,KB2Y&Y&["H"H#45M#440FQ$YLA$YFS$9NS$9^''):P4MCP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   184 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   185 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   186 J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   187 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   188 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   189 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/
   190 [6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD1APTEAPTEAPTFK"8.K"8.K"5YVU")VU(HFA  HMCR_]7^9.;-ST4A@
   191 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   192 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   193 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   194 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   195 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   196 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   197 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   198 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   199 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   200 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   201 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   202 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   203 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZK
   204 HB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%22, 8NC 9Q
   205 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   206 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   207 UJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6****
   208 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,KE$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   209 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@TEAPV\''I2\-+Z6D!!HR_7=?_1(ZF(^G!!8^GM3\OTEAP@@@@@E!!XVE"[&9.[
   210 ]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   211  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_
   212 F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   213 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-APT-
   214 Q$YFQ''Q4-"T%IW=?_6"+F*.G!!5.GV8$7C5APT@@@@G0,VB0,&Y&[&8"H"H=MSX=MLA$YFS@YFQ$9^#$9NW):^$NE!!TMC!!XVN##0<OH:NK2</K2</K2=9^W%9
   215 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   216 +;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4
   217 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   218 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0
   219 LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   220 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   221 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   222 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@TEAPV\''I2\-+Z6D!!HR
   223 _7=?_1(ZF(^G!!8^GM3\OTEAP@@@@@E!!XVE"[&9.[]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   224 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   225 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   226 J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   227 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   228 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   229 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/
   230 [6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZKHB@ HB@ HB(*J")VU(HFA  HMCR_]7^9.;-ST4A@
   231 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   232 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   233 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90
   234 BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,K
   235 E$DVE$DVE!!XV"2@ HB@ HB@*J"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   236 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   237 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   238 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   239 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   240 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@
   241 @@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   242 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA
   243 ^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6<B@ HB@ HBM#X6''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   244 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   245 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   246 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   247 UJZ&)FM#XVF3,:>1+:<XFA X$)J8.K"8Y)8#'')90BW@IU5%YEAPT@ZN#(8*J"(*FG1<[[F1,EQTUS4=''S4.7R7E3\WD.K"8._''9>_''9>_)6]M)6]''SX6****
   248 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   249 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   250 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   251  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>/FA XFIJR.K"8.FZ^H9:^\@%0BU]YVQPTE@F#(:NJ"(*J!!!!<_
   252 F61,[ATUET=OY4=K-4-1\7E1K"8.K''9>_''9>_'':]''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   253 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-
   254 Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<@G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9
   255 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   256 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   257 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)
   258 Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   259 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   260 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''
   261 Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   262 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR
   263 _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   264 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   265 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   266 J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"
   267 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):
   268 ^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   269 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   270 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@
   271 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   272 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   273 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   274 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   275 E$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB S$:P$B%)ZV-+%9\\G!!9IRRH"#X4;N36(P(RD
   276 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   277 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   278 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&)Y&Y&Y&X#H2L#BP$IBU%YVPDA@PE;^7,8NC 8G1<_F1,[F1\WE6]''Y6^7-;]3\7M3[6=/[0HB@ HB@ H6
   279 M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   280 N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<
   281 @@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   282 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/+1 XFA"R$+"8.K!!&''"N^''''@I\@%WVU$TEAPA
   283 (:N#"(*J"(X_G1-,[F0UEQUOS6]OR;]K\WM1\R8.K"9>_''9>_''9>''Y46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK
   284 "8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JANS)BPJV%)Z6.W%10^G$%IH"JM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   285 TYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</
   286 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   287 UJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6****
   288 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%X*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   289 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   290 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   291  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>/FA XFIJR.K"8.FZ^H9:^\@%0BU]YVQPTE@F#(:NJ"(*J!!!!<_
   292 F61,[ATUET=OY4=K-4-1\7E1K"8.K''9>_''9>_'':]''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   293 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE
   294 ''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9
   295 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   296 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   297 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ%YVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   298 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0
   299 LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   300 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   301 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LE$EAPTEAPQYA"8.K"8.K"8-VU"(*U%ZBA XHBCP4
   302 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24-AR5FQ$YF]GQ4IRT%
   303 _6!!(ZJ,Z*8][V5-["X$OC0=P_G0@_B0,KB2Y&Y&["H"H#45M#440FQ$YLA$YFS$9NS$9^''):P4MCP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   304 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   305 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   306 J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   307 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):
   308 ^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   309 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   310 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ")VU(HFA  HMCR_]7^9.;-ST4A@
   311 %&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   312 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   313 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   314 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L
   315 E$EAPTEAPQYA"8.K"8.K"8-VU"(SU%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD
   316 !!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE
   317 !!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L
   318 W%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6
   319 ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVD5YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"
   320 N#*Z&#NCA0]6(*H''I;2<O3<)ZV%DZ4]GB+V5IBPQH)FQN3,=*DJD!!HR2WE22C&A XAAQ)9RT%J\-KPT-Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0<OTG1<
   321 @G0,KB0,&Y&Y&8"H"H=MSX=MLA$YFS@YFQ$9NS$9NW):^$MCP4MC!!XVN##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:
   322 .''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA
   323 (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@,KB0,VPQXVPQXVE!!ZK
   324 HB@ HB@ HB(*J!!MVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9Q
   325 TYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.GV8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</
   326 K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HAT
   327 UJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6****
   328 ********-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%X*U%ZBA XHBCP4''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5
   329 MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\,+HNC 8NTUFT%IRT%@T-APV\''I2\-+Y4D!!HR_6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[
   330 ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.+&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF-
   331  XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&).FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_
   332 F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSAYAPTEAPTDVPX.K"8.K"8.KU%X*
   333 J%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (D9N$I@)ZV%+Z9^WGA8^RT$"H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE
   334 ''I2\''KZ6]AHRD''=(ZG<ZF!!*GV8][!!3^IC0<OTG1<@@AXKE!!X&9.Y&7U5]X>O#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0<OH:NK2</K2</K2=9^W%9
   335 ^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3
   336 +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4
   337 -KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ%YVU(HFA  HMCR_]7^9.;-ST4A@%&9.,KAHRBD!!X#(:&)(3 0\G]#T5(JB<S)@?JV%)
   338 Z6.WQ125G$%IDRJM#S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAPTEAY2\''I26-+XRD!!I?_7=?F!!(Z!!8^G!!8\7M0=PTE@@@@@@VE!!XVI.[&9-5]WVO#8>O#3@0
   339 LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL
   340 #D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]''
   341 Y;^7-7M3\7M/[6=/@ HB@ HB@#X6M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1LPTEAPTEAPTEA"8.K"8.K"8-VU%ZBU%ZBA XHBCP4
   342 ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24EAR5FQ$YF]GR6IRT%
   343 _7=?ZJ,Z*8^GV8]["S\OTEAP@@@@_B1XKB2Y&Y.["H"H#45M#440FQ$YLA$YFS%:NS$9^''):P8VEP4NE!!X:NOC0<#(8/K2</K2</K7%9^W%9^W%9+*:.+*:.
   344 +&U%YVU%YVU%YTUEAIVU$9MRT+*:^G MW55]LSF- XEUUS8>)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&)
   345 .FY&Y&X#H98#\@$IBU%YVPDA@PF#(7,8NH(8G1<_F60[F1\WE6]''Y6^7-4-3\7M3[28.[0HB@ HB_ H6''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+
   346 J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*A%YV  XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE"N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$Q
   347 H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7<ZF!!*G!!8^G!!3\7C5APT@@@@@AXVE!!X&9.[&7U5]X>O#8>OLC@0LC@0LCA:^''):
   348 ^''):^(VE!!XVE!!XT<##0<OH:NK2</K2</K2=9^W%9^W%9^Z:.+*:.+*9%YVU%YVU%YVUEQPRU%YNST%J:.''!!8CU=]WSD1+XFAUUT>O*V%YH2LR$)2\!!4]&@LC
   349 Z&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3+;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.
   350 K&<B@ HB@''8BM)46''Y6]M#Z************4-KR4-KR4-B,+J2,+J2,+J0-LS@-LSD0VPTEAPTEAE$FK"8.K"8.K"5YVJ#QVU(HFA  HMCR_]7^9.;-ST4A@
   351 %&9.,KAHRBD!!X#(:&)(3 0\G]*J"I2^</C<?JV%)QF-GQ0*5-RP$DRJQ$S,;OZ!!B!!HRD,%22, 8NC 9QTYRT%IRTAR4EAY2\''I26-''PRD!!I?ZF!!?F!!(Z!!5.G
   352 V8\7"P<OC5A<_@@@VB1XVI.[&Y-5]WVO#8>O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH8<OC2N#"</K2</K2</^W%9^W%9^W&.+*:.+*:.YVU%YVU%YVU%
   353 QTTD%YVS$5IR.+)8^@5_WU41LZ6A UUUO#:%)VRL#D)J\''H]GY C@6)*_W4(JBZ!!C@1^W#H2V%*, HATUJZ&)FM#XVF3,:>1+;DX[V4X*Z&8Y&Y&Y"L#''"M0
   354 BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]''Y;^7R7M3\7M/K"9/@ HB@ I>@#Z]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,K
   355 E$DVE$DVE!!XV"2@ HB@ HB@*J"(b') ; colorMapFromArray:#[108 168 80 124 90 170 164 90 170 92 122 170 92 164 170 144 168 80 164 96 90 168 132 80 164 98 90 116 90 170 164 152 80 164 90 120 92 110 170 92 152 170 156 168 80 112 166 80 152 166 80 164 158 80 132 168 80 164 88 90 124 88 170 144 88 170 164 90 110 144 90 170 100 88 170 92 166 90 124 168 80 140 90 170 168 152 80 92 126 170 168 154 80 136 90 170 164 90 100 164 122 90 168 158 80 112 90 170 164 156 80 132 166 80 92 114 170 164 138 80 92 116 170 168 144 80 164 90 90 164 90 130 104 166 80 144 166 80 160 88 170 92 166 130 92 168 90 92 146 170 92 106 170 164 130 80 164 100 90 168 136 80 164 90 160 116 168 80 132 90 170 92 166 100 164 126 90 168 162 80 92 168 120 168 164 80 92 138 170 164 142 80 164 112 90 164 92 110 164 166 80 92 166 110 164 148 80 92 166 170 140 166 80 164 150 80 164 120 90 168 156 80 92 130 170 152 88 170 164 92 120 92 166 80 168 140 80 148 88 170 112 168 80 152 168 80 92 158 170 164 110 90 92 98 170 92 140 170 164 92 90 120 88 170 104 168 80 120 90 170 92 104 170 120 166 80 160 166 80 92 148 170 92 108 170 92 150 170 156 166 80 92 90 170 164 124 90 92 92 170 92 134 170 92 166 160 108 90 170 148 90 170 128 166 80 168 146 80 92 120 170 168 148 80 140 88 170 100 90 170 164 116 90 160 90 170 116 88 170 156 88 170 92 128 170 156 90 170 136 166 80 96 168 80 164 134 80 164 104 90 92 154 170 92 166 140 92 168 100 128 90 170 108 166 80 92 118 170 164 88 170 128 168 80 92 100 170 92 142 170 164 94 90 168 130 80 164 168 80 92 168 110 136 88 170 120 168 80 96 166 80 116 166 80 132 88 170 164 92 100 92 132 170 168 160 80 92 166 120 92 168 80 168 142 80 164 160 80 104 88 170 92 160 170 148 168 80 92 162 170 164 114 90 168 150 80 92 124 170 100 166 80 164 128 80 100 168 80 140 168 80 164 88 160 112 88 170 164 102 90 168 138 80 92 112 170 164 136 80 128 88 170 92 94 170 92 136 170 92 96 170 148 166 80 168 166 80 104 90 170 164 90 150 124 166 80 92 102 170 92 144 170 92 166 150 96 88 170 164 118 90 96 90 170 160 168 80 92 88 170 164 90 140 164 154 80 136 168 80 152 90 170 108 88 170 164 106 90 92 156 170 164 108 90 164 140 80]; yourself]
   356 !
   357 
   358 pickColorIcon
   359     <resource: #programImage>
   360 
   361     ^ ToolbarIconLibrary pipette16x16Icon
   362 
   363     "Modified: / 28-07-2018 / 09:59:14 / Claus Gittinger"
   364 ! !
   365 
   366 !ColorEditDialog class methodsFor:'interface specs'!
   367 
   368 windowSpec
   369     "This resource specification was automatically generated
   370      by the UIPainter of ST/X."
   371 
   372     "Do not manually edit this!! If it is corrupted,
   373      the UIPainter may not be able to read the specification."
   374 
   375     "
   376      UIPainter new openOnClass:ColorEditDialog andSelector:#windowSpec
   377      ColorEditDialog new openInterface:#windowSpec
   378      ColorEditDialog open
   379     "
   380 
   381     <resource: #canvas>
   382 
   383     ^ 
   384     #(FullSpec
   385        name: windowSpec
   386        uuid: 'cb8f8338-c034-11e8-b23c-b8f6b1108e05'
   387        window: 
   388       (WindowSpec
   389          label: 'Define Color'
   390          name: 'Define Color'
   391          uuid: '938aafda-c034-11e8-b23c-b8f6b1108e05'
   392          min: (Point 440 360)
   393          bounds: (Rectangle 0 0 469 362)
   394        )
   395        component: 
   396       (SpecCollection
   397          collection: (
   398           (VerticalPanelViewSpec
   399              name: 'RGBLabelPanel'
   400              layout: (LayoutFrame 0 0 0 0 90 0 76 0)
   401              uuid: '938ab2dc-c034-11e8-b23c-b8f6b1108e05'
   402              horizontalLayout: fit
   403              verticalLayout: spreadSpace
   404              horizontalSpace: 3
   405              verticalSpace: 3
   406              component: 
   407             (SpecCollection
   408                collection: (
   409                 (LabelSpec
   410                    label: 'Red:'
   411                    name: 'RedLabel'
   412                    uuid: '938ab4c6-c034-11e8-b23c-b8f6b1108e05'
   413                    translateLabel: true
   414                    adjust: right
   415                    useDefaultExtent: true
   416                  )
   417                 (LabelSpec
   418                    label: 'Green:'
   419                    name: 'GreenLabel'
   420                    uuid: '938ab69c-c034-11e8-b23c-b8f6b1108e05'
   421                    translateLabel: true
   422                    adjust: right
   423                    useDefaultExtent: true
   424                  )
   425                 (LabelSpec
   426                    label: 'Blue:'
   427                    name: 'BlueLabel'
   428                    uuid: '938ab7e6-c034-11e8-b23c-b8f6b1108e05'
   429                    translateLabel: true
   430                    adjust: right
   431                    useDefaultExtent: true
   432                  )
   433                 )
   434               
   435              )
   436            )
   437           (VerticalPanelViewSpec
   438              name: 'RGBSliderPanel'
   439              layout: (LayoutFrame 90 0 0 0 -177 1 76 0)
   440              uuid: '938ab930-c034-11e8-b23c-b8f6b1108e05'
   441              horizontalLayout: fit
   442              verticalLayout: spreadSpace
   443              horizontalSpace: 3
   444              verticalSpace: 3
   445              component: 
   446             (SpecCollection
   447                collection: (
   448                 (SliderSpec
   449                    name: 'RedSlider'
   450                    uuid: '938aba5c-c034-11e8-b23c-b8f6b1108e05'
   451                    tabable: false
   452                    model: red
   453                    orientation: horizontal
   454                    stop: 255
   455                    step: 1
   456                    backgroundColor: (Color 100.0 0.0 0.0)
   457                    extent: (Point 202 16)
   458                  )
   459                 (SliderSpec
   460                    name: 'GreenSlider'
   461                    uuid: '938abc3c-c034-11e8-b23c-b8f6b1108e05'
   462                    tabable: false
   463                    model: green
   464                    orientation: horizontal
   465                    stop: 255
   466                    step: 1
   467                    backgroundColor: (Color 0.0 100.0 0.0)
   468                    extent: (Point 202 16)
   469                  )
   470                 (SliderSpec
   471                    name: 'BlueSlider'
   472                    uuid: '938abd5e-c034-11e8-b23c-b8f6b1108e05'
   473                    tabable: false
   474                    model: blue
   475                    orientation: horizontal
   476                    stop: 255
   477                    step: 1
   478                    backgroundColor: (Color 0.0 0.0 100.0)
   479                    extent: (Point 202 16)
   480                  )
   481                 )
   482               
   483              )
   484            )
   485           (VerticalPanelViewSpec
   486              name: 'RGBFieldPanel'
   487              layout: (LayoutFrame -173 1 0 0 -130 1 76 0)
   488              uuid: '938abe94-c034-11e8-b23c-b8f6b1108e05'
   489              horizontalLayout: fit
   490              verticalLayout: spreadSpace
   491              horizontalSpace: 3
   492              verticalSpace: 3
   493              component: 
   494             (SpecCollection
   495                collection: (
   496                 (InputFieldSpec
   497                    name: 'RedField'
   498                    uuid: '938abfc0-c034-11e8-b23c-b8f6b1108e05'
   499                    model: red
   500                    type: numberInRange
   501                    numChars: 3
   502                    minValue: 0
   503                    maxValue: 255
   504                    acceptOnPointerLeave: false
   505                    extent: (Point 41 20)
   506                  )
   507                 (InputFieldSpec
   508                    name: 'GreenField'
   509                    uuid: '938ac218-c034-11e8-b23c-b8f6b1108e05'
   510                    model: green
   511                    type: numberInRange
   512                    numChars: 3
   513                    minValue: 0
   514                    maxValue: 255
   515                    acceptOnPointerLeave: false
   516                    extent: (Point 41 20)
   517                  )
   518                 (InputFieldSpec
   519                    name: 'BlueField'
   520                    uuid: '938ac3c6-c034-11e8-b23c-b8f6b1108e05'
   521                    model: blue
   522                    type: numberInRange
   523                    numChars: 3
   524                    minValue: 0
   525                    maxValue: 255
   526                    acceptOnPointerLeave: false
   527                    extent: (Point 41 20)
   528                  )
   529                 )
   530               
   531              )
   532            )
   533           (VerticalPanelViewSpec
   534              name: 'RGBFieldPanelHex'
   535              layout: (LayoutFrame -130 1 0 0 -100 1 76 0)
   536              uuid: '938ac56a-c034-11e8-b23c-b8f6b1108e05'
   537              horizontalLayout: fit
   538              verticalLayout: spreadSpace
   539              horizontalSpace: 3
   540              verticalSpace: 3
   541              component: 
   542             (SpecCollection
   543                collection: (
   544                 (InputFieldSpec
   545                    name: 'EntryField4'
   546                    uuid: '938ac696-c034-11e8-b23c-b8f6b1108e05'
   547                    model: red
   548                    type: hexIntegerInRange
   549                    numChars: 3
   550                    minValue: 0
   551                    maxValue: 255
   552                    acceptOnPointerLeave: false
   553                    extent: (Point 28 20)
   554                  )
   555                 (InputFieldSpec
   556                    name: 'EntryField5'
   557                    uuid: '938ac830-c034-11e8-b23c-b8f6b1108e05'
   558                    model: green
   559                    type: hexIntegerInRange
   560                    numChars: 3
   561                    minValue: 0
   562                    maxValue: 255
   563                    acceptOnPointerLeave: false
   564                    extent: (Point 28 20)
   565                  )
   566                 (InputFieldSpec
   567                    name: 'EntryField6'
   568                    uuid: '938ac9b6-c034-11e8-b23c-b8f6b1108e05'
   569                    model: blue
   570                    type: hexIntegerInRange
   571                    numChars: 3
   572                    minValue: 0
   573                    maxValue: 255
   574                    acceptOnPointerLeave: false
   575                    extent: (Point 28 20)
   576                  )
   577                 )
   578               
   579              )
   580            )
   581           (VerticalPanelViewSpec
   582              name: 'HLSLabelPanel'
   583              layout: (LayoutFrame 0 0 86 0 90 0 163 0)
   584              uuid: '938acb50-c034-11e8-b23c-b8f6b1108e05'
   585              horizontalLayout: fit
   586              verticalLayout: spreadSpace
   587              horizontalSpace: 3
   588              verticalSpace: 3
   589              component: 
   590             (SpecCollection
   591                collection: (
   592                 (LabelSpec
   593                    label: 'Hue:'
   594                    name: 'Label1'
   595                    uuid: '938acc5e-c034-11e8-b23c-b8f6b1108e05'
   596                    translateLabel: true
   597                    adjust: right
   598                    useDefaultExtent: true
   599                  )
   600                 (LabelSpec
   601                    label: 'Light:'
   602                    name: 'Label2'
   603                    uuid: '938acd94-c034-11e8-b23c-b8f6b1108e05'
   604                    translateLabel: true
   605                    adjust: right
   606                    useDefaultExtent: true
   607                  )
   608                 (LabelSpec
   609                    label: 'Saturation:'
   610                    name: 'Label3'
   611                    uuid: '938acec0-c034-11e8-b23c-b8f6b1108e05'
   612                    translateLabel: true
   613                    adjust: right
   614                    useDefaultExtent: true
   615                  )
   616                 )
   617               
   618              )
   619            )
   620           (VerticalPanelViewSpec
   621              name: 'HLSSliderPanel'
   622              layout: (LayoutFrame 90 0 86 0 -177 1 163 0)
   623              uuid: '938acff6-c034-11e8-b23c-b8f6b1108e05'
   624              horizontalLayout: fit
   625              verticalLayout: spreadSpace
   626              horizontalSpace: 3
   627              verticalSpace: 3
   628              component: 
   629             (SpecCollection
   630                collection: (
   631                 (SliderSpec
   632                    name: 'HueSlider'
   633                    uuid: '938ad104-c034-11e8-b23c-b8f6b1108e05'
   634                    tabable: false
   635                    model: hue
   636                    orientation: horizontal
   637                    stop: 359
   638                    step: 1
   639                    keyboardStep: 1
   640                    extent: (Point 202 16)
   641                  )
   642                 (SliderSpec
   643                    name: 'LightSlider'
   644                    uuid: '938ad226-c034-11e8-b23c-b8f6b1108e05'
   645                    tabable: false
   646                    model: light
   647                    orientation: horizontal
   648                    step: 1
   649                    backgroundColor: (Color 67.0 67.0 67.0)
   650                    keyboardStep: 1
   651                    extent: (Point 202 16)
   652                  )
   653                 (SliderSpec
   654                    name: 'SaturationSlider'
   655                    uuid: '938ad33e-c034-11e8-b23c-b8f6b1108e05'
   656                    tabable: false
   657                    model: saturation
   658                    orientation: horizontal
   659                    step: 1
   660                    backgroundColor: (Color 67.0 67.0 67.0)
   661                    keyboardStep: 1
   662                    extent: (Point 202 16)
   663                  )
   664                 )
   665               
   666              )
   667            )
   668           (VerticalPanelViewSpec
   669              name: 'HLSFieldPanel'
   670              layout: (LayoutFrame -173 1 86 0 -130 1 163 0)
   671              uuid: '938ad456-c034-11e8-b23c-b8f6b1108e05'
   672              horizontalLayout: fit
   673              verticalLayout: spreadSpace
   674              horizontalSpace: 3
   675              verticalSpace: 3
   676              component: 
   677             (SpecCollection
   678                collection: (
   679                 (InputFieldSpec
   680                    name: 'EntryField1'
   681                    uuid: '938ad55a-c034-11e8-b23c-b8f6b1108e05'
   682                    model: hue
   683                    type: numberInRange
   684                    numChars: 3
   685                    minValue: 0
   686                    maxValue: 359
   687                    acceptOnPointerLeave: false
   688                    extent: (Point 41 20)
   689                  )
   690                 (InputFieldSpec
   691                    name: 'EntryField2'
   692                    uuid: '938ad6fe-c034-11e8-b23c-b8f6b1108e05'
   693                    model: light
   694                    type: numberInRange
   695                    numChars: 3
   696                    minValue: 0
   697                    maxValue: 100
   698                    acceptOnPointerLeave: false
   699                    extent: (Point 41 20)
   700                  )
   701                 (InputFieldSpec
   702                    name: 'EntryField3'
   703                    uuid: '938ad884-c034-11e8-b23c-b8f6b1108e05'
   704                    model: saturation
   705                    type: numberInRange
   706                    numChars: 3
   707                    minValue: 0
   708                    maxValue: 100
   709                    acceptOnPointerLeave: false
   710                    extent: (Point 41 20)
   711                  )
   712                 )
   713               
   714              )
   715            )
   716           (ViewSpec
   717              name: 'PreviewBoxFrame'
   718              layout: (LayoutFrame -100 1 4 0.0 -3 1.0 -39 1.0)
   719              uuid: '938ada28-c034-11e8-b23c-b8f6b1108e05'
   720              level: 1
   721              component: 
   722             (SpecCollection
   723                collection: (
   724                 (LabelSpec
   725                    label: 'Preview'
   726                    name: 'PreviewBox'
   727                    layout: (LayoutFrame 2 0.0 2 0.0 -2 1.0 -2 1.0)
   728                    uuid: '938adb36-c034-11e8-b23c-b8f6b1108e05'
   729                    level: -1
   730                    translateLabel: true
   731                    postBuildCallback: postBuildPreviewBox:
   732                  )
   733                 )
   734               
   735              )
   736            )
   737           (LabelSpec
   738              label: 'Brightness:'
   739              name: 'Label5'
   740              layout: (LayoutFrame 0 0 175 0 90 0 197 0)
   741              activeHelpKey: brightness
   742              uuid: '938adc8a-c034-11e8-b23c-b8f6b1108e05'
   743              translateLabel: true
   744              adjust: right
   745            )
   746           (InputFieldSpec
   747              name: 'EntryField8'
   748              layout: (LayoutFrame 90 0 175 0 -277 1 197 0)
   749              activeHelpKey: brightness
   750              uuid: '938addb6-c034-11e8-b23c-b8f6b1108e05'
   751              model: brightnessStringHolder
   752              isReadOnly: true
   753              immediateAccept: false
   754              acceptOnReturn: true
   755              acceptOnTab: true
   756              acceptOnLostFocus: true
   757              acceptOnPointerLeave: true
   758            )
   759           (LabelSpec
   760              label: 'Color Name:'
   761              name: 'ColorNameLabel'
   762              layout: (LayoutFrame 2 0 214 0 135 0 236 0)
   763              activeHelpKey: colorName
   764              uuid: '938adf8c-c034-11e8-b23c-b8f6b1108e05'
   765              translateLabel: true
   766              adjust: right
   767            )
   768           (InputFieldSpec
   769              name: 'ColorNameField'
   770              layout: (LayoutFrame 135 0 214 0 -100 1 236 0)
   771              activeHelpKey: colorName
   772              uuid: '938ae0b8-c034-11e8-b23c-b8f6b1108e05'
   773              model: colorNameHolder
   774              immediateAccept: false
   775              acceptOnReturn: true
   776              acceptOnTab: true
   777              acceptOnLostFocus: true
   778              acceptOnPointerLeave: true
   779            )
   780           (LabelSpec
   781              label: 'HTML Name:'
   782              name: 'HTMLColorNameLabel'
   783              layout: (LayoutFrame 2 0 240 0 135 0 262 0)
   784              activeHelpKey: htmlColorName
   785              uuid: '938ae270-c034-11e8-b23c-b8f6b1108e05'
   786              translateLabel: true
   787              adjust: right
   788            )
   789           (InputFieldSpec
   790              name: 'MLHTColorNameFieldField'
   791              layout: (LayoutFrame 135 0 240 0 -100 1 262 0)
   792              activeHelpKey: htmlColorName
   793              uuid: '938ae39c-c034-11e8-b23c-b8f6b1108e05'
   794              model: htmlColorNameHolder
   795              immediateAccept: false
   796              acceptOnReturn: true
   797              acceptOnTab: true
   798              acceptOnLostFocus: true
   799              acceptOnPointerLeave: true
   800            )
   801           (LabelSpec
   802              label: 'Color Definition:'
   803              name: 'Label4'
   804              layout: (LayoutFrame 2 0 266 0 135 0 288 0)
   805              activeHelpKey: colorDefinitionString
   806              uuid: '938ae540-c034-11e8-b23c-b8f6b1108e05'
   807              translateLabel: true
   808              adjust: right
   809            )
   810           (InputFieldSpec
   811              name: 'EntryField7'
   812              layout: (LayoutFrame 135 0 266 0 -100 1 288 0)
   813              activeHelpKey: colorDefinitionString
   814              uuid: '938ae66c-c034-11e8-b23c-b8f6b1108e05'
   815              model: colorDefinitionStringHolder
   816              isReadOnly: true
   817              immediateAccept: false
   818              acceptOnReturn: true
   819              acceptOnTab: true
   820              acceptOnLostFocus: true
   821              acceptOnPointerLeave: true
   822            )
   823           (ActionButtonSpec
   824              label: 'Copy Color'
   825              name: 'CopyColor'
   826              layout: (LayoutFrame 12 0 298 0 120 0 320 0)
   827              activeHelpKey: hlsMixer
   828              uuid: '938ae810-c034-11e8-b23c-b8f6b1108e05'
   829              translateLabel: true
   830              resizeForLabel: true
   831              tabable: true
   832              model: copyColor
   833            )
   834           (ActionButtonSpec
   835              label: 'Paste Color'
   836              name: 'PasteColor'
   837              layout: (LayoutFrame 122 0 298 0 240 0 320 0)
   838              uuid: '938aea0e-c034-11e8-b23c-b8f6b1108e05'
   839              translateLabel: true
   840              resizeForLabel: true
   841              tabable: true
   842              model: pasteColor
   843            )
   844           (ActionButtonSpec
   845              label: 'pickColorIcon'
   846              name: 'Button1'
   847              layout: (LayoutFrame 285 0 298 0 312 0 325 0)
   848              activeHelpKey: pickColor
   849              uuid: '938aeb8a-c034-11e8-b23c-b8f6b1108e05'
   850              hasCharacterOrientedLabel: false
   851              translateLabel: true
   852              resizeForLabel: true
   853              tabable: true
   854              model: pickColor
   855            )
   856           (HorizontalPanelViewSpec
   857              name: 'HorizontalPanel1'
   858              layout: (LayoutFrame 0 0.0 -32 1 -16 1.0 0 1.0)
   859              uuid: '938aed10-c034-11e8-b23c-b8f6b1108e05'
   860              horizontalLayout: okCancelBox
   861              verticalLayout: center
   862              horizontalSpace: 3
   863              verticalSpace: 3
   864              reverseOrderIfOKAtLeft: true
   865              component: 
   866             (SpecCollection
   867                collection: (
   868                 (ActionButtonSpec
   869                    label: 'Cancel'
   870                    name: 'CancelButton'
   871                    uuid: '938aee96-c034-11e8-b23c-b8f6b1108e05'
   872                    translateLabel: true
   873                    resizeForLabel: false
   874                    tabable: true
   875                    model: cancel
   876                    extent: (Point 220 30)
   877                  )
   878                 (ActionButtonSpec
   879                    label: 'OK'
   880                    name: 'OKButton'
   881                    uuid: '938af01c-c034-11e8-b23c-b8f6b1108e05'
   882                    translateLabel: true
   883                    resizeForLabel: false
   884                    tabable: true
   885                    model: accept
   886                    isDefault: true
   887                    defaultable: true
   888                    extent: (Point 221 30)
   889                  )
   890                 )
   891               
   892              )
   893              keepSpaceForOSXResizeHandleH: true
   894            )
   895           )
   896         
   897        )
   898      )
   899 ! !
   900 
   901 !ColorEditDialog class methodsFor:'startup'!
   902 
   903 openOn:aColor
   904     ^ self new
   905         color:aColor;
   906         open;
   907         yourself
   908 
   909     "
   910      self openOn:Color red
   911     "
   912 ! !
   913 
   914 !ColorEditDialog methodsFor:'accessing'!
   915 
   916 color
   917     |colorName|
   918 
   919     colorName := self colorName.
   920     colorName notEmptyOrNil ifTrue:[
   921         ^ Color name:(colorName asSymbol)
   922     ].
   923     ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value)
   924 !
   925 
   926 color:aColor
   927     aColor isNil ifTrue:[
   928         ^ self
   929     ].
   930 
   931     aColor isSymbol ifTrue:[
   932         self colorNameHolder value:aColor
   933     ] ifFalse:[
   934         self red value:aColor redByte.
   935         self green value:aColor greenByte.
   936         self blue value:aColor blueByte.
   937     ]
   938 !
   939 
   940 colorName
   941     ^ colorNameHolder value
   942 !
   943 
   944 colorNameOrColor
   945     |colorName|
   946 
   947     colorName := self colorName.
   948     colorName notEmptyOrNil ifTrue:[
   949         "/ ^ Color name:(colorName asSymbol)
   950         ^ colorName asSymbol
   951     ].
   952     ^ Color 
   953         redByte:(red value) 
   954         greenByte:(green value) 
   955         blueByte:(blue value)
   956 
   957     "Modified (format): / 30-04-2019 / 15:12:35 / Claus Gittinger"
   958 !
   959 
   960 htmlColorName
   961     ^ htmlColorNameHolder value
   962 ! !
   963 
   964 !ColorEditDialog methodsFor:'actions'!
   965 
   966 colorChanged
   967     |clr nm|
   968 
   969     clr := self colorNameOrColor.
   970     clr isColor ifTrue:[
   971         "not a symbol"
   972         self setPreview:clr.
   973         self htmlColorNameHolder value:(clr htmlPrintString) withoutNotifying:self.
   974 
   975         nm := #(white black
   976                 gray lightGray darkGray
   977                 red green blue 
   978                 yellow magenta cyan
   979                 orange brown) detect:[:nm | clr = (Color perform:nm)] ifNone:nil.
   980         nm notNil ifTrue:[
   981             self colorDefinitionStringHolder value:('Color ',nm).
   982         ] ifFalse:[
   983             self colorDefinitionStringHolder value:('Color rgbValue:16r',(clr rgbValue hexPrintString leftPaddedTo:6 with:$0)).
   984         ].
   985         self brightnessStringHolder value:((clr brightness asFixedPoint:3) printString).
   986     ].
   987 
   988     "Modified: / 27-01-2011 / 12:54:04 / cg"
   989     "Modified: / 30-04-2019 / 15:09:48 / Claus Gittinger"
   990 !
   991 
   992 colorChangedTo:clr
   993     "compute rgb and hls (if possible)"
   994 
   995     |h|
   996 
   997     self red   value:clr redByte withoutNotifying:self.
   998     self green value:clr greenByte withoutNotifying:self.
   999     self blue  value:clr blueByte withoutNotifying:self.
  1000 
  1001     h := clr hue.
  1002     h notNil ifTrue:[
  1003         self hue        value:(h rounded) withoutNotifying:self.
  1004     ].
  1005     self light      value:(clr light rounded) withoutNotifying:self.
  1006     self saturation value:(clr saturation rounded) withoutNotifying:self.
  1007 
  1008     self colorChanged
  1009 
  1010     "Modified: / 27-01-2011 / 12:48:28 / cg"
  1011 !
  1012 
  1013 colorNameChanged
  1014     "compute rgb and hls (if possible)"
  1015 
  1016     |clr|
  1017 
  1018     clr := Color name:(self colorName) ifIllegal:nil.
  1019     clr isNil ifTrue:[
  1020         ^ self
  1021     ].
  1022     self colorChangedTo:clr.
  1023 !
  1024 
  1025 copyColor
  1026     self window setClipboardObject:self color
  1027 !
  1028 
  1029 copyColorName
  1030     self window setClipboardText:self htmlColorName
  1031 !
  1032 
  1033 hlsSliderChanged
  1034     "compute rgb"
  1035 
  1036     Color withRGBFromHue:hue value light:light value saturation:saturation value do:[:r :g :b |
  1037         red    value:(r * 255 / 100) rounded withoutNotifying:self.
  1038         green  value:(g * 255 / 100) rounded withoutNotifying:self.
  1039         blue   value:(b * 255 / 100) rounded withoutNotifying:self.
  1040     ].
  1041     colorNameHolder value:'' withoutNotifying:self.
  1042     self colorChanged
  1043 !
  1044 
  1045 htmlColorNameChanged
  1046     "compute rgb and hls (if possible)"
  1047 
  1048     |clr|
  1049 
  1050     htmlColorNameHolder value isEmptyOrNil ifTrue:[
  1051         ^ self.
  1052     ].
  1053 
  1054     clr := Color rgbValue:(Integer 
  1055                                 readFrom:(htmlColorNameHolder value copyFrom:2)
  1056                                 radix:16
  1057                                 onError:nil).
  1058     clr isNil ifTrue:[
  1059         ^ self
  1060     ].
  1061     self colorNameHolder value:'' withoutNotifying:self.
  1062     self colorChangedTo:clr.
  1063 !
  1064 
  1065 pasteColor
  1066     |copyBufferColor|
  1067 
  1068     copyBufferColor := self window getClipboardObject.
  1069     copyBufferColor isColor ifFalse:[
  1070         self window beepInEditor.
  1071         ^ self
  1072     ].
  1073     self color:copyBufferColor
  1074 !
  1075 
  1076 pickColor
  1077     |color|
  1078 
  1079     color := Color fromUserWithFeedBack:[:clr | self setPreview:clr].
  1080     color notNil ifTrue:[
  1081         self color:color.
  1082     ]
  1083 !
  1084 
  1085 rgbSliderChanged
  1086     "compute hls"
  1087 
  1088     |r g b|
  1089 
  1090     r := self red value.
  1091     g := self green value.
  1092     b := self blue value.
  1093 
  1094     Color withHLSFromRed:(r * 100 / 255) green:(g * 100 / 255) blue:(b * 100 / 255) do:[:h :l :s |
  1095         h isNil ifTrue:[
  1096             "/ achromatic
  1097         ] ifFalse:[
  1098             self hue    value:(h rounded) withoutNotifying:self.
  1099         ].
  1100         self light      value:(l rounded) withoutNotifying:self.
  1101         self saturation value:(s rounded) withoutNotifying:self.
  1102     ].
  1103     self colorNameHolder value:'' withoutNotifying:self.
  1104     self colorChanged
  1105 !
  1106 
  1107 setPreview:color
  1108     previewBox isNil ifTrue:[^ self "called before setup"].
  1109 
  1110     previewBox backgroundColor:color.
  1111     previewBox foregroundColor:color contrastingBlackOrWhite.
  1112 ! !
  1113 
  1114 !ColorEditDialog methodsFor:'aspects'!
  1115 
  1116 blue
  1117     blue isNil ifTrue:[
  1118         blue := 0 asValue.
  1119         blue addDependent:self.
  1120     ].
  1121     ^blue
  1122 !
  1123 
  1124 brightnessStringHolder
  1125     brightnessStringHolder isNil ifTrue:[
  1126         brightnessStringHolder := 0 asValue.
  1127         "/ brightness addDependent:self.
  1128     ].
  1129     ^ brightnessStringHolder
  1130 
  1131     "Created: / 27-01-2011 / 12:48:00 / cg"
  1132 !
  1133 
  1134 colorDefinitionStringHolder
  1135     colorDefinitionStringHolder isNil ifTrue:[
  1136         colorDefinitionStringHolder := '' asValue.
  1137         "/ colorDefinitionStringHolder addDependent:self.
  1138     ].
  1139     ^colorDefinitionStringHolder
  1140 
  1141     "Created: / 27-01-2011 / 12:38:12 / cg"
  1142 !
  1143 
  1144 colorNameHolder
  1145     colorNameHolder isNil ifTrue:[
  1146         colorNameHolder := '' asValue.
  1147         colorNameHolder addDependent:self.
  1148     ].
  1149     ^colorNameHolder
  1150 !
  1151 
  1152 green
  1153     green isNil ifTrue:[
  1154         green := 0 asValue.
  1155         green addDependent:self.
  1156     ].
  1157     ^green
  1158 !
  1159 
  1160 htmlColorNameHolder
  1161     htmlColorNameHolder isNil ifTrue:[
  1162         htmlColorNameHolder := '' asValue.
  1163         htmlColorNameHolder addDependent:self.
  1164     ].
  1165     ^htmlColorNameHolder
  1166 !
  1167 
  1168 hue
  1169     hue isNil ifTrue:[
  1170         hue := 0 asValue.
  1171         hue addDependent:self.
  1172     ].
  1173     ^hue
  1174 !
  1175 
  1176 light
  1177     light isNil ifTrue:[
  1178         light := 0 asValue.
  1179         light addDependent:self.
  1180     ].
  1181     ^light
  1182 !
  1183 
  1184 red
  1185     red isNil ifTrue:[
  1186         red := 0 asValue.
  1187         red addDependent:self.
  1188     ].
  1189     ^red
  1190 !
  1191 
  1192 saturation
  1193     saturation isNil ifTrue:[
  1194         saturation := 0 asValue.
  1195         saturation addDependent:self.
  1196     ].
  1197     ^saturation
  1198 ! !
  1199 
  1200 !ColorEditDialog methodsFor:'change & update'!
  1201 
  1202 update:something with:aParameter from:changedObject
  1203     (changedObject == red
  1204     or:[changedObject == green
  1205     or:[changedObject == blue]]) ifTrue:[
  1206         self rgbSliderChanged.
  1207         ^ self
  1208     ].
  1209 
  1210     (changedObject == hue
  1211     or:[changedObject == light
  1212     or:[changedObject == saturation]]) ifTrue:[
  1213         self hlsSliderChanged.
  1214         ^ self
  1215     ].
  1216 
  1217     (changedObject == colorNameHolder) ifTrue:[
  1218         self colorNameChanged.
  1219         ^ self
  1220     ].
  1221     (changedObject == htmlColorNameHolder) ifTrue:[
  1222         self htmlColorNameChanged.
  1223         ^ self
  1224     ].
  1225 
  1226     super update:something with:aParameter from:changedObject
  1227 ! !
  1228 
  1229 !ColorEditDialog methodsFor:'startup & release'!
  1230 
  1231 postBuildPreviewBox:aView
  1232     previewBox := aView
  1233 !
  1234 
  1235 postBuildWith:aBuilder
  1236     super postBuildWith:aBuilder.
  1237     (aBuilder componentAt:'HueSlider') 
  1238         viewBackground:
  1239             (ImageBackground new 
  1240                 image:(self class hueGradientImage);
  1241                 align:#fit;
  1242                 yourself).
  1243     self colorChanged.
  1244 
  1245     "Modified: / 6.9.1998 / 22:55:25 / cg"
  1246 ! !
  1247 
  1248 !ColorEditDialog class methodsFor:'documentation'!
  1249 
  1250 version
  1251     ^ '$Header$'
  1252 !
  1253 
  1254 version_CVS
  1255     ^ '$Header$'
  1256 ! !
  1257