/**
Sets the NSButtonCell's type to aType and marks self for display.See NSButtonType for more information.
See Also: [NSButtonCell-setButtonType:]
*/ - (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 [NSButtonCell-setState:]
*/ - (void) setState: (int)value { [_cell setState: value]; [self setNeedsDisplay: YES]; } /**Returns the NSButtonCell's state.
See Also: -setState: [NSButtonCell-state]
*/ - (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]; } /**Gets the NSButtonCell's delay and the interval parameters used when NSButton sends continouly action messages. By default delay is 0.4 and interval is 0.075
See Also: [NSButtonCell-getPeriodicDelay:interval:] -setPeriodicDelay:interval: [NSCell-trackMouse:inRect:ofView:untilMouseUp:]
*/ - (void) getPeriodicDelay: (float *)delay interval: (float *)interval { [_cell getPeriodicDelay: delay interval: interval]; } /**Sets the NSButtonCell's delay and interval parameters used when NSButton sends continouly action messages. By default delay is 0.4 and interval is 0.075
See Also: [NSButtonCell-setPeriodicDelay:interval:] -getPeriodicDelay:interval: [NSCell-trackMouse:inRect:ofView:untilMouseUp:]
*/ - (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: [NSButtonCell-title] -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: [NSButtonCell-alternateImage]
*/ - (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: [NSButtonCell-imagePosition]
*/ - (NSCellImagePosition) imagePosition { return [_cell imagePosition]; } /**Sets the NSButtonCell's alternate image to anImage and marks self for display.
See Also: -alternateImage [NSButtonCell-setAlternateImage:]
*/ - (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 [NSButtonCell-setImage:]
*/ - (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 [NSButtonCell-setImagePosition:]
*/ - (void) setImagePosition: (NSCellImagePosition)aPosition { [_cell setImagePosition: aPosition]; [self setNeedsDisplay: YES]; } // // Modifying Graphic Attributes // /**Returns whether the NSButton's cell has border.
See Also: -setBordered: [NSButtonCell-isBordered]
*/ - (BOOL) isBordered { return [_cell isBordered]; } /**Returns whether the NSButton's cell is transparent.
See Also: -setTransparent: [NSButtonCell-isTransparent]
*/ - (BOOL) isTransparent { return [_cell isTransparent]; } /**Sets whether the NSButton's cell has border and marks self for display.
See Also: -isBordered [NSButtonCell-setBordered:]
*/ - (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 [NSButtonCell-setTransparent:]
*/ - (void) setTransparent: (BOOL)flag { [_cell setTransparent: flag]; [self setNeedsDisplay: YES]; } /**Returns the style of the NSButtonCell's bezeled border. See NSBezelStyle for more information.
See Also: -setBezelStyle: [NSButtonCell-bezelStyle]
*/ - (NSBezelStyle)bezelStyle { return [_cell bezelStyle]; } /**Sets the style of the NSButtonCell's bezeled border and marks self for display. See NSBezelStyle for more information.
See Also: -bezelStyle [NSButtonCell-setBezelStyle:]
*/ - (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 // /**(Un)Highlights the NSButtonCell
See Also: [NSButtonCell-highlight:withFrame:inView:]
*/ - (void) highlight: (BOOL)flag { [_cell highlight: flag withFrame: _bounds inView: self]; } // // Setting the Key Equivalent // /**Returns the NSButtonCell's key equivalent. The key equivalent and its modifier mask are used to simulate the click of the button in -performKeyEquivalent:. Returns an empty string if no key equivalent is defined. By default NSButton hasn't key equivalent.
See Also: -setKeyEquivalent: -performKeyEquivalent: -keyEquivalentModifierMask [NSButtonCell-keyEquivalent]
*/ - (NSString*) keyEquivalent { return [_cell keyEquivalent]; } /**Returns the modifier mask of the NSButtonCell's key equivalent. The key equivalent and its modifier mask are used to simulate the click of the button in -performKeyEquivalent: . The default mask is NSCommandKeyMask.
See Also: -setKeyEquivalentModifierMask: -keyEquivalent [NSButtonCell-setKeyEquivalentModifierMask:]
*/ - (unsigned int) keyEquivalentModifierMask { return [_cell keyEquivalentModifierMask]; } /**Sets the NSButtonCell's key equivalent to aKeyEquivalent. The key equivalent and its modifier mask are used to simulate the click of the button in -performKeyEquivalent:. By default NSButton hasn't key equivalent.
See Also: -keyEquivalent -setKeyEquivalentModifierMask: -performKeyEquivalent: [NSButtonCell-setKeyEquivalent:]
*/ - (void) setKeyEquivalent: (NSString*)aKeyEquivalent { [_cell setKeyEquivalent: aKeyEquivalent]; } /**Sets the modifier mask of the NSButtonCell's key equivalent to mask. The key equivalent and its modifier mask are used to simulate the click of the button in -performKeyEquivalent:. By default the mask is NSCommandKeyMask.
See Also: -keyEquivalentModifierMask -setKeyEquivalent: -performKeyEquivalent: [NSButtonCell-setKeyEquivalentModifierMask:]
*/ - (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