Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: f83ef19d7d
Fetching contributors…

Cannot retrieve contributors at this time

file 104 lines (78 sloc) 3.17 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
//
// BWTransparentButtonCell.m
// BWToolkit
//
// Created by Brandon Walkin (www.brandonwalkin.com)
// All code is provided under the New BSD license.
//

#import "BWTransparentButtonCell.h"
#import "NSImage+BWAdditions.h"

static NSImage *buttonLeftN, *buttonFillN, *buttonRightN, *buttonLeftP, *buttonFillP, *buttonRightP;
static NSColor *disabledColor, *enabledColor;

@interface NSCell (BWTBCPrivate)
- (NSDictionary *)_textAttributes;
@end

@interface BWTransparentButtonCell (BWTBCPrivate)
- (NSColor *)interiorColor;
@end

@implementation BWTransparentButtonCell

+ (void)initialize;
{
NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentButtonCell class]];

buttonLeftN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonLeftN.tiff"]];
buttonFillN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonFillN.tiff"]];
buttonRightN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonRightN.tiff"]];
buttonLeftP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonLeftP.tiff"]];
buttonFillP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonFillP.tiff"]];
buttonRightP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonRightP.tiff"]];

enabledColor = [[NSColor whiteColor] retain];
disabledColor = [[NSColor colorWithCalibratedWhite:0.6 alpha:1] retain];
}

- (void)drawBezelWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
cellFrame.size.height = buttonFillN.size.height;

if ([self isHighlighted])
NSDrawThreePartImage(cellFrame, buttonLeftP, buttonFillP, buttonRightP, NO, NSCompositeSourceOver, 1, YES);
else
NSDrawThreePartImage(cellFrame, buttonLeftN, buttonFillN, buttonRightN, NO, NSCompositeSourceOver, 1, YES);
}

- (void)drawImage:(NSImage *)image withFrame:(NSRect)frame inView:(NSView *)controlView
{
frame.origin.y -= 2;

if ([[image name] isEqualToString:@"NSActionTemplate"])
[image setSize:NSMakeSize(10,10)];

NSImage *newImage = image;

if ([image isTemplate])
newImage = [image bwTintedImageWithColor:[self interiorColor]];

[super drawImage:newImage withFrame:frame inView:controlView];
}

- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView
{
frame.origin.y -= 4;

return [super drawTitle:title withFrame:frame inView:controlView];
}

- (NSDictionary *)_textAttributes
{
NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease];
[attributes addEntriesFromDictionary:[super _textAttributes]];
[attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName];
[attributes setObject:[self interiorColor] forKey:NSForegroundColorAttributeName];

return attributes;
}

- (NSColor *)interiorColor
{
NSColor *interiorColor;

if ([self isEnabled])
interiorColor = enabledColor;
else
interiorColor = disabledColor;

return interiorColor;
}

- (NSControlSize)controlSize
{
return NSSmallControlSize;
}

- (void)setControlSize:(NSControlSize)size
{

}

@end
Something went wrong with that request. Please try again.