cg@1840: " cg@1840: COPYRIGHT (c) 1995 by eXept Software AG cg@1840: All Rights Reserved cg@1840: cg@1840: This software is furnished under a license and may be used cg@1840: only in accordance with the terms of that license and with the cg@1840: inclusion of the above copyright notice. This software may not cg@1840: be provided or otherwise made available to, or used by, any cg@1840: other person. No title to or ownership of the software is cg@1840: hereby transferred. cg@1840: " cg@1840: "{ Package: 'stx:libtool2' }" cg@1840: cg@3179: "{ NameSpace: Smalltalk }" cg@3179: cg@1840: SimpleDialog subclass:#ColorEditDialog cg@2224: instanceVariableNames:'red green blue hue light saturation colorNameHolder cg@2831: htmlColorNameHolder colorDefinitionStringHolder previewBox cg@2831: brightnessStringHolder' cg@1840: classVariableNames:'' cg@1840: poolDictionaries:'' cg@1840: category:'Interface-UIPainter' cg@1840: ! cg@1840: cg@1840: !ColorEditDialog class methodsFor:'documentation'! cg@1840: cg@1840: copyright cg@1840: " cg@1840: COPYRIGHT (c) 1995 by eXept Software AG cg@1840: All Rights Reserved cg@1840: cg@1840: This software is furnished under a license and may be used cg@1840: only in accordance with the terms of that license and with the cg@1840: inclusion of the above copyright notice. This software may not cg@1840: be provided or otherwise made available to, or used by, any cg@1840: other person. No title to or ownership of the software is cg@1840: hereby transferred. cg@1840: " cg@1840: ! cg@1840: cg@1840: documentation cg@1840: " cg@1840: An edit-dialog for colors. cg@1840: " cg@1840: ! cg@1840: cg@1840: examples cg@1840: " cg@1840: [exBegin] cg@1840: |editor color| cg@1840: cg@1846: editor := ColorEditDialog new. cg@1840: editor color:(Color green). cg@1840: editor open. cg@1840: editor accepted ifTrue:[ cg@1840: editor color inspect. cg@1840: ] cg@1840: [exEnd] cg@1840: " cg@1840: ! ! cg@1840: cg@2266: !ColorEditDialog class methodsFor:'help specs'! cg@2266: cg@2266: flyByHelpSpec cg@2266: "This resource specification was automatically generated cg@2266: by the UIHelpTool of ST/X." cg@2266: cg@2266: "Do not manually edit this!! If it is corrupted, cg@2266: the UIHelpTool may not be able to read the specification." cg@2266: cg@2266: " cg@2266: UIHelpTool openOnClass:ColorEditDialog cg@2266: " cg@2266: cg@2266: cg@2266: cg@2266: ^ super flyByHelpSpec addPairsFrom:#( cg@2266: cg@2266: #pickColor cg@2266: 'Pick a Color from the Screen' cg@2266: cg@2266: ) cg@2266: ! cg@2266: cg@2266: helpSpec cg@2266: "This resource specification was automatically generated cg@2266: by the UIHelpTool of ST/X." cg@2266: cg@2266: "Do not manually edit this!! If it is corrupted, cg@2266: the UIHelpTool may not be able to read the specification." cg@2266: cg@2266: " cg@2266: UIHelpTool openOnClass:ColorEditDialog cg@2266: " cg@2266: cg@2266: cg@2266: cg@2266: ^ super helpSpec addPairsFrom:#( cg@2266: cg@2831: #brightness cg@2831: 'The Color''s brightness value (0..1)' cg@2831: cg@2831: #colorDefinitionString cg@2904: 'A Smalltalk expression to construct the color' cg@2831: cg@2831: #colorName cg@2831: 'The standard colorname (as used in the X-Window System), if known' cg@2831: cg@2266: #copyToClipboard cg@2266: 'Copy the color to the clipboard' cg@2266: cg@2266: #hlsMixer cg@2266: 'Mix color from hls (hue-light-saturation) components' cg@2266: cg@2831: #htmlColorName cg@2904: 'The color as used in an HTML page' cg@2831: cg@2266: #pasteFromClipboard cg@2266: 'Paste color from the Clipboard' cg@2266: cg@2266: #rgbMixer cg@2266: 'Mix color from rgb (red-green-blue) components' cg@2266: cg@2266: ) cg@2904: cg@2904: "Modified: / 09-08-2012 / 09:35:29 / cg" cg@2266: ! ! cg@2266: cg@2266: !ColorEditDialog class methodsFor:'image specs'! cg@2266: cg@3175: hueGradientImage cg@3175: "This resource specification was automatically generated cg@3175: by the ImageEditor of ST/X." cg@3175: cg@3175: "Do not manually edit this!! If it is corrupted, cg@3175: the ImageEditor may not be able to read the specification." cg@3175: cg@3175: " cg@3175: self hueGradientImage inspect cg@3175: ImageEditor openOnClass:self andSelector:#hueGradientImage cg@3175: Icon flushCachedIcons cg@3175: " cg@3175: cg@3175: cg@3175: cg@3175: ^Icon cg@3175: constantNamed:'ColorEditDialog hueGradientImage' cg@3175: ifAbsentPut:[(Depth8Image new) width:400; height:50; bits:(ByteArray fromPackedString:' cg@3175: 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 cg@3175: ''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;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 cg@3175: -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(JBO#3@0 cg@3175: LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]'' cg@3175: 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 cg@3175: ''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 cg@3175: _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,[F1[V5-[Z&) cg@3175: 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,+ cg@3175: 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$" cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW): cg@3175: ^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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<. cg@3175: K&O#3@0LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH81+:_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KSD1L cg@3175: 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 cg@3175: !!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 cg@3175: !!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L cg@3175: 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 cg@3175: ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE" cg@3175: N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0O*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 cg@3175: (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&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**** cg@3175: ********-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 cg@3175: 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&[ cg@3175: ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)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<_ cg@3175: 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"(* cg@3175: 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- cg@3175: Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0 cg@3175: LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]'' cg@3175: 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 cg@3175: ''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% cg@3175: _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)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&) cg@3175: .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,+ cg@3175: 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$" cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW): cg@3175: ^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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=/ cg@3175: [6O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0 cg@3175: 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 cg@3175: 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 cg@3175: !!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 cg@3175: !!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L cg@3175: 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 cg@3175: ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE" cg@3175: N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0O*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 cg@3175: (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81,[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**** cg@3175: ********-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 cg@3175: 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.[ cg@3175: ]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2)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<_ cg@3175: 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* cg@3175: 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- cg@3175: 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##0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;F1,V5-[V6)*VY&Y&Y&H2L#H0$IBP%YVU$A@PDA^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6O#3@0 cg@3175: LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH81,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]'' cg@3175: 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 cg@3175: ''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 cg@3175: _7=?_1(ZF(^G!!8^GM3\OTEAP@@@@@E!!XVE"[&9.[]WU5#8>O#8<0LC@0LC@0LG):^''):^''):!!XVE!!XVE!!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&) cg@3175: .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,+ cg@3175: 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 cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW): cg@3175: ^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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=/ cg@3175: [6O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+:_''9>_)6]M)6]''SX6************-KR4-KR4-KP+J2,+J2,+J2,KSD0KB0,K cg@3175: 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 cg@3175: !!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 cg@3175: !!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L cg@3175: 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 cg@3175: ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB0,KB1YAE!!YAE!!XVE(, HB@ HB@ J"(*J%YV XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE" cg@3175: N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0O*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 cg@3175: ^7-;NC 8NA<_G1,[F1,WE1]''Y6]''-;^7\7M3\6=/[6O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+:_''9>_)6]M)6]''SX6**** cg@3175: ********-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 cg@3175: 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&[ cg@3175: ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)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!!!!<_ cg@3175: 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* cg@3175: 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- cg@3175: Q$YFQ''Q4]BT%IW=(ZF"+F*.GV5-[V8&IC0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0 cg@3175: LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0BP$IVU%Y@PDA@ZN#^3 8"# _G1<[[A,[E1\WY6]'' cg@3175: 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 cg@3175: ''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 cg@3175: _6!!(_1(ZF(][!!5.GM8$OC0=P_G0@@E ,VE"[&9&[]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&) cg@3175: .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,+ cg@3175: 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$" cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7O#8>OLC@0LC@0LCA:^''): cg@3175: ^''):^(VE!!XVE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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<. cg@3175: K&O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0 cg@3175: 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 cg@3175: 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 cg@3175: !!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 cg@3175: !!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L cg@3175: 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 cg@3175: M#Z]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVJ%YV XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE" cg@3175: N#*Z&#NCA0]6MSV (K1N$C<)ZV%+Z9]GGKT^RT$QH(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0O*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 cg@3175: (: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 cg@3175: "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 cg@3175: 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!!XVEOH81+;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**** cg@3175: ********-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 cg@3175: 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&[ cg@3175: ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)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!!!!<_ cg@3175: 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* cg@3175: 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 cg@3175: ''I2\''KZ6-!!HRD''=?_7O#8>OLC@0LC@0LCA:^''):^''):^(VE!!XVE!!XT<##0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0 cg@3175: LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]'' cg@3175: 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 cg@3175: ''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% cg@3175: _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)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&) cg@3175: .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,+ cg@3175: 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 cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEKPTE''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW): cg@3175: ^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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<. cg@3175: K&O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0 cg@3175: 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 cg@3175: 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 cg@3175: !!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 cg@3175: !!S2NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0L cg@3175: 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 cg@3175: ''SZ]''Y46M************+R4-KR4-KR4J2,+J2,+J2,+B41LB41LSDEAPTEAPTEAPX.K"8.K"8.KU%YVD5YV XFB@ 4MI=7];&;.5MSPDBV[&:0,D!!HHRE" cg@3175: N#*Z&#NCA0]6(*H''I;2O*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 cg@3175: (:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81,[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**** cg@3175: ********-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 cg@3175: 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&[ cg@3175: ]WU5#8>O#8<0LC@0LC@0LG(9^''):^''):!!TMC!!XVE!!S2NOC0<#(8/K2)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<_ cg@3175: 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* cg@3175: 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 cg@3175: ''I2\''KZ6]AHRD''=(ZGO#8>OLC@0LC@0LCA:NW):^''):^(UCP8VE!!XT<##0O*V%YH2LR$)2\!!4]&@LCZ&)=_R (I*DLCE9^L#IZV*2@ EQT)*Z$X6M!!X[N3 cg@3175: +;F/,Q!!-[Q")*[!!&Y&Y&H2N^H7@IBP%YVU$A@PDA(:M;NC"JNA<_G1-,F1,WE1]''Y6]''-;]K\7M3\6<.K&O#3@0 cg@3175: LC@0LC@0^''):^''):^''*E!!XVE!!XVEOH81,[E-[V5-*Z%&Y&Y&Y"L#H2LIBP$IVU%Y@PDA@W-;^3 8NC _G1<[F1,[E1\WY6]'' cg@3175: 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 cg@3175: ''7]7.[.;T5M@PIY.[+B0RD !!HVH:N)*ZL8LGA7X5MZB /D:PO2%)ZV-+%4\\-Q9IRQD"#X4;N36(P(RD!!KI\WKHNXFA DEF''%IRT)24EAR5FQ$YF]GR6IRT% cg@3175: _7=?ZJ,Z*8^GV8]["S\OTEAP@@@@_B1XKB2Y&Y.["H"H#45M#440FQ$YLA$YFS%:NS$9^''):P8VEP4NE!!X:NOC0<#(8/K2)ZU$#H1JR''I2GQ6X@0M*Z''5=JB &(P0LW%82L%)Z+HB@UER&)*Q#X6E!!,;N/,Z>1FF5-FJ&) cg@3175: .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,+ cg@3175: 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 cg@3175: H(6MN3,=*DJD!!HR2WKJ2C 8NC%EQ%IRT%IPEAPTE''I2\''KZ6-!!HRD''=?_7O#8>OLC@0LC@0LCA:^''): cg@3175: ^''):^(VE!!XVE!!XT<##0O*V%YH2LR$)2\!!4]&@LC cg@3175: 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<. cg@3175: K&O#3@0LC@0LC@0^#%:^''):^''*EP4NE!!XVEOH81+;DX[V4X*Z&8Y&Y&Y"L#''"M0 cg@3175: 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 cg@3175: 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] cg@3175: ! cg@3175: cg@2266: pickColorIcon cg@2266: ^ ToolbarIconLibrary pipette16x16Icon cg@2266: ! ! cg@2266: cg@1840: !ColorEditDialog class methodsFor:'interface specs'! cg@1840: cg@1840: windowSpec cg@1840: "This resource specification was automatically generated cg@1840: by the UIPainter of ST/X." cg@1840: cg@1840: "Do not manually edit this!! If it is corrupted, cg@1840: the UIPainter may not be able to read the specification." cg@1840: cg@1840: " cg@2224: UIPainter new openOnClass:ColorEditDialog andSelector:#windowSpec cg@2224: ColorEditDialog new openInterface:#windowSpec cg@2224: ColorEditDialog open cg@1840: " cg@1840: cg@1840: cg@1840: cg@1840: ^ cg@3175: #(FullSpec cg@3175: name: windowSpec cg@3175: window: cg@3175: (WindowSpec cg@3175: label: 'Define Color' cg@3175: name: 'Define Color' cg@3175: min: (Point 440 360) cg@3175: bounds: (Rectangle 0 0 440 360) cg@3175: ) cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (VerticalPanelViewSpec cg@3175: name: 'RGBLabelPanel' cg@3175: layout: (LayoutFrame 0 0 0 0 90 0 76 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (LabelSpec cg@3175: label: 'Red:' cg@3175: name: 'RedLabel' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Green:' cg@3175: name: 'GreenLabel' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Blue:' cg@3175: name: 'BlueLabel' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@1840: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'RGBSliderPanel' cg@3175: layout: (LayoutFrame 90 0 0 0 -177 1 76 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (SliderSpec cg@3175: name: 'RedSlider' cg@3175: tabable: false cg@3175: model: red cg@3175: orientation: horizontal cg@3175: stop: 255 cg@3175: step: 1 cg@3175: backgroundColor: (Color 100.0 0.0 0.0) cg@3175: extent: (Point 173 16) cg@3175: ) cg@3175: (SliderSpec cg@3175: name: 'GreenSlider' cg@3175: tabable: false cg@3175: model: green cg@3175: orientation: horizontal cg@3175: stop: 255 cg@3175: step: 1 cg@3175: backgroundColor: (Color 0.0 100.0 0.0) cg@3175: extent: (Point 173 16) cg@3175: ) cg@3175: (SliderSpec cg@3175: name: 'BlueSlider' cg@3175: tabable: false cg@3175: model: blue cg@3175: orientation: horizontal cg@3175: stop: 255 cg@3175: step: 1 cg@3175: backgroundColor: (Color 0.0 0.0 100.0) cg@3175: extent: (Point 173 16) cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'RGBFieldPanel' cg@3175: layout: (LayoutFrame -173 1 0 0 -130 1 76 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (InputFieldSpec cg@3175: name: 'RedField' cg@3175: model: red cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@1840: ) cg@3175: (InputFieldSpec cg@3175: name: 'GreenField' cg@3175: model: green cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'BlueField' cg@3175: model: blue cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'RGBFieldPanelHex' cg@3175: layout: (LayoutFrame -130 1 0 0 -100 1 76 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (InputFieldSpec cg@3175: name: 'EntryField4' cg@3175: model: red cg@3175: type: hexIntegerInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 28 20) cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField5' cg@3175: model: green cg@3175: type: hexIntegerInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 28 20) cg@2224: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField6' cg@3175: model: blue cg@3175: type: hexIntegerInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 255 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 28 20) cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'HLSLabelPanel' cg@3175: layout: (LayoutFrame 0 0 86 0 90 0 163 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (LabelSpec cg@3175: label: 'Hue:' cg@3175: name: 'Label1' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@1840: ) cg@3175: (LabelSpec cg@3175: label: 'Light:' cg@3175: name: 'Label2' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Saturation:' cg@3175: name: 'Label3' cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: useDefaultExtent: true cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'HLSSliderPanel' cg@3175: layout: (LayoutFrame 90 0 86 0 -177 1 163 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (SliderSpec cg@3175: name: 'HueSlider' cg@3175: tabable: false cg@3175: model: hue cg@3175: orientation: horizontal cg@3175: stop: 359 cg@3175: step: 1 cg@3175: keyboardStep: 1 cg@3175: extent: (Point 173 16) cg@1840: ) cg@3175: (SliderSpec cg@3175: name: 'LightSlider' cg@3175: tabable: false cg@3175: model: light cg@3175: orientation: horizontal cg@3175: step: 1 cg@3175: backgroundColor: (Color 67.0 67.0 67.0) cg@3175: keyboardStep: 1 cg@3175: extent: (Point 173 16) cg@3175: ) cg@3175: (SliderSpec cg@3175: name: 'SaturationSlider' cg@3175: tabable: false cg@3175: model: saturation cg@3175: orientation: horizontal cg@3175: step: 1 cg@3175: backgroundColor: (Color 67.0 67.0 67.0) cg@3175: keyboardStep: 1 cg@3175: extent: (Point 173 16) cg@1840: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (VerticalPanelViewSpec cg@3175: name: 'HLSFieldPanel' cg@3175: layout: (LayoutFrame -173 1 86 0 -130 1 163 0) cg@3175: horizontalLayout: fit cg@3175: verticalLayout: spreadSpace cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (InputFieldSpec cg@3175: name: 'EntryField1' cg@3175: model: hue cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 359 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@1840: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField2' cg@3175: model: light cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 100 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField3' cg@3175: model: saturation cg@3175: type: numberInRange cg@3175: numChars: 3 cg@3175: minValue: 0 cg@3175: maxValue: 100 cg@3175: acceptOnPointerLeave: false cg@3175: extent: (Point 41 20) cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (ViewSpec cg@3175: name: 'PreviewBoxFrame' cg@3175: layout: (LayoutFrame -100 1 4 0.0 -3 1.0 -39 1.0) cg@3175: level: 1 cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (LabelSpec cg@3175: label: 'Preview' cg@3175: name: 'PreviewBox' cg@3175: layout: (LayoutFrame 2 0.0 2 0.0 -2 1.0 -2 1.0) cg@3175: level: -1 cg@3175: translateLabel: true cg@3175: postBuildCallback: postBuildPreviewBox: cg@1840: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Brightness:' cg@3175: name: 'Label5' cg@3175: layout: (LayoutFrame 0 0 175 0 90 0 197 0) cg@3175: activeHelpKey: brightness cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField8' cg@3175: layout: (LayoutFrame 90 0 175 0 -277 1 197 0) cg@3175: activeHelpKey: brightness cg@3175: model: brightnessStringHolder cg@3175: isReadOnly: true cg@3175: immediateAccept: false cg@3175: acceptOnReturn: true cg@3175: acceptOnTab: true cg@3175: acceptOnLostFocus: true cg@3175: acceptOnPointerLeave: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Color Name:' cg@3175: name: 'ColorNameLabel' cg@3175: layout: (LayoutFrame 2 0 214 0 135 0 236 0) cg@3175: activeHelpKey: colorName cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'ColorNameField' cg@3175: layout: (LayoutFrame 135 0 214 0 -122 1 236 0) cg@3175: activeHelpKey: colorName cg@3175: model: colorNameHolder cg@3175: immediateAccept: false cg@3175: acceptOnReturn: true cg@3175: acceptOnTab: true cg@3175: acceptOnLostFocus: true cg@3175: acceptOnPointerLeave: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'HTML Color Name:' cg@3175: name: 'HTMLColorNameLabel' cg@3175: layout: (LayoutFrame 2 0 240 0 135 0 262 0) cg@3175: activeHelpKey: htmlColorName cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'MLHTColorNameFieldField' cg@3175: layout: (LayoutFrame 135 0 240 0 -122 1 262 0) cg@3175: activeHelpKey: htmlColorName cg@3175: model: htmlColorNameHolder cg@3175: immediateAccept: false cg@3175: acceptOnReturn: true cg@3175: acceptOnTab: true cg@3175: acceptOnLostFocus: true cg@3175: acceptOnPointerLeave: true cg@3175: ) cg@3175: (LabelSpec cg@3175: label: 'Color Definition:' cg@3175: name: 'Label4' cg@3175: layout: (LayoutFrame 2 0 266 0 135 0 288 0) cg@3175: activeHelpKey: colorDefinitionString cg@3175: translateLabel: true cg@3175: adjust: right cg@3175: ) cg@3175: (InputFieldSpec cg@3175: name: 'EntryField7' cg@3175: layout: (LayoutFrame 135 0 266 0 -122 1 288 0) cg@3175: activeHelpKey: colorDefinitionString cg@3175: model: colorDefinitionStringHolder cg@3175: isReadOnly: true cg@3175: immediateAccept: false cg@3175: acceptOnReturn: true cg@3175: acceptOnTab: true cg@3175: acceptOnLostFocus: true cg@3175: acceptOnPointerLeave: true cg@3175: ) cg@3175: (ActionButtonSpec cg@3175: label: 'Copy Color' cg@3175: name: 'CopyColor' cg@3194: layout: (LayoutFrame 12 0 298 0 120 0 320 0) cg@3175: activeHelpKey: hlsMixer cg@3175: translateLabel: true cg@3175: resizeForLabel: true cg@3175: tabable: true cg@3175: model: copyColor cg@3175: ) cg@3175: (ActionButtonSpec cg@3175: label: 'Paste Color' cg@3175: name: 'PasteColor' cg@3194: layout: (LayoutFrame 122 0 298 0 240 0 320 0) cg@3175: translateLabel: true cg@3175: resizeForLabel: true cg@3175: tabable: true cg@3175: model: pasteColor cg@3175: ) cg@3175: (ActionButtonSpec cg@3175: label: 'pickColorIcon' cg@3175: name: 'Button1' cg@3175: layout: (LayoutFrame 285 0 298 0 312 0 325 0) cg@3175: activeHelpKey: pickColor cg@3175: hasCharacterOrientedLabel: false cg@3175: translateLabel: true cg@3175: resizeForLabel: true cg@3175: tabable: true cg@3175: model: pickColor cg@3175: ) cg@3175: (HorizontalPanelViewSpec cg@3175: name: 'HorizontalPanel1' cg@3175: layout: (LayoutFrame 0 0.0 -32 1 -16 1.0 0 1.0) cg@3175: horizontalLayout: okCancelBox cg@3175: verticalLayout: centerMax cg@3175: horizontalSpace: 3 cg@3175: verticalSpace: 3 cg@3175: reverseOrderIfOKAtLeft: true cg@3175: component: cg@3175: (SpecCollection cg@3175: collection: ( cg@3175: (ActionButtonSpec cg@3175: label: 'Cancel' cg@3175: name: 'CancelButton' cg@3175: translateLabel: true cg@3175: resizeForLabel: false cg@3175: tabable: true cg@3175: model: cancel cg@3175: useDefaultExtent: true cg@1840: ) cg@3175: (ActionButtonSpec cg@3175: label: 'OK' cg@3175: name: 'OKButton' cg@3175: translateLabel: true cg@3175: resizeForLabel: false cg@3175: tabable: true cg@3175: model: accept cg@3175: isDefault: true cg@3175: defaultable: true cg@3175: useDefaultExtent: true cg@3175: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: keepSpaceForOSXResizeHandleH: true cg@1840: ) cg@3175: ) cg@3175: cg@3175: ) cg@3175: ) cg@1840: ! ! cg@1840: cg@2347: !ColorEditDialog class methodsFor:'startup'! cg@2347: cg@2347: openOn:aColor cg@2347: ^ self new cg@2347: color:aColor; cg@2347: open; cg@2347: yourself cg@2347: cg@2347: " cg@2347: self openOn:Color red cg@2347: " cg@2347: ! ! cg@2347: cg@1840: !ColorEditDialog methodsFor:'accessing'! cg@1840: cg@1840: color sv@2279: |colorName| sv@2279: sv@2279: colorName := self colorName. sv@2279: colorName notEmptyOrNil ifTrue:[ cg@2574: ^ Color name:(colorName asSymbol) sv@2279: ]. cg@2326: ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value) cg@1840: ! cg@1840: sv@2279: color:aColor sv@2279: aColor isNil ifTrue:[ sv@2279: ^ self sv@2279: ]. sv@2279: sv@2279: aColor isSymbol ifTrue:[ sv@2279: self colorNameHolder value:aColor sv@2279: ] ifFalse:[ cg@1840: self red value:aColor redByte. cg@1840: self green value:aColor greenByte. cg@1840: self blue value:aColor blueByte. cg@1840: ] cg@1840: ! cg@1840: cg@1840: colorName cg@1840: ^ colorNameHolder value cg@2224: ! cg@2224: cg@2574: colorNameOrColor cg@2574: |colorName| cg@2574: cg@2574: colorName := self colorName. cg@2574: colorName notEmptyOrNil ifTrue:[ cg@2574: "/ ^ Color name:(colorName asSymbol) cg@2574: ^ colorName asSymbol cg@2574: ]. cg@2574: ^ Color redByte:(red value) greenByte:(green value) blueByte:(blue value) cg@2574: ! cg@2574: cg@2224: htmlColorName cg@2224: ^ htmlColorNameHolder value cg@1840: ! ! cg@1840: cg@1840: !ColorEditDialog methodsFor:'actions'! cg@1840: cg@1840: colorChanged cg@2831: |clr nm| cg@1840: cg@2574: clr := self colorNameOrColor. sv@2279: clr isColor ifTrue:[ sv@2279: "not a symbol" sv@2279: self setPreview:clr. cg@2326: self htmlColorNameHolder value:(clr htmlPrintString) withoutNotifying:self. cg@2831: cg@2831: nm := #(white red green blue black) detect:[:nm | clr = (Color perform:nm)] ifNone:nil. cg@2831: nm notNil ifTrue:[ cg@2831: self colorDefinitionStringHolder value:('Color ',nm). cg@2831: ] ifFalse:[ cg@2831: self colorDefinitionStringHolder value:('Color rgbValue:16r',(clr rgbValue hexPrintString leftPaddedTo:6 with:$0)). cg@2831: ]. cg@2831: self brightnessStringHolder value:((clr brightness asFixedPoint:3) printString). sv@2279: ]. cg@2831: cg@2831: "Modified: / 27-01-2011 / 12:54:04 / cg" cg@1840: ! cg@1840: cg@2326: colorChangedTo:clr cg@1840: "compute rgb and hls (if possible)" cg@1840: cg@2326: |h| cg@1840: sv@2279: self red value:clr redByte withoutNotifying:self. sv@2279: self green value:clr greenByte withoutNotifying:self. sv@2279: self blue value:clr blueByte withoutNotifying:self. cg@1840: cg@1840: h := clr hue. cg@1840: h notNil ifTrue:[ sv@2279: self hue value:(h rounded) withoutNotifying:self. cg@1840: ]. sv@2279: self light value:(clr light rounded) withoutNotifying:self. sv@2279: self saturation value:(clr saturation rounded) withoutNotifying:self. cg@1840: cg@1840: self colorChanged cg@2831: cg@2831: "Modified: / 27-01-2011 / 12:48:28 / cg" cg@1840: ! cg@1840: cg@2326: colorNameChanged cg@2326: "compute rgb and hls (if possible)" cg@2326: cg@2326: |clr| cg@2326: cg@3179: clr := Color name:(self colorName) ifIllegal:nil. cg@2326: clr isNil ifTrue:[ cg@2326: ^ self cg@2326: ]. cg@2326: self colorChangedTo:clr. cg@2326: ! cg@2326: cg@2224: copyColor cg@2224: self window setClipboardObject:self color cg@2224: ! cg@2224: cg@2224: copyColorName cg@2224: self window setClipboardText:self htmlColorName cg@2224: ! cg@2224: cg@1840: hlsSliderChanged cg@1840: "compute rgb" cg@1840: cg@1840: Color withRGBFromHue:hue value light:light value saturation:saturation value do:[:r :g :b | cg@1840: red value:(r * 255 / 100) rounded withoutNotifying:self. cg@1840: green value:(g * 255 / 100) rounded withoutNotifying:self. cg@1840: blue value:(b * 255 / 100) rounded withoutNotifying:self. cg@1840: ]. cg@1840: colorNameHolder value:'' withoutNotifying:self. cg@1840: self colorChanged cg@1840: ! cg@1840: cg@2326: htmlColorNameChanged cg@2326: "compute rgb and hls (if possible)" cg@2326: cg@2326: |clr| cg@2326: sv@2417: htmlColorNameHolder value isEmptyOrNil ifTrue:[ sv@2417: ^ self. sv@2417: ]. sv@2417: cg@2326: clr := Color rgbValue:(Integer cg@2326: readFrom:(htmlColorNameHolder value copyFrom:2) cg@2326: radix:16 cg@2326: onError:nil). cg@2326: clr isNil ifTrue:[ cg@2326: ^ self cg@2326: ]. cg@2326: self colorNameHolder value:'' withoutNotifying:self. cg@2326: self colorChangedTo:clr. cg@2326: ! cg@2326: cg@2224: pasteColor cg@2224: |copyBufferColor| cg@2224: cg@2224: copyBufferColor := self window getClipboardObject. cg@2224: copyBufferColor isColor ifFalse:[ cg@2521: UserPreferences current beepInEditor ifTrue:[ cg@2521: self window beep. cg@2521: ]. cg@2224: ^ self cg@2224: ]. cg@2224: self color:copyBufferColor cg@2224: ! cg@2224: cg@2266: pickColor cg@2266: |color| cg@2266: cg@2266: color := Color fromUserWithFeedBack:[:clr | self setPreview:clr]. cg@2266: color notNil ifTrue:[ cg@2266: self color:color. cg@2266: ] cg@2266: ! cg@2266: cg@1840: rgbSliderChanged cg@1840: "compute hls" cg@1840: cg@1840: |r g b| cg@1840: cg@1840: r := self red value. cg@1840: g := self green value. cg@1840: b := self blue value. cg@1840: cg@1840: Color withHLSFromRed:(r * 100 / 255) green:(g * 100 / 255) blue:(b * 100 / 255) do:[:h :l :s | cg@1840: h isNil ifTrue:[ cg@1840: "/ achromatic cg@1840: ] ifFalse:[ cg@1840: self hue value:(h rounded) withoutNotifying:self. cg@1840: ]. cg@1840: self light value:(l rounded) withoutNotifying:self. cg@1840: self saturation value:(s rounded) withoutNotifying:self. cg@1840: ]. cg@1840: self colorNameHolder value:'' withoutNotifying:self. cg@1840: self colorChanged cg@2266: ! cg@2266: cg@2266: setPreview:color cg@2266: previewBox isNil ifTrue:[^ self "called before setup"]. cg@2266: cg@2266: previewBox backgroundColor:color. sv@2941: previewBox foregroundColor:color contrastingBlackOrWhite. cg@1840: ! ! cg@1840: cg@1840: !ColorEditDialog methodsFor:'aspects'! cg@1840: cg@1840: blue cg@1840: blue isNil ifTrue:[ cg@1840: blue := 0 asValue. cg@1840: blue addDependent:self. cg@1840: ]. cg@1840: ^blue cg@1840: ! cg@1840: cg@2831: brightnessStringHolder cg@2831: brightnessStringHolder isNil ifTrue:[ cg@2831: brightnessStringHolder := 0 asValue. cg@2831: "/ brightness addDependent:self. cg@2831: ]. cg@2831: ^ brightnessStringHolder cg@2831: cg@2831: "Created: / 27-01-2011 / 12:48:00 / cg" cg@2831: ! cg@2831: cg@2831: colorDefinitionStringHolder cg@2831: colorDefinitionStringHolder isNil ifTrue:[ cg@2831: colorDefinitionStringHolder := '' asValue. cg@2831: "/ colorDefinitionStringHolder addDependent:self. cg@2831: ]. cg@2831: ^colorDefinitionStringHolder cg@2831: cg@2831: "Created: / 27-01-2011 / 12:38:12 / cg" cg@2831: ! cg@2831: cg@1840: colorNameHolder cg@1840: colorNameHolder isNil ifTrue:[ cg@1840: colorNameHolder := '' asValue. cg@1840: colorNameHolder addDependent:self. cg@1840: ]. cg@1840: ^colorNameHolder cg@1840: ! cg@1840: cg@1840: green cg@1840: green isNil ifTrue:[ cg@1840: green := 0 asValue. cg@1840: green addDependent:self. cg@1840: ]. cg@1840: ^green cg@1840: ! cg@1840: cg@2224: htmlColorNameHolder cg@2224: htmlColorNameHolder isNil ifTrue:[ cg@2224: htmlColorNameHolder := '' asValue. cg@2326: htmlColorNameHolder addDependent:self. cg@2224: ]. cg@2224: ^htmlColorNameHolder cg@2224: ! cg@2224: cg@1840: hue cg@1840: hue isNil ifTrue:[ cg@1840: hue := 0 asValue. cg@1840: hue addDependent:self. cg@1840: ]. cg@1840: ^hue cg@1840: ! cg@1840: cg@1840: light cg@1840: light isNil ifTrue:[ cg@1840: light := 0 asValue. cg@1840: light addDependent:self. cg@1840: ]. cg@1840: ^light cg@1840: ! cg@1840: cg@1840: red cg@1840: red isNil ifTrue:[ cg@1840: red := 0 asValue. cg@1840: red addDependent:self. cg@1840: ]. cg@1840: ^red cg@1840: ! cg@1840: cg@1840: saturation cg@1840: saturation isNil ifTrue:[ cg@1840: saturation := 0 asValue. cg@1840: saturation addDependent:self. cg@1840: ]. cg@1840: ^saturation cg@1840: ! ! cg@1840: cg@1840: !ColorEditDialog methodsFor:'change & update'! cg@1840: cg@1840: update:something with:aParameter from:changedObject cg@1840: (changedObject == red cg@1840: or:[changedObject == green cg@1840: or:[changedObject == blue]]) ifTrue:[ cg@2326: self rgbSliderChanged. cg@2326: ^ self cg@1840: ]. cg@1840: cg@1840: (changedObject == hue cg@1840: or:[changedObject == light cg@1840: or:[changedObject == saturation]]) ifTrue:[ cg@2326: self hlsSliderChanged. cg@2326: ^ self cg@1840: ]. cg@1840: cg@1840: (changedObject == colorNameHolder) ifTrue:[ cg@2326: self colorNameChanged. cg@2326: ^ self cg@2326: ]. cg@2326: (changedObject == htmlColorNameHolder) ifTrue:[ cg@2326: self htmlColorNameChanged. cg@2326: ^ self cg@1840: ]. cg@1840: cg@2326: super update:something with:aParameter from:changedObject cg@1840: ! ! cg@1840: cg@1840: !ColorEditDialog methodsFor:'startup & release'! cg@1840: cg@2266: postBuildPreviewBox:aView cg@2266: previewBox := aView cg@2266: ! cg@2266: cg@1840: postBuildWith:aBuilder cg@1840: super postBuildWith:aBuilder. cg@3175: (aBuilder componentAt:'HueSlider') cg@3175: viewBackground: cg@3175: (ImageBackground new cg@3175: image:(self class hueGradientImage); cg@3175: align:#fit; cg@3175: yourself). cg@1840: self colorChanged. cg@1840: cg@1840: "Modified: / 6.9.1998 / 22:55:25 / cg" cg@1840: ! ! cg@1840: cg@1840: !ColorEditDialog class methodsFor:'documentation'! cg@1840: cg@1840: version cg@1840: ^ '$Header$' cg@2831: ! cg@2831: cg@2831: version_CVS cg@2831: ^ '$Header$' cg@1840: ! ! cg@3175: