84 var button = [[
CPRadio alloc] init];
86 [button setTitle:aTitle];
97 - (id)initWithFrame:(CGRect)aFrame radioGroup:(
CPRadioGroup)aRadioGroup
118 - (id)initWithFrame:(CGRect)aFrame
123 - (CPInteger)nextState
130 if (_radioGroup === aRadioGroup)
133 [_radioGroup _removeRadio:self];
134 _radioGroup = aRadioGroup;
135 [_radioGroup _addRadio:self];
143 - (void)setObjectValue:(
id)aValue
148 [_radioGroup _setSelectedRadio:self];
151 - (BOOL)sendAction:(
SEL)anAction to:(
id)anObject
156 [CPApp sendAction:[_radioGroup action] to:[_radioGroup target] from:_radioGroup];
170 _radioGroup = [aCoder decodeObjectForKey:CPRadioRadioGroupKey];
179 [aCoder encodeObject:_radioGroup forKey:CPRadioRadioGroupKey];
184 return [
self currentValueForThemeAttribute:@"image"];
189 return [
self currentValueForThemeAttribute:@"image"];
192 - (BOOL)startTrackingAt:(CGPoint)aPoint
196 return startedTracking;
233 _selectedRadio = nil;
245 - (void)selectRadioAtIndex:(
int)index
248 [
self _setSelectedRadio:nil];
251 var radio = [_radios objectAtIndex:index];
253 [
self _setSelectedRadio:radio];
254 [radio setState:CPOnState];
263 - (BOOL)selectRadioWithTag:(
int)tag
265 var index = [_radios indexOfObjectPassingTest:function(radio)
267 return [radio tag] === tag;
285 return _selectedRadio;
293 - (int)selectedRadioIndex
295 return [_radios indexOfObject:_selectedRadio];
303 - (void)setEnabled:(BOOL)enabled
305 [_radios makeObjectsPerformSelector:@selector(setEnabled:) withObject:enabled];
308 - (void)setHidden:(BOOL)hidden
310 [_radios makeObjectsPerformSelector:@selector(setHidden:) withObject:hidden];
315 - (void)_addRadio:(
CPRadio)aRadio
317 if ([_radios indexOfObject:aRadio] ===
CPNotFound)
318 [_radios addObject:aRadio];
321 [
self _setSelectedRadio:aRadio];
324 - (void)_removeRadio:(
CPRadio)aRadio
326 if (_selectedRadio === aRadio)
327 _selectedRadio = nil;
329 [_radios removeObject:aRadio];
337 - (void)_selectRadioWithTitle:(
CPString)aTitle
339 var index = [_radios indexOfObjectPassingTest:function(radio)
341 return [radio title] === aTitle;
344 [
self selectRadioAtIndex:index];
347 - (void)_setSelectedRadio:(
CPRadio)aRadio
349 if (_selectedRadio === aRadio)
352 [_selectedRadio setState:CPOffState];
354 _selectedRadio = aRadio;
355 [_CPRadioGroupSelectionBinder _reverseSetValueFromExclusiveBinderForObject:self];
371 _radios = [aCoder decodeObjectForKey:CPRadioGroupRadiosKey];
372 _selectedRadio = [aCoder decodeObjectForKey:CPRadioGroupSelectedRadioKey];
380 [aCoder encodeObject:_radios forKey:CPRadioGroupRadiosKey];
381 [aCoder encodeObject:_selectedRadio forKey:CPRadioGroupSelectedRadioKey];
388 + (Class)_binderClassForBinding:(
CPString)aBinding
390 if (aBinding === CPSelectedValueBinding ||
391 aBinding === CPSelectedTagBinding ||
392 aBinding === CPSelectedIndexBinding)
394 var capitalizedBinding = aBinding.charAt(0).toUpperCase() + aBinding.substr(1);
396 return [CPClassFromString(@"_CPRadioGroup" + capitalizedBinding + "Binder") class];
398 else if ([aBinding hasPrefix:CPEnabledBinding])
400 else if ([aBinding hasPrefix:CPHiddenBinding])
403 return [
super _binderClassForBinding:aBinding];
408 return (aBinding == CPSelectedIndexBinding ||
409 aBinding == CPSelectedTagBinding ||
410 aBinding == CPSelectedValueBinding);
414 @implementation _CPRadioGroupSelectionBinder :
CPBinder 419 - (void)setPlaceholderValue:(
id)aValue withMarker:(
CPString)aMarker forBinding:(
CPString)aBinding
421 [
self setValue:aValue forBinding:aBinding];
425 @implementation _CPRadioGroupSelectedIndexBinder : _CPRadioGroupSelectionBinder
430 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
432 [_source selectRadioAtIndex:aValue];
435 - (id)valueForBinding:(
CPString)aBinding
437 return [_source selectedRadioIndex];
441 @implementation _CPRadioGroupSelectedTagBinder : _CPRadioGroupSelectionBinder
446 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
448 [_source selectRadioWithTag:aValue];
451 - (id)valueForBinding:(
CPString)aBinding
453 return [[_source selectedRadio] tag];
457 @implementation _CPRadioGroupSelectedValueBinder : _CPRadioGroupSelectionBinder
462 - (void)setValue:(
id)aValue forBinding:(
CPString)aBinding
464 [_source _selectRadioWithTitle:aValue];
467 - (id)valueForBinding:(
CPString)aBinding
469 return [[_source selectedRadio] title];
503 - (void)setTarget:(
id)aValue
519 - (void)setAction:(
SEL)aValue
var CPRadioGroupRadiosKey
global CPApp CPRadioImageOffset
void setImagePosition:(CPCellImagePosition position)
var CPRadioGroupSelectedRadioKey
An immutable string (collection of characters).
BOOL sendAction:to:(SEL anAction, [to] id anObject)
void selectRadioAtIndex:(int index)
void setRadioGroup:(CPRadioGroup aRadioGroup)
void exposeBinding:(CPString aBinding)
void highlight:(BOOL shouldHighlight)
Defines methods for use when archiving & restoring (enc/decoding).
void setAlignment:(CPTextAlignment alignment)
id initWithFrame:radioGroup:(CGRect aFrame, [radioGroup] CPRadioGroup aRadioGroup)