/**
Sets the NSButtonCell's type to aType and marks self for display.See NSButtonType for more informations.
*/ - (void) setButtonType: (NSButtonType)aType { [_cell setButtonType: aType]; [self setNeedsDisplay: YES]; } - (void)setHighlightsBy:(int)aType { [_cell setHighlightsBy:aType]; } - (void)setShowsStateBy:(int)aType { [_cell setShowsStateBy:aType]; } // // Setting the State // - (void) setIntValue: (int)anInt { [self setState: (anInt != 0)]; } - (void) setFloatValue: (float)aFloat { [self setState: (aFloat != 0)]; } - (void) setDoubleValue: (double)aDouble { [self setState: (aDouble != 0)]; } /**Sets the NSButtonCell's state to value and marks self for display.
See Also: -state
*/ - (void) setState: (int)value { [_cell setState: value]; [self setNeedsDisplay: YES]; } /**Returns the NSButtonCell's state
See Also: -setState:
*/ - (int) state { return [_cell state]; } - (BOOL) allowsMixedState { return [_cell allowsMixedState]; } - (void) setAllowsMixedState: (BOOL)flag { [_cell setAllowsMixedState: flag]; } /**Sets the NSButtonCell to the next state and marks self for display.
See Also: [NSButtonCell-setNextState]
*/ - (void)setNextState { [_cell setNextState]; [self setNeedsDisplay: YES]; } // // Setting the Repeat Interval // - (void) getPeriodicDelay: (float *)delay interval: (float *)interval { [_cell getPeriodicDelay: delay interval: interval]; } - (void) setPeriodicDelay: (float)delay interval: (float)interval { [_cell setPeriodicDelay: delay interval: interval]; } /**Returns the NSButtonCell's alternate title
See Also: -setAlternateTitle:
*/ - (NSString *) alternateTitle { return [_cell alternateTitle]; } /**Sets the NSButtonCell's alternateTitle to aString and marks self for display
See Also: -alternateTitle
*/ - (void) setAlternateTitle: (NSString *)aString { [_cell setAlternateTitle: aString]; [self setNeedsDisplay: YES]; } /**Sets the NSButtonCell's title to aString and marks self for display
See Also: -title
*/ - (void) setTitle: (NSString *)aString { [_cell setTitle: aString]; [self setNeedsDisplay: YES]; } /**Returns the NSButtonCell's title
See Also: -setTitle:
*/ - (NSString *) title { return [_cell title]; } - (NSAttributedString *) attributedAlternateTitle { return [_cell attributedAlternateTitle]; } - (NSAttributedString *) attributedTitle { return [_cell attributedTitle]; } - (void) setAttributedAlternateTitle: (NSAttributedString *)aString { [_cell setAttributedAlternateTitle: aString]; [self setNeedsDisplay: YES]; } - (void) setAttributedTitle: (NSAttributedString *)aString { [_cell setAttributedTitle: aString]; [self setNeedsDisplay: YES]; } - (void) setTitleWithMnemonic: (NSString *)aString { [_cell setTitleWithMnemonic: aString]; [self setNeedsDisplay: YES]; } // // Setting the Images // /**Returns the NSButtonCell's alternate image.
See Also: -setAlternateImage:
*/ - (NSImage *) alternateImage { return [_cell alternateImage]; } /**Returns the NSButtonCell's image
See Also: -setImage:
*/ - (NSImage *) image { return [_cell image]; } /**Returns the position of the NSButtonCell's image. See NSCellImagePosition for more informations.
See Also: -setImagePosition:
*/ - (NSCellImagePosition) imagePosition { return [_cell imagePosition]; } /**Sets the NSButtonCell's alternate image to anImage and marks self for display
See Also: -alternateImage
*/ - (void) setAlternateImage: (NSImage *)anImage { [_cell setAlternateImage: anImage]; [self setNeedsDisplay: YES]; } /**Sets the NSButtonCell's image to anImage and marks self for display.
See Also: -image
*/ - (void) setImage: (NSImage *)anImage { [_cell setImage: anImage]; [self setNeedsDisplay: YES]; } /**Sets the postion of the NSButtonCell's image to aPosition and marks self for display. See NSCellImagePositionfor more informations.
See Also: -imagePosition
*/ - (void) setImagePosition: (NSCellImagePosition)aPosition { [_cell setImagePosition: aPosition]; [self setNeedsDisplay: YES]; } // // Modifying Graphic Attributes // /**Returns whether the NSButton's cell has border.
See Also: -setBordered:
*/ - (BOOL) isBordered { return [_cell isBordered]; } /**Returns whether the NSButton's cell is transparent
See Also: -setTransparent:
*/ - (BOOL) isTransparent { return [_cell isTransparent]; } /**Sets whether the NSButton's cell has border and marks self for display.
See Also: -isBordered
*/ - (void) setBordered: (BOOL)flag { [_cell setBordered: flag]; [self setNeedsDisplay: YES]; } /**Sets whether the NSButton's cell is transparent and marks self for display
See Also: -isTransparent
*/ - (void) setTransparent: (BOOL)flag { [_cell setTransparent: flag]; [self setNeedsDisplay: YES]; } /**Returns the style of the NSButtonCell's bezeled border. See NSBezelStyle for more informations
See Also: -setBezelStyle:
*/ - (NSBezelStyle)bezelStyle { return [_cell bezelStyle]; } /**Sets the style of the NSButtonCell's bezeled border and marks self for display. See NSBezelStyle for more informations
See Also: -bezelStyle
*/ - (void)setBezelStyle:(NSBezelStyle)bezelStyle { [_cell setBezelStyle: bezelStyle]; [self setNeedsDisplay: YES]; } - (BOOL)showsBorderOnlyWhileMouseInside { return [_cell showsBorderOnlyWhileMouseInside]; } - (void)setShowsBorderOnlyWhileMouseInside:(BOOL)show { [_cell setShowsBorderOnlyWhileMouseInside: show]; [self setNeedsDisplay: YES]; } // // Displaying // /** TODO */ - (void) highlight: (BOOL)flag { [_cell highlight: flag withFrame: _bounds inView: self]; } // // Setting the Key Equivalent // /**Returns the NSButtonCell's key equivalent. This is used in -performKeyEquivalent: ... TODO
See Also: -setKeyEquivalent:
*/ - (NSString*) keyEquivalent { return [_cell keyEquivalent]; } /**Returns the modifier mask of the NSButtonCell's key equivalent. This is used in -performKeyEquivalent: ... TODO
See Also: -setKeyEquivalentModifierMask:
*/ - (unsigned int) keyEquivalentModifierMask { return [_cell keyEquivalentModifierMask]; } /**Sets the NSButtonCell's key equivalent.This is used in -performKeyEquivalent:
See Also: -keyEquivalent
*/ - (void) setKeyEquivalent: (NSString*)aKeyEquivalent { [_cell setKeyEquivalent: aKeyEquivalent]; } /**Sets the modifier mask of the NSButtonCell's key equivalent. This is used in -performKeyEquivalent:
See Also: -keyEquivalentModifierMask
*/ - (void) setKeyEquivalentModifierMask: (unsigned int)mask { [_cell setKeyEquivalentModifierMask: mask]; } // // Determining the first responder // - (BOOL) becomeFirstResponder { [_window disableKeyEquivalentForDefaultButtonCell]; [_cell setShowsFirstResponder: YES]; [self setNeedsDisplay: YES]; return YES; } - (BOOL) resignFirstResponder { [_window enableKeyEquivalentForDefaultButtonCell]; [_cell setShowsFirstResponder: NO]; [self setNeedsDisplay: YES]; return YES; } - (void) becomeKeyWindow { [_cell setShowsFirstResponder: YES]; [self setNeedsDisplay: YES]; } - (void) resignKeyWindow { [_cell setShowsFirstResponder: NO]; [self setNeedsDisplay: YES]; } - (void) keyDown: (NSEvent*)theEvent { if ([self isEnabled]) { NSString *characters = [theEvent characters]; unichar character = 0; if ([characters length] > 0) { character = [characters characterAtIndex: 0]; } // Handle SPACE or RETURN to perform a click if ((character == NSNewlineCharacter) || (character == NSEnterCharacter) || (character == NSCarriageReturnCharacter) || ([characters isEqualToString: @" "])) { [self performClick: self]; return; } } [super keyDown: theEvent]; } // // Handling Events and Action Messages // /** TODO */ - (BOOL) performKeyEquivalent: (NSEvent *)anEvent { if ([self isEnabled]) { NSString *key = [self keyEquivalent]; if (key != nil && [key isEqual: [anEvent charactersIgnoringModifiers]]) { unsigned int mask = [self keyEquivalentModifierMask]; if (([anEvent modifierFlags] & mask) == mask) { [self performClick: self]; return YES; } } } return NO; } - (void) setSound: (NSSound *)aSound { [_cell setSound: aSound]; } - (NSSound *) sound { return [_cell sound]; } @end