mirror of
https://github.com/darlinghq/darling-cocotron.git
synced 2024-11-23 12:09:51 +00:00
62 lines
1.5 KiB
Objective-C
62 lines
1.5 KiB
Objective-C
#import <AppKit/NSPathComponentCell.h>
|
|
#import "AppKit/NSRaise.h"
|
|
#import <AppKit/NSStringDrawing.h>
|
|
#import <AppKit/NSImage.h>
|
|
#import <AppKit/NSAttributedString.h>
|
|
|
|
@implementation NSPathComponentCell
|
|
|
|
-(NSURL *)URL {
|
|
return _URL;
|
|
}
|
|
|
|
-(void)setURL:(NSURL *)value {
|
|
value=[value retain];
|
|
[_URL release];
|
|
_URL=value;
|
|
}
|
|
|
|
-(NSString *)description {
|
|
return [NSString stringWithFormat: @"<%@: %p %@ URL: %@, Image: %@)>", [self class], self, [self title], _URL, [self image]];
|
|
}
|
|
|
|
-(NSDictionary *) textAttributes {
|
|
NSFont *font = [self font];
|
|
|
|
return [NSDictionary dictionaryWithObjectsAndKeys: font, NSFontAttributeName, nil];
|
|
}
|
|
|
|
-(void)drawWithFrame:(NSRect)frame inView:(NSView *)view {
|
|
NSDictionary *attributes = [self textAttributes];
|
|
NSString *title = [self stringValue];
|
|
NSSize textSize = [title sizeWithAttributes: attributes];
|
|
|
|
frame.origin.y += (frame.size.height - textSize.height) / 2.0;
|
|
frame.size.height = textSize.height;
|
|
|
|
NSImage *icon = [self image];
|
|
if (icon) {
|
|
NSRect iconRect = frame;
|
|
iconRect.size.width = frame.size.height;
|
|
|
|
frame.size.width -= iconRect.size.width + 2;
|
|
frame.origin.x += iconRect.size.width + 2;
|
|
|
|
[icon drawInRect: iconRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0];
|
|
}
|
|
|
|
[title drawAtPoint: frame.origin withAttributes: [self textAttributes]];
|
|
}
|
|
|
|
-(NSSize) cellSize {
|
|
NSSize textSize = [[self stringValue] sizeWithAttributes: [self textAttributes]];
|
|
|
|
if ([self image])
|
|
textSize.width += textSize.height;
|
|
|
|
textSize.width += 14;
|
|
|
|
return textSize;
|
|
}
|
|
|
|
@end |