Diffstat (limited to 'frontend/gamma/js/MochiKit/Color.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/gamma/js/MochiKit/Color.js | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/frontend/gamma/js/MochiKit/Color.js b/frontend/gamma/js/MochiKit/Color.js index 27dc2d0..f2a0f67 100644 --- a/frontend/gamma/js/MochiKit/Color.js +++ b/frontend/gamma/js/MochiKit/Color.js | |||
@@ -1,211 +1,211 @@ | |||
1 | /*** | 1 | /*** |
2 | 2 | ||
3 | MochiKit.Color 1.5 | 3 | MochiKit.Color 1.5 |
4 | 4 | ||
5 | See <http://mochikit.com/> for documentation, downloads, license, etc. | 5 | See <http://mochikit.com/> for documentation, downloads, license, etc. |
6 | 6 | ||
7 | (c) 2005 Bob Ippolito and others. All rights Reserved. | 7 | (c) 2005 Bob Ippolito and others. All rights Reserved. |
8 | 8 | ||
9 | ***/ | 9 | ***/ |
10 | 10 | ||
11 | MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']); | 11 | MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']); |
12 | 12 | ||
13 | /** @id MochiKit.Color.Color */ | 13 | /** @id MochiKit.Color.Color */ |
14 | MochiKit.Color.Color = function (red, green, blue, alpha) { | 14 | MochiKit.Color.Color = function (red, green, blue, alpha) { |
15 | if (typeof(alpha) == 'undefined' || alpha === null) { | 15 | if (typeof(alpha) == 'undefined' || alpha === null) { |
16 | alpha = 1.0; | 16 | alpha = 1.0; |
17 | } | 17 | } |
18 | this.rgb = { | 18 | this.rgb = { |
19 | r: red, | 19 | r: red, |
20 | g: green, | 20 | g: green, |
21 | b: blue, | 21 | b: blue, |
22 | a: alpha | 22 | a: alpha |
23 | }; | 23 | }; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | 26 | ||
27 | // Prototype methods | 27 | // Prototype methods |
28 | 28 | ||
29 | MochiKit.Color.Color.prototype = { | 29 | MochiKit.Color.Color.prototype = { |
30 | 30 | ||
31 | __class__: MochiKit.Color.Color, | 31 | __class__: MochiKit.Color.Color, |
32 | 32 | ||
33 | /** @id MochiKit.Color.Color.prototype.colorWithAlpha */ | 33 | /** @id MochiKit.Color.Color.prototype.colorWithAlpha */ |
34 | colorWithAlpha: function (alpha) { | 34 | colorWithAlpha: function (alpha) { |
35 | var rgb = this.rgb; | 35 | var rgb = this.rgb; |
36 | var m = MochiKit.Color; | 36 | var m = MochiKit.Color; |
37 | return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha); | 37 | return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha); |
38 | }, | 38 | }, |
39 | 39 | ||
40 | /** @id MochiKit.Color.Color.prototype.colorWithHue */ | 40 | /** @id MochiKit.Color.Color.prototype.colorWithHue */ |
41 | colorWithHue: function (hue) { | 41 | colorWithHue: function (hue) { |
42 | // get an HSL model, and set the new hue... | 42 | // get an HSL model, and set the new hue... |
43 | var hsl = this.asHSL(); | 43 | var hsl = this.asHSL(); |
44 | hsl.h = hue; | 44 | hsl.h = hue; |
45 | var m = MochiKit.Color; | 45 | var m = MochiKit.Color; |
46 | // convert back to RGB... | 46 | // convert back to RGB... |
47 | return m.Color.fromHSL(hsl); | 47 | return m.Color.fromHSL(hsl); |
48 | }, | 48 | }, |
49 | 49 | ||
50 | /** @id MochiKit.Color.Color.prototype.colorWithSaturation */ | 50 | /** @id MochiKit.Color.Color.prototype.colorWithSaturation */ |
51 | colorWithSaturation: function (saturation) { | 51 | colorWithSaturation: function (saturation) { |
52 | // get an HSL model, and set the new hue... | 52 | // get an HSL model, and set the new hue... |
53 | var hsl = this.asHSL(); | 53 | var hsl = this.asHSL(); |
54 | hsl.s = saturation; | 54 | hsl.s = saturation; |
55 | var m = MochiKit.Color; | 55 | var m = MochiKit.Color; |
56 | // convert back to RGB... | 56 | // convert back to RGB... |
57 | return m.Color.fromHSL(hsl); | 57 | return m.Color.fromHSL(hsl); |
58 | }, | 58 | }, |
59 | 59 | ||
60 | /** @id MochiKit.Color.Color.prototype.colorWithLightness */ | 60 | /** @id MochiKit.Color.Color.prototype.colorWithLightness */ |
61 | colorWithLightness: function (lightness) { | 61 | colorWithLightness: function (lightness) { |
62 | // get an HSL model, and set the new hue... | 62 | // get an HSL model, and set the new hue... |
63 | var hsl = this.asHSL(); | 63 | var hsl = this.asHSL(); |
64 | hsl.l = lightness; | 64 | hsl.l = lightness; |
65 | var m = MochiKit.Color; | 65 | var m = MochiKit.Color; |
66 | // convert back to RGB... | 66 | // convert back to RGB... |
67 | return m.Color.fromHSL(hsl); | 67 | return m.Color.fromHSL(hsl); |
68 | }, | 68 | }, |
69 | 69 | ||
70 | /** @id MochiKit.Color.Color.prototype.darkerColorWithLevel */ | 70 | /** @id MochiKit.Color.Color.prototype.darkerColorWithLevel */ |
71 | darkerColorWithLevel: function (level) { | 71 | darkerColorWithLevel: function (level) { |
72 | var hsl = this.asHSL(); | 72 | var hsl = this.asHSL(); |
73 | hsl.l = Math.max(hsl.l - level, 0); | 73 | hsl.l = Math.max(hsl.l - level, 0); |
74 | var m = MochiKit.Color; | 74 | var m = MochiKit.Color; |
75 | return m.Color.fromHSL(hsl); | 75 | return m.Color.fromHSL(hsl); |
76 | }, | 76 | }, |
77 | 77 | ||
78 | /** @id MochiKit.Color.Color.prototype.lighterColorWithLevel */ | 78 | /** @id MochiKit.Color.Color.prototype.lighterColorWithLevel */ |
79 | lighterColorWithLevel: function (level) { | 79 | lighterColorWithLevel: function (level) { |
80 | var hsl = this.asHSL(); | 80 | var hsl = this.asHSL(); |
81 | hsl.l = Math.min(hsl.l + level, 1); | 81 | hsl.l = Math.min(hsl.l + level, 1); |
82 | var m = MochiKit.Color; | 82 | var m = MochiKit.Color; |
83 | return m.Color.fromHSL(hsl); | 83 | return m.Color.fromHSL(hsl); |
84 | }, | 84 | }, |
85 | 85 | ||
86 | /** @id MochiKit.Color.Color.prototype.blendedColor */ | 86 | /** @id MochiKit.Color.Color.prototype.blendedColor */ |
87 | blendedColor: function (other, /* optional */ fraction) { | 87 | blendedColor: function (other, /* optional */ fraction) { |
88 | if (typeof(fraction) == 'undefined' || fraction === null) { | 88 | if (typeof(fraction) == 'undefined' || fraction === null) { |
89 | fraction = 0.5; | 89 | fraction = 0.5; |
90 | } | 90 | } |
91 | var sf = 1.0 - fraction; | 91 | var sf = 1.0 - fraction; |
92 | var s = this.rgb; | 92 | var s = this.rgb; |
93 | var d = other.rgb; | 93 | var d = other.rgb; |
94 | var df = fraction; | 94 | var df = fraction; |
95 | return MochiKit.Color.Color.fromRGB( | 95 | return MochiKit.Color.Color.fromRGB( |
96 | (s.r * sf) + (d.r * df), | 96 | (s.r * sf) + (d.r * df), |
97 | (s.g * sf) + (d.g * df), | 97 | (s.g * sf) + (d.g * df), |
98 | (s.b * sf) + (d.b * df), | 98 | (s.b * sf) + (d.b * df), |
99 | (s.a * sf) + (d.a * df) | 99 | (s.a * sf) + (d.a * df) |
100 | ); | 100 | ); |
101 | }, | 101 | }, |
102 | 102 | ||
103 | /** @id MochiKit.Color.Color.prototype.compareRGB */ | 103 | /** @id MochiKit.Color.Color.prototype.compareRGB */ |
104 | compareRGB: function (other) { | 104 | compareRGB: function (other) { |
105 | var a = this.asRGB(); | 105 | var a = this.asRGB(); |
106 | var b = other.asRGB(); | 106 | var b = other.asRGB(); |
107 | return MochiKit.Base.compare( | 107 | return MochiKit.Base.compare( |
108 | [a.r, a.g, a.b, a.a], | 108 | [a.r, a.g, a.b, a.a], |
109 | [b.r, b.g, b.b, b.a] | 109 | [b.r, b.g, b.b, b.a] |
110 | ); | 110 | ); |
111 | }, | 111 | }, |
112 | 112 | ||
113 | /** @id MochiKit.Color.Color.prototype.isLight */ | 113 | /** @id MochiKit.Color.Color.prototype.isLight */ |
114 | isLight: function () { | 114 | isLight: function () { |
115 | return this.asHSL().b > 0.5; | 115 | return this.asHSL().l > 0.5; |
116 | }, | 116 | }, |
117 | 117 | ||
118 | /** @id MochiKit.Color.Color.prototype.isDark */ | 118 | /** @id MochiKit.Color.Color.prototype.isDark */ |
119 | isDark: function () { | 119 | isDark: function () { |
120 | return (!this.isLight()); | 120 | return (!this.isLight()); |
121 | }, | 121 | }, |
122 | 122 | ||
123 | /** @id MochiKit.Color.Color.prototype.toHSLString */ | 123 | /** @id MochiKit.Color.Color.prototype.toHSLString */ |
124 | toHSLString: function () { | 124 | toHSLString: function () { |
125 | var c = this.asHSL(); | 125 | var c = this.asHSL(); |
126 | var ccc = MochiKit.Color.clampColorComponent; | 126 | var ccc = MochiKit.Color.clampColorComponent; |
127 | var rval = this._hslString; | 127 | var rval = this._hslString; |
128 | if (!rval) { | 128 | if (!rval) { |
129 | var mid = ( | 129 | var mid = ( |
130 | ccc(c.h, 360).toFixed(0) | 130 | ccc(c.h, 360).toFixed(0) |
131 | + "," + ccc(c.s, 100).toPrecision(4) + "%" | 131 | + "," + ccc(c.s, 100).toPrecision(4) + "%" |
132 | + "," + ccc(c.l, 100).toPrecision(4) + "%" | 132 | + "," + ccc(c.l, 100).toPrecision(4) + "%" |
133 | ); | 133 | ); |
134 | var a = c.a; | 134 | var a = c.a; |
135 | if (a >= 1) { | 135 | if (a >= 1) { |
136 | a = 1; | 136 | a = 1; |
137 | rval = "hsl(" + mid + ")"; | 137 | rval = "hsl(" + mid + ")"; |
138 | } else { | 138 | } else { |
139 | if (a <= 0) { | 139 | if (a <= 0) { |
140 | a = 0; | 140 | a = 0; |
141 | } | 141 | } |
142 | rval = "hsla(" + mid + "," + a + ")"; | 142 | rval = "hsla(" + mid + "," + a + ")"; |
143 | } | 143 | } |
144 | this._hslString = rval; | 144 | this._hslString = rval; |
145 | } | 145 | } |
146 | return rval; | 146 | return rval; |
147 | }, | 147 | }, |
148 | 148 | ||
149 | /** @id MochiKit.Color.Color.prototype.toRGBString */ | 149 | /** @id MochiKit.Color.Color.prototype.toRGBString */ |
150 | toRGBString: function () { | 150 | toRGBString: function () { |
151 | var c = this.rgb; | 151 | var c = this.rgb; |
152 | var ccc = MochiKit.Color.clampColorComponent; | 152 | var ccc = MochiKit.Color.clampColorComponent; |
153 | var rval = this._rgbString; | 153 | var rval = this._rgbString; |
154 | if (!rval) { | 154 | if (!rval) { |
155 | var mid = ( | 155 | var mid = ( |
156 | ccc(c.r, 255).toFixed(0) | 156 | ccc(c.r, 255).toFixed(0) |
157 | + "," + ccc(c.g, 255).toFixed(0) | 157 | + "," + ccc(c.g, 255).toFixed(0) |
158 | + "," + ccc(c.b, 255).toFixed(0) | 158 | + "," + ccc(c.b, 255).toFixed(0) |
159 | ); | 159 | ); |
160 | if (c.a != 1) { | 160 | if (c.a != 1) { |
161 | rval = "rgba(" + mid + "," + c.a + ")"; | 161 | rval = "rgba(" + mid + "," + c.a + ")"; |
162 | } else { | 162 | } else { |
163 | rval = "rgb(" + mid + ")"; | 163 | rval = "rgb(" + mid + ")"; |
164 | } | 164 | } |
165 | this._rgbString = rval; | 165 | this._rgbString = rval; |
166 | } | 166 | } |
167 | return rval; | 167 | return rval; |
168 | }, | 168 | }, |
169 | 169 | ||
170 | /** @id MochiKit.Color.Color.prototype.asRGB */ | 170 | /** @id MochiKit.Color.Color.prototype.asRGB */ |
171 | asRGB: function () { | 171 | asRGB: function () { |
172 | return MochiKit.Base.clone(this.rgb); | 172 | return MochiKit.Base.clone(this.rgb); |
173 | }, | 173 | }, |
174 | 174 | ||
175 | /** @id MochiKit.Color.Color.prototype.toHexString */ | 175 | /** @id MochiKit.Color.Color.prototype.toHexString */ |
176 | toHexString: function () { | 176 | toHexString: function () { |
177 | var m = MochiKit.Color; | 177 | var m = MochiKit.Color; |
178 | var c = this.rgb; | 178 | var c = this.rgb; |
179 | var ccc = MochiKit.Color.clampColorComponent; | 179 | var ccc = MochiKit.Color.clampColorComponent; |
180 | var rval = this._hexString; | 180 | var rval = this._hexString; |
181 | if (!rval) { | 181 | if (!rval) { |
182 | rval = ("#" + | 182 | rval = ("#" + |
183 | m.toColorPart(ccc(c.r, 255)) + | 183 | m.toColorPart(ccc(c.r, 255)) + |
184 | m.toColorPart(ccc(c.g, 255)) + | 184 | m.toColorPart(ccc(c.g, 255)) + |
185 | m.toColorPart(ccc(c.b, 255)) | 185 | m.toColorPart(ccc(c.b, 255)) |
186 | ); | 186 | ); |
187 | this._hexString = rval; | 187 | this._hexString = rval; |
188 | } | 188 | } |
189 | return rval; | 189 | return rval; |
190 | }, | 190 | }, |
191 | 191 | ||
192 | /** @id MochiKit.Color.Color.prototype.asHSV */ | 192 | /** @id MochiKit.Color.Color.prototype.asHSV */ |
193 | asHSV: function () { | 193 | asHSV: function () { |
194 | var hsv = this.hsv; | 194 | var hsv = this.hsv; |
195 | var c = this.rgb; | 195 | var c = this.rgb; |
196 | if (typeof(hsv) == 'undefined' || hsv === null) { | 196 | if (typeof(hsv) == 'undefined' || hsv === null) { |
197 | hsv = MochiKit.Color.rgbToHSV(this.rgb); | 197 | hsv = MochiKit.Color.rgbToHSV(this.rgb); |
198 | this.hsv = hsv; | 198 | this.hsv = hsv; |
199 | } | 199 | } |
200 | return MochiKit.Base.clone(hsv); | 200 | return MochiKit.Base.clone(hsv); |
201 | }, | 201 | }, |
202 | 202 | ||
203 | /** @id MochiKit.Color.Color.prototype.asHSL */ | 203 | /** @id MochiKit.Color.Color.prototype.asHSL */ |
204 | asHSL: function () { | 204 | asHSL: function () { |
205 | var hsl = this.hsl; | 205 | var hsl = this.hsl; |
206 | var c = this.rgb; | 206 | var c = this.rgb; |
207 | if (typeof(hsl) == 'undefined' || hsl === null) { | 207 | if (typeof(hsl) == 'undefined' || hsl === null) { |
208 | hsl = MochiKit.Color.rgbToHSL(this.rgb); | 208 | hsl = MochiKit.Color.rgbToHSL(this.rgb); |
209 | this.hsl = hsl; | 209 | this.hsl = hsl; |
210 | } | 210 | } |
211 | return MochiKit.Base.clone(hsl); | 211 | return MochiKit.Base.clone(hsl); |
@@ -548,205 +548,196 @@ MochiKit.Base.update(MochiKit.Color, { | |||
548 | var hue; | 548 | var hue; |
549 | var saturation; | 549 | var saturation; |
550 | var lightness = (max + min) / 2.0; | 550 | var lightness = (max + min) / 2.0; |
551 | var delta = max - min; | 551 | var delta = max - min; |
552 | if (delta === 0) { | 552 | if (delta === 0) { |
553 | hue = 0; | 553 | hue = 0; |
554 | saturation = 0; | 554 | saturation = 0; |
555 | } else { | 555 | } else { |
556 | if (lightness <= 0.5) { | 556 | if (lightness <= 0.5) { |
557 | saturation = delta / (max + min); | 557 | saturation = delta / (max + min); |
558 | } else { | 558 | } else { |
559 | saturation = delta / (2 - max - min); | 559 | saturation = delta / (2 - max - min); |
560 | } | 560 | } |
561 | if (red == max) { | 561 | if (red == max) { |
562 | hue = (green - blue) / delta; | 562 | hue = (green - blue) / delta; |
563 | } else if (green == max) { | 563 | } else if (green == max) { |
564 | hue = 2 + ((blue - red) / delta); | 564 | hue = 2 + ((blue - red) / delta); |
565 | } else { | 565 | } else { |
566 | hue = 4 + ((red - green) / delta); | 566 | hue = 4 + ((red - green) / delta); |
567 | } | 567 | } |
568 | hue /= 6; | 568 | hue /= 6; |
569 | if (hue < 0) { | 569 | if (hue < 0) { |
570 | hue += 1; | 570 | hue += 1; |
571 | } | 571 | } |
572 | if (hue > 1) { | 572 | if (hue > 1) { |
573 | hue -= 1; | 573 | hue -= 1; |
574 | } | 574 | } |
575 | 575 | ||
576 | } | 576 | } |
577 | return { | 577 | return { |
578 | h: hue, | 578 | h: hue, |
579 | s: saturation, | 579 | s: saturation, |
580 | l: lightness, | 580 | l: lightness, |
581 | a: alpha | 581 | a: alpha |
582 | }; | 582 | }; |
583 | }, | 583 | }, |
584 | 584 | ||
585 | /** @id MochiKit.Color.toColorPart */ | 585 | /** @id MochiKit.Color.toColorPart */ |
586 | toColorPart: function (num) { | 586 | toColorPart: function (num) { |
587 | num = Math.round(num); | 587 | num = Math.round(num); |
588 | var digits = num.toString(16); | 588 | var digits = num.toString(16); |
589 | if (num < 16) { | 589 | if (num < 16) { |
590 | return '0' + digits; | 590 | return '0' + digits; |
591 | } | 591 | } |
592 | return digits; | 592 | return digits; |
593 | }, | 593 | }, |
594 | 594 | ||
595 | __new__: function () { | 595 | __new__: function () { |
596 | var m = MochiKit.Base; | 596 | var m = MochiKit.Base; |
597 | /** @id MochiKit.Color.Color.fromRGBString */ | 597 | /** @id MochiKit.Color.Color.fromRGBString */ |
598 | this.Color.fromRGBString = m.bind( | 598 | this.Color.fromRGBString = m.bind( |
599 | this.Color._fromColorString, this.Color, "rgb", "fromRGB", | 599 | this.Color._fromColorString, this.Color, "rgb", "fromRGB", |
600 | [1.0/255.0, 1.0/255.0, 1.0/255.0, 1] | 600 | [1.0/255.0, 1.0/255.0, 1.0/255.0, 1] |
601 | ); | 601 | ); |
602 | /** @id MochiKit.Color.Color.fromHSLString */ | 602 | /** @id MochiKit.Color.Color.fromHSLString */ |
603 | this.Color.fromHSLString = m.bind( | 603 | this.Color.fromHSLString = m.bind( |
604 | this.Color._fromColorString, this.Color, "hsl", "fromHSL", | 604 | this.Color._fromColorString, this.Color, "hsl", "fromHSL", |
605 | [1.0/360.0, 0.01, 0.01, 1] | 605 | [1.0/360.0, 0.01, 0.01, 1] |
606 | ); | 606 | ); |
607 | 607 | ||
608 | var third = 1.0 / 3.0; | 608 | var third = 1.0 / 3.0; |
609 | /** @id MochiKit.Color.colors */ | 609 | /** @id MochiKit.Color.colors */ |
610 | var colors = { | 610 | var colors = { |
611 | // NSColor colors plus transparent | 611 | // NSColor colors plus transparent |
612 | /** @id MochiKit.Color.blackColor */ | 612 | /** @id MochiKit.Color.blackColor */ |
613 | black: [0, 0, 0], | 613 | black: [0, 0, 0], |
614 | /** @id MochiKit.Color.blueColor */ | 614 | /** @id MochiKit.Color.blueColor */ |
615 | blue: [0, 0, 1], | 615 | blue: [0, 0, 1], |
616 | /** @id MochiKit.Color.brownColor */ | 616 | /** @id MochiKit.Color.brownColor */ |
617 | brown: [0.6, 0.4, 0.2], | 617 | brown: [0.6, 0.4, 0.2], |
618 | /** @id MochiKit.Color.cyanColor */ | 618 | /** @id MochiKit.Color.cyanColor */ |
619 | cyan: [0, 1, 1], | 619 | cyan: [0, 1, 1], |
620 | /** @id MochiKit.Color.darkGrayColor */ | 620 | /** @id MochiKit.Color.darkGrayColor */ |
621 | darkGray: [third, third, third], | 621 | darkGray: [third, third, third], |
622 | /** @id MochiKit.Color.grayColor */ | 622 | /** @id MochiKit.Color.grayColor */ |
623 | gray: [0.5, 0.5, 0.5], | 623 | gray: [0.5, 0.5, 0.5], |
624 | /** @id MochiKit.Color.greenColor */ | 624 | /** @id MochiKit.Color.greenColor */ |
625 | green: [0, 1, 0], | 625 | green: [0, 1, 0], |
626 | /** @id MochiKit.Color.lightGrayColor */ | 626 | /** @id MochiKit.Color.lightGrayColor */ |
627 | lightGray: [2 * third, 2 * third, 2 * third], | 627 | lightGray: [2 * third, 2 * third, 2 * third], |
628 | /** @id MochiKit.Color.magentaColor */ | 628 | /** @id MochiKit.Color.magentaColor */ |
629 | magenta: [1, 0, 1], | 629 | magenta: [1, 0, 1], |
630 | /** @id MochiKit.Color.orangeColor */ | 630 | /** @id MochiKit.Color.orangeColor */ |
631 | orange: [1, 0.5, 0], | 631 | orange: [1, 0.5, 0], |
632 | /** @id MochiKit.Color.purpleColor */ | 632 | /** @id MochiKit.Color.purpleColor */ |
633 | purple: [0.5, 0, 0.5], | 633 | purple: [0.5, 0, 0.5], |
634 | /** @id MochiKit.Color.redColor */ | 634 | /** @id MochiKit.Color.redColor */ |
635 | red: [1, 0, 0], | 635 | red: [1, 0, 0], |
636 | /** @id MochiKit.Color.transparentColor */ | 636 | /** @id MochiKit.Color.transparentColor */ |
637 | transparent: [0, 0, 0, 0], | 637 | transparent: [0, 0, 0, 0], |
638 | /** @id MochiKit.Color.whiteColor */ | 638 | /** @id MochiKit.Color.whiteColor */ |
639 | white: [1, 1, 1], | 639 | white: [1, 1, 1], |
640 | /** @id MochiKit.Color.yellowColor */ | 640 | /** @id MochiKit.Color.yellowColor */ |
641 | yellow: [1, 1, 0] | 641 | yellow: [1, 1, 0] |
642 | }; | 642 | }; |
643 | 643 | ||
644 | var makeColor = function (name, r, g, b, a) { | ||
645 | var rval = this.fromRGB(r, g, b, a); | ||
646 | this[name] = function () { return rval; }; | ||
647 | return rval; | ||
648 | }; | ||
649 | |||
650 | for (var k in colors) { | 644 | for (var k in colors) { |
651 | var name = k + "Color"; | 645 | var name = k + "Color"; |
652 | var bindArgs = m.concat( | 646 | var value = this.Color.fromRGB.apply(this.Color, colors[k]); |
653 | [makeColor, this.Color, name], | 647 | this.Color[name] = m.partial(m.operator.identity, value); |
654 | colors[k] | ||
655 | ); | ||
656 | this.Color[name] = m.bind.apply(null, bindArgs); | ||
657 | } | 648 | } |
658 | 649 | ||
659 | var isColor = function () { | 650 | var isColor = function () { |
660 | for (var i = 0; i < arguments.length; i++) { | 651 | for (var i = 0; i < arguments.length; i++) { |
661 | if (!(arguments[i] instanceof MochiKit.Color.Color)) { | 652 | if (!(arguments[i] instanceof MochiKit.Color.Color)) { |
662 | return false; | 653 | return false; |
663 | } | 654 | } |
664 | } | 655 | } |
665 | return true; | 656 | return true; |
666 | }; | 657 | }; |
667 | 658 | ||
668 | var compareColor = function (a, b) { | 659 | var compareColor = function (a, b) { |
669 | return a.compareRGB(b); | 660 | return a.compareRGB(b); |
670 | }; | 661 | }; |
671 | 662 | ||
672 | m.nameFunctions(this); | 663 | m.nameFunctions(this); |
673 | 664 | ||
674 | m.registerComparator(this.Color.NAME, isColor, compareColor); | 665 | m.registerComparator(this.Color.NAME, isColor, compareColor); |
675 | } | 666 | } |
676 | }); | 667 | }); |
677 | 668 | ||
678 | MochiKit.Color.__new__(); | 669 | MochiKit.Color.__new__(); |
679 | 670 | ||
680 | // Full table of css3 X11 colors <http://www.w3.org/TR/css3-color/#X11COLORS> | 671 | // Full table of css3 X11 colors <http://www.w3.org/TR/css3-color/#X11COLORS> |
681 | 672 | ||
682 | MochiKit.Color.Color._namedColors = { | 673 | MochiKit.Color.Color._namedColors = { |
683 | aliceblue: "#f0f8ff", | 674 | aliceblue: "#f0f8ff", |
684 | antiquewhite: "#faebd7", | 675 | antiquewhite: "#faebd7", |
685 | aqua: "#00ffff", | 676 | aqua: "#00ffff", |
686 | aquamarine: "#7fffd4", | 677 | aquamarine: "#7fffd4", |
687 | azure: "#f0ffff", | 678 | azure: "#f0ffff", |
688 | beige: "#f5f5dc", | 679 | beige: "#f5f5dc", |
689 | bisque: "#ffe4c4", | 680 | bisque: "#ffe4c4", |
690 | black: "#000000", | 681 | black: "#000000", |
691 | blanchedalmond: "#ffebcd", | 682 | blanchedalmond: "#ffebcd", |
692 | blue: "#0000ff", | 683 | blue: "#0000ff", |
693 | blueviolet: "#8a2be2", | 684 | blueviolet: "#8a2be2", |
694 | brown: "#a52a2a", | 685 | brown: "#a52a2a", |
695 | burlywood: "#deb887", | 686 | burlywood: "#deb887", |
696 | cadetblue: "#5f9ea0", | 687 | cadetblue: "#5f9ea0", |
697 | chartreuse: "#7fff00", | 688 | chartreuse: "#7fff00", |
698 | chocolate: "#d2691e", | 689 | chocolate: "#d2691e", |
699 | coral: "#ff7f50", | 690 | coral: "#ff7f50", |
700 | cornflowerblue: "#6495ed", | 691 | cornflowerblue: "#6495ed", |
701 | cornsilk: "#fff8dc", | 692 | cornsilk: "#fff8dc", |
702 | crimson: "#dc143c", | 693 | crimson: "#dc143c", |
703 | cyan: "#00ffff", | 694 | cyan: "#00ffff", |
704 | darkblue: "#00008b", | 695 | darkblue: "#00008b", |
705 | darkcyan: "#008b8b", | 696 | darkcyan: "#008b8b", |
706 | darkgoldenrod: "#b8860b", | 697 | darkgoldenrod: "#b8860b", |
707 | darkgray: "#a9a9a9", | 698 | darkgray: "#a9a9a9", |
708 | darkgreen: "#006400", | 699 | darkgreen: "#006400", |
709 | darkgrey: "#a9a9a9", | 700 | darkgrey: "#a9a9a9", |
710 | darkkhaki: "#bdb76b", | 701 | darkkhaki: "#bdb76b", |
711 | darkmagenta: "#8b008b", | 702 | darkmagenta: "#8b008b", |
712 | darkolivegreen: "#556b2f", | 703 | darkolivegreen: "#556b2f", |
713 | darkorange: "#ff8c00", | 704 | darkorange: "#ff8c00", |
714 | darkorchid: "#9932cc", | 705 | darkorchid: "#9932cc", |
715 | darkred: "#8b0000", | 706 | darkred: "#8b0000", |
716 | darksalmon: "#e9967a", | 707 | darksalmon: "#e9967a", |
717 | darkseagreen: "#8fbc8f", | 708 | darkseagreen: "#8fbc8f", |
718 | darkslateblue: "#483d8b", | 709 | darkslateblue: "#483d8b", |
719 | darkslategray: "#2f4f4f", | 710 | darkslategray: "#2f4f4f", |
720 | darkslategrey: "#2f4f4f", | 711 | darkslategrey: "#2f4f4f", |
721 | darkturquoise: "#00ced1", | 712 | darkturquoise: "#00ced1", |
722 | darkviolet: "#9400d3", | 713 | darkviolet: "#9400d3", |
723 | deeppink: "#ff1493", | 714 | deeppink: "#ff1493", |
724 | deepskyblue: "#00bfff", | 715 | deepskyblue: "#00bfff", |
725 | dimgray: "#696969", | 716 | dimgray: "#696969", |
726 | dimgrey: "#696969", | 717 | dimgrey: "#696969", |
727 | dodgerblue: "#1e90ff", | 718 | dodgerblue: "#1e90ff", |
728 | firebrick: "#b22222", | 719 | firebrick: "#b22222", |
729 | floralwhite: "#fffaf0", | 720 | floralwhite: "#fffaf0", |
730 | forestgreen: "#228b22", | 721 | forestgreen: "#228b22", |
731 | fuchsia: "#ff00ff", | 722 | fuchsia: "#ff00ff", |
732 | gainsboro: "#dcdcdc", | 723 | gainsboro: "#dcdcdc", |
733 | ghostwhite: "#f8f8ff", | 724 | ghostwhite: "#f8f8ff", |
734 | gold: "#ffd700", | 725 | gold: "#ffd700", |
735 | goldenrod: "#daa520", | 726 | goldenrod: "#daa520", |
736 | gray: "#808080", | 727 | gray: "#808080", |
737 | green: "#008000", | 728 | green: "#008000", |
738 | greenyellow: "#adff2f", | 729 | greenyellow: "#adff2f", |
739 | grey: "#808080", | 730 | grey: "#808080", |
740 | honeydew: "#f0fff0", | 731 | honeydew: "#f0fff0", |
741 | hotpink: "#ff69b4", | 732 | hotpink: "#ff69b4", |
742 | indianred: "#cd5c5c", | 733 | indianred: "#cd5c5c", |
743 | indigo: "#4b0082", | 734 | indigo: "#4b0082", |
744 | ivory: "#fffff0", | 735 | ivory: "#fffff0", |
745 | khaki: "#f0e68c", | 736 | khaki: "#f0e68c", |
746 | lavender: "#e6e6fa", | 737 | lavender: "#e6e6fa", |
747 | lavenderblush: "#fff0f5", | 738 | lavenderblush: "#fff0f5", |
748 | lawngreen: "#7cfc00", | 739 | lawngreen: "#7cfc00", |
749 | lemonchiffon: "#fffacd", | 740 | lemonchiffon: "#fffacd", |
750 | lightblue: "#add8e6", | 741 | lightblue: "#add8e6", |
751 | lightcoral: "#f08080", | 742 | lightcoral: "#f08080", |
752 | lightcyan: "#e0ffff", | 743 | lightcyan: "#e0ffff", |