88 [button setTitle:aTitle];
99 - (id)initWithFrame:(CGRect)aFrame radioGroup:(
CPRadioGroup)aRadioGroup
120 - (id)initWithFrame:(CGRect)aFrame
125 - (CPInteger)nextState
132 if (_radioGroup === aRadioGroup)
135 [_radioGroup _removeRadio:self];
136 _radioGroup = aRadioGroup;
137 [_radioGroup _addRadio:self];
145 - (void)setObjectValue:(
id)aValue
150 [_radioGroup _setSelectedRadio:self];
153 - (BOOL)sendAction:(
SEL)anAction to:(
id)anObject
158 [CPApp sendAction:[_radioGroup action] to:[_radioGroup target] from:_radioGroup];
172 _radioGroup = [aCoder decodeObjectForKey:CPRadioRadioGroupKey];
181 [aCoder encodeObject:_radioGroup forKey:CPRadioRadioGroupKey];
194 - (BOOL)startTrackingAt:(CGPoint)aPoint
198 return startedTracking;
235 _selectedRadio = nil;
247 - (void)selectRadioAtIndex:(
int)index
250 [
self _setSelectedRadio:nil];
253 var radio = [_radios objectAtIndex:index];
255 [
self _setSelectedRadio:radio];
256 [radio setState:CPOnState];
265 - (BOOL)selectRadioWithTag:(
int)tag
267 var index = [_radios indexOfObjectPassingTest:function(radio)
269 return [radio tag] === tag;
287 return _selectedRadio;
295 - (int)selectedRadioIndex
297 return [_radios indexOfObject:_selectedRadio];
305 - (void)setEnabled:(BOOL)enabled
307 [_radios makeObjectsPerformSelector:@selector(setEnabled:) withObject:enabled];
310 - (void)setHidden:(BOOL)hidden
312 [_radios makeObjectsPerformSelector:@selector(setHidden:) withObject:hidden];
317 - (void)_addRadio:(
CPRadio)aRadio
319 if ([_radios indexOfObject:aRadio] ===
CPNotFound)
320 [_radios addObject:aRadio];
323 [
self _setSelectedRadio:aRadio];
326 - (void)_removeRadio:(
CPRadio)aRadio
328 if (_selectedRadio === aRadio)
329 _selectedRadio = nil;
331 [_radios removeObject:aRadio];
339 - (void)_selectRadioWithTitle:(
CPString)aTitle
341 var index = [_radios indexOfObjectPassingTest:function(radio)
343 return [radio title] === aTitle;
346 [
self selectRadioAtIndex:index];
349 - (void)_setSelectedRadio:(
CPRadio)aRadio
351 if (_selectedRadio === aRadio)
354 [_selectedRadio setState:CPOffState];
356 _selectedRadio = aRadio;
357 [_CPRadioGroupSelectionBinder _reverseSetValueFromExclusiveBinderForObject:self];
373 _radios = [aCoder decodeObjectForKey:CPRadioGroupRadiosKey];
374 _selectedRadio = [aCoder decodeObjectForKey:CPRadioGroupSelectedRadioKey];
382 [aCoder encodeObject:_radios forKey:CPRadioGroupRadiosKey];
383 [aCoder encodeObject:_selectedRadio forKey:CPRadioGroupSelectedRadioKey];
390 + (Class)_binderClassForBinding:(
CPString)aBinding
396 var capitalizedBinding = aBinding.charAt(0).toUpperCase() + aBinding.substr(1);
398 return [CPClassFromString(@"_CPRadioGroup" + capitalizedBinding + "Binder") class];
405 return [
super _binderClassForBinding:aBinding];
416 @implementation _CPRadioGroupSelectionBinder :
CPBinder
421 - (void)setPlaceholderValue:(
id)aValue withMarker:(
CPString)aMarker forBinding:(
CPString)aBinding
423 [
self setValue:aValue forBinding:aBinding];
427 @implementation _CPRadioGroupSelectedIndexBinder : _CPRadioGroupSelectionBinder
432 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
434 [_source selectRadioAtIndex:aValue];
437 - (id)valueForBinding:(
CPString)aBinding
439 return [_source selectedRadioIndex];
443 @implementation _CPRadioGroupSelectedTagBinder : _CPRadioGroupSelectionBinder
448 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
450 [_source selectRadioWithTag:aValue];
453 - (id)valueForBinding:(
CPString)aBinding
455 return [[_source selectedRadio] tag];
459 @implementation _CPRadioGroupSelectedValueBinder : _CPRadioGroupSelectionBinder
464 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
466 [_source _selectRadioWithTitle:aValue];
469 - (id)valueForBinding:(
CPString)aBinding
471 return [[_source selectedRadio] title];
505 - (void)setTarget:(
id)aValue
521 - (void)setAction:(
SEL)aValue