• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Transparent NSButtonCell highlight
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Transparent NSButtonCell highlight


  • Subject: Transparent NSButtonCell highlight
  • From: Benjamin Dobson <email@hidden>
  • Date: Thu, 9 Apr 2009 01:34:20 +0100

Hi,

I'm building a transparent interface, and I'm stuck at NSButtonCell. An NSGradient with transparency is drawn in the cell. It overrides - isOpaque to return NO. The gradient is drawn nicely from drawWithFrame:, but if it's called from -highlight:withFrame:inView:, the gradient is drawn on top of everything that's already been drawn, resulting in an increasingly dark result when the button is pressed.

I feel I'm missing something fundamental here. I also hope that makes sense to everyone.

–––

- (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView: (NSView *)controlView
{
if (flag) {
[self realDrawWithFrame:cellFrame inView:controlView gradient:pressedGradient];
} else {
[self realDrawWithFrame:cellFrame inView:controlView gradient:buttonGradient];
}
}


- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
if (![self path]) {
NSRect roundRect = NSInsetRect(cellFrame, 6, 6);
roundRect.origin.y = roundRect.origin.y - 1;
[self setPath:[NSBezierPath bezierPathWithRoundedRect:roundRect
xRadius:roundRect.size.height / 2
yRadius:roundRect.size.height / 2]];
}

if ([self isHighlighted]) { // Handle keyboard equivalent
[self highlight:YES withFrame:cellFrame inView:controlView];
return;
}
[self realDrawWithFrame:cellFrame inView:controlView gradient:buttonGradient];
}


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Prev by Date: Re: how to load an NSMenu out of a nib?
  • Next by Date: Re: Storing bundle loaded main class instances in NSArray
  • Previous by thread: Re: how to load an NSMenu out of a nib?
  • Next by thread: Path from NSFileHandle?
  • Index(es):
    • Date
    • Thread