return [newInstance autorelease];
}
-
-+ (id)aquaSelectedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = 0.58;
- color1.green = 0.86;
- color1.blue = 0.98;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = 0.42;
- color2.green = 0.68;
- color2.blue = 0.90;
- color2.alpha = 1.00;
- color2.position = 11.5/23;
-
- CTGradientElement color3;
- color3.red = 0.64;
- color3.green = 0.80;
- color3.blue = 0.94;
- color3.alpha = 1.00;
- color3.position = 11.5/23;
-
- CTGradientElement color4;
- color4.red = 0.56;
- color4.green = 0.70;
- color4.blue = 0.90;
- color4.alpha = 1.00;
- color4.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
- [newInstance addElement:&color3];
- [newInstance addElement:&color4];
-
- return [newInstance autorelease];
- }
-
-+ (id)aquaNormalGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.95;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.83;
- color2.alpha = 1.00;
- color2.position = 11.5/23;
-
- CTGradientElement color3;
- color3.red = color3.green = color3.blue = 0.95;
- color3.alpha = 1.00;
- color3.position = 11.5/23;
-
- CTGradientElement color4;
- color4.red = color4.green = color4.blue = 0.92;
- color4.alpha = 1.00;
- color4.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
- [newInstance addElement:&color3];
- [newInstance addElement:&color4];
-
- return [newInstance autorelease];
- }
-
-+ (id)aquaPressedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.80;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.64;
- color2.alpha = 1.00;
- color2.position = 11.5/23;
-
- CTGradientElement color3;
- color3.red = color3.green = color3.blue = 0.80;
- color3.alpha = 1.00;
- color3.position = 11.5/23;
-
- CTGradientElement color4;
- color4.red = color4.green = color4.blue = 0.77;
- color4.alpha = 1.00;
- color4.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
- [newInstance addElement:&color3];
- [newInstance addElement:&color4];
-
- return [newInstance autorelease];
- }
-
-+ (id)unifiedSelectedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.85;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.95;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)unifiedNormalGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.75;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.90;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)unifiedPressedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.60;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.75;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)unifiedDarkGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = color1.green = color1.blue = 0.68;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = color2.green = color2.blue = 0.83;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)sourceListSelectedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = 0.06;
- color1.green = 0.37;
- color1.blue = 0.85;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = 0.30;
- color2.green = 0.60;
- color2.blue = 0.92;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)sourceListUnselectedGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = 0.43;
- color1.green = 0.43;
- color1.blue = 0.43;
- color1.alpha = 1.00;
- color1.position = 0;
-
- CTGradientElement color2;
- color2.red = 0.60;
- color2.green = 0.60;
- color2.blue = 0.60;
- color2.alpha = 1.00;
- color2.position = 1;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- return [newInstance autorelease];
- }
-
-+ (id)rainbowGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- CTGradientElement color1;
- color1.red = 1.00;
- color1.green = 0.00;
- color1.blue = 0.00;
- color1.alpha = 1.00;
- color1.position = 0.0;
-
- CTGradientElement color2;
- color2.red = 0.54;
- color2.green = 0.00;
- color2.blue = 1.00;
- color2.alpha = 1.00;
- color2.position = 1.0;
-
- [newInstance addElement:&color1];
- [newInstance addElement:&color2];
-
- [newInstance setBlendingMode:CTChromaticBlendingMode];
-
- return [newInstance autorelease];
- }
-
-+ (id)hydrogenSpectrumGradient
- {
- id newInstance = [[[self class] alloc] init];
-
- struct {float hue; float position; float width;} colorBands[4];
-
- colorBands[0].hue = 22;
- colorBands[0].position = .145;
- colorBands[0].width = .01;
-
- colorBands[1].hue = 200;
- colorBands[1].position = .71;
- colorBands[1].width = .008;
-
- colorBands[2].hue = 253;
- colorBands[2].position = .885;
- colorBands[2].width = .005;
-
- colorBands[3].hue = 275;
- colorBands[3].position = .965;
- colorBands[3].width = .003;
-
- int i;
- /////////////////////////////
- for(i = 0; i < 4; i++)
- {
- float color[4];
- color[0] = colorBands[i].hue - 180*colorBands[i].width;
- color[1] = 1;
- color[2] = 0.001;
- color[3] = 1;
- transformHSV_RGB(color);
- CTGradientElement fadeIn;
- fadeIn.red = color[0];
- fadeIn.green = color[1];
- fadeIn.blue = color[2];
- fadeIn.alpha = color[3];
- fadeIn.position = colorBands[i].position - colorBands[i].width;
-
-
- color[0] = colorBands[i].hue;
- color[1] = 1;
- color[2] = 1;
- color[3] = 1;
- transformHSV_RGB(color);
- CTGradientElement band;
- band.red = color[0];
- band.green = color[1];
- band.blue = color[2];
- band.alpha = color[3];
- band.position = colorBands[i].position;
-
- color[0] = colorBands[i].hue + 180*colorBands[i].width;
- color[1] = 1;
- color[2] = 0.001;
- color[3] = 1;
- transformHSV_RGB(color);
- CTGradientElement fadeOut;
- fadeOut.red = color[0];
- fadeOut.green = color[1];
- fadeOut.blue = color[2];
- fadeOut.alpha = color[3];
- fadeOut.position = colorBands[i].position + colorBands[i].width;
-
-
- [newInstance addElement:&fadeIn];
- [newInstance addElement:&band];
- [newInstance addElement:&fadeOut];
- }
-
- [newInstance setBlendingMode:CTChromaticBlendingMode];
-
- return [newInstance autorelease];
- }
-
#pragma mark -
-
#pragma mark Modification
- (CTGradient *)gradientWithAlphaComponent:(float)alpha
{