62 - (id)initWithPickerMask:(
int)mask colorPanel:(
CPColorPanel)owningColorPanel
71 _contentView = [[
CPView alloc] initWithFrame:aFrame];
72 [_contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
74 _rgbLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 10, 100, 20)];
75 [_rgbLabel setStringValue:"Red, Green, Blue"];
78 _redLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 37, 15, 20)];
79 [_redLabel setStringValue:"R"];
82 _redSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 35, aFrame.size.width - 70, 20)];
83 [_redSlider setMaxValue:1.0];
84 [_redSlider setMinValue:0.0];
85 [_redSlider setTarget:self];
86 [_redSlider setAction:@selector(sliderChanged:)];
87 [_redSlider setAutoresizingMask:CPViewWidthSizable];
90 _redValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 30, 45, 28)];
91 [_redValue setAutoresizingMask:CPViewMinXMargin];
92 [_redValue setEditable:YES];
93 [_redValue setBezeled:YES];
94 [_redValue setDelegate:self];
95 [_contentView addSubview:_redValue];
97 _greenLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 63, 15, 20)];
98 [_greenLabel setStringValue:"G"];
101 _greenSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 61, aFrame.size.width - 70, 20)];
102 [_greenSlider setMaxValue:1.0];
103 [_greenSlider setMinValue:0.0];
104 [_greenSlider setTarget:self];
105 [_greenSlider setAction:@selector(sliderChanged:)];
106 [_greenSlider setAutoresizingMask:CPViewWidthSizable];
109 _greenValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 56, 45, 28)];
110 [_greenValue setAutoresizingMask:CPViewMinXMargin];
111 [_greenValue setEditable:YES];
112 [_greenValue setBezeled:YES];
113 [_greenValue setDelegate:self];
114 [_contentView addSubview:_greenValue];
116 _blueLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 90, 15, 20)];
117 [_blueLabel setStringValue:"B"];
120 _blueSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 87, aFrame.size.width - 70, 20)];
121 [_blueSlider setMaxValue:1.0];
122 [_blueSlider setMinValue:0.0];
123 [_blueSlider setTarget:self];
124 [_blueSlider setAction:@selector(sliderChanged:)];
125 [_blueSlider setAutoresizingMask:CPViewWidthSizable];
128 _blueValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 82, 45, 28)];
129 [_blueValue setAutoresizingMask:CPViewMinXMargin];
130 [_blueValue setEditable:YES];
131 [_blueValue setBezeled:YES];
132 [_blueValue setDelegate:self];
133 [_contentView addSubview:_blueValue];
135 _hsbLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 120, 190, 20)];
136 [_hsbLabel setStringValue:"Hue, Saturation, Brightness"];
139 _hueLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 145, 15, 20)];
140 [_hueLabel setStringValue:"H"];
143 _hueSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 143, aFrame.size.width - 70, 20)];
144 [_hueSlider setMaxValue:0.999];
145 [_hueSlider setMinValue:0.0];
146 [_hueSlider setTarget:self];
147 [_hueSlider setAction:@selector(sliderChanged:)];
148 [_hueSlider setAutoresizingMask:CPViewWidthSizable];
151 _hueValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 138, 45, 28)];
152 [_hueValue setAutoresizingMask:CPViewMinXMargin];
153 [_hueValue setEditable:YES];
154 [_hueValue setBezeled:YES];
155 [_hueValue setDelegate:self];
156 [_contentView addSubview:_hueValue];
158 _saturationLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 170, 15, 20)];
159 [_saturationLabel setStringValue:"S"];
162 _saturationSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 168, aFrame.size.width - 70, 20)];
163 [_saturationSlider setMaxValue:1.0];
164 [_saturationSlider setMinValue:0.0];
165 [_saturationSlider setTarget:self];
166 [_saturationSlider setAction:@selector(sliderChanged:)];
167 [_saturationSlider setAutoresizingMask:CPViewWidthSizable];
170 _saturationValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 164, 45, 28)];
171 [_saturationValue setAutoresizingMask:CPViewMinXMargin];
172 [_saturationValue setEditable:YES];
173 [_saturationValue setBezeled:YES];
174 [_saturationValue setDelegate:self];
175 [_contentView addSubview:_saturationValue];
177 _brightnessLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 196, 15, 20)];
178 [_brightnessLabel setStringValue:"B"];
181 _brightnessSlider = [[
CPSlider alloc] initWithFrame:CGRectMake(15, 194, aFrame.size.width - 70, 20)];
182 [_brightnessSlider setMaxValue:1.0];
183 [_brightnessSlider setMinValue:0.0];
184 [_brightnessSlider setTarget:self];
185 [_brightnessSlider setAction:@selector(sliderChanged:)];
186 [_brightnessSlider setAutoresizingMask:CPViewWidthSizable];
189 _brightnessValue = [[
CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 190, 45, 28)];
190 [_brightnessValue setAutoresizingMask:CPViewMinXMargin];
191 [_brightnessValue setEditable:YES];
192 [_brightnessValue setBezeled:YES];
193 [_brightnessValue setDelegate:self];
194 [_contentView addSubview:_brightnessValue];
196 _hexLabel = [[
CPTextField alloc] initWithFrame:CGRectMake(0, 230, 30, 20)];
197 [_hexLabel setStringValue:"Hex"];
201 _hexValue = [[
CPTextField alloc] initWithFrame:CGRectMake(32, 225, 80, 28)];
202 [_hexValue setEditable:YES];
203 [_hexValue setBezeled:YES];
204 [_hexValue setDelegate:self];
205 [_contentView addSubview:_hexValue];
207 [_contentView addSubview:_rgbLabel];
208 [_contentView addSubview:_redLabel];
209 [_contentView addSubview:_greenLabel];
210 [_contentView addSubview:_blueLabel];
211 [_contentView addSubview:_redSlider];
212 [_contentView addSubview:_greenSlider];
213 [_contentView addSubview:_blueSlider];
215 [_contentView addSubview:_hsbLabel];
216 [_contentView addSubview:_hueLabel];
217 [_contentView addSubview:_saturationLabel];
218 [_contentView addSubview:_brightnessLabel];
219 [_contentView addSubview:_hueSlider];
220 [_contentView addSubview:_saturationSlider];
221 [_contentView addSubview:_brightnessSlider];
223 [_contentView addSubview:_hexLabel];
226 - (
CPView)provideNewView:(BOOL)initialRequest
239 - (BOOL)supportsMode:(
int)mode
244 - (void)sliderChanged:(
id)sender
253 case _saturationSlider:
265 green:[_greenSlider floatValue]
266 blue:[_blueSlider floatValue]
293 [_hueSlider setFloatValue:hsb[0]];
294 [_saturationSlider setFloatValue:hsb[1]];
295 [_brightnessSlider setFloatValue:hsb[2]];
300 [_hexValue setStringValue:[aColor
hexString]];
307 [_redSlider setFloatValue:rgb[0]];
308 [_greenSlider setFloatValue:rgb[1]];
309 [_blueSlider setFloatValue:rgb[2]];
314 [_hueValue setStringValue:ROUND([_hueSlider floatValue] * 360.0)];
315 [_saturationValue setStringValue:ROUND([_saturationSlider floatValue] * 100.0)];
316 [_brightnessValue setStringValue:ROUND([_brightnessSlider floatValue] * 100.0)];
318 [_redValue setStringValue:ROUND([_redSlider floatValue] * 255)];
319 [_greenValue setStringValue:ROUND([_greenSlider floatValue] * 255)];
320 [_blueValue setStringValue:ROUND([_blueSlider floatValue] * 255)];
335 var field = [aNotification
object],
336 value = [[field stringValue] stringByTrimmingWhitespace];
338 if (field === _hexValue)
352 case _redValue: [_redSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)];
356 case _greenValue: [_greenSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)];
360 case _blueValue: [_blueSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)];
364 case _hueValue: [_hueSlider setFloatValue:MAX(MIN(ROUND(value), 360) / 360.0, 0)];
368 case _saturationValue: [_saturationSlider setFloatValue:MAX(MIN(ROUND(value), 100) / 100.0, 0)];
372 case _brightnessValue: [_brightnessSlider setFloatValue:MAX(MIN(ROUND(value), 100) / 100.0, 0)];
Used to implement exception handling (creating & raising).
void sliderChanged:(id sender)
CPColor colorWithHexString:(string hex)
CPColor colorWithCalibratedRed:green:blue:alpha:(float red, [green] float green, [blue] float blue, [alpha] float alpha)
void setColor:(CPColor aColor)
void updateHSBSliders:(CPColor aColor)
void setColor:(CPColor aColor)
void raise:reason:(CPString aName, [reason] CPString aReason)
CPString pathForResource:(CPString aFilename)
CPColorPanel colorPanel()
id initWithContentsOfFile:size:(CPString aFilename, [size] CGSize aSize)
CPColor colorWithHue:saturation:brightness:alpha:(float hue, [saturation] float saturation, [brightness] float brightness, [alpha] float alpha)
A notification that can be posted to a CPNotificationCenter.
void updateRGBSliders:(CPColor aColor)
void updateHex:(CPColor aColor)
CPBundle bundleForClass:(Class aClass)
id initWithPickerMask:colorPanel:(int aMask, [colorPanel] CPColorPanel aPanel)