2020-04-23 04:43:15 +00:00
|
|
|
/* Implementation of class NSPathComponentCell
|
|
|
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
By: Gregory John Casamento
|
|
|
|
Date: Wed Apr 22 18:19:21 EDT 2020
|
|
|
|
|
|
|
|
This file is part of the GNUstep Library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Lesser General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
|
|
License along with this library; if not, write to the Free
|
|
|
|
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110 USA.
|
|
|
|
*/
|
|
|
|
|
2020-04-27 05:55:31 +00:00
|
|
|
#import <Foundation/NSURL.h>
|
2020-05-03 08:17:00 +00:00
|
|
|
#import <Foundation/NSGeometry.h>
|
2020-04-27 07:25:19 +00:00
|
|
|
|
2020-04-23 04:43:15 +00:00
|
|
|
#import "AppKit/NSPathComponentCell.h"
|
2020-04-27 05:55:31 +00:00
|
|
|
#import "AppKit/NSImage.h"
|
2020-05-03 08:17:00 +00:00
|
|
|
#import "AppKit/NSStringDrawing.h"
|
2020-04-23 04:43:15 +00:00
|
|
|
|
|
|
|
@implementation NSPathComponentCell
|
|
|
|
|
2020-04-27 05:55:31 +00:00
|
|
|
- (NSImage *) image
|
|
|
|
{
|
|
|
|
return _image;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void) setImage: (NSImage *)image
|
|
|
|
{
|
|
|
|
ASSIGNCOPY(_image, image);
|
|
|
|
}
|
|
|
|
|
|
|
|
- (NSURL *) URL
|
|
|
|
{
|
|
|
|
return _url;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void) setURL: (NSURL *)url
|
|
|
|
{
|
|
|
|
ASSIGNCOPY(_url, url);
|
|
|
|
}
|
|
|
|
|
2020-05-03 08:17:00 +00:00
|
|
|
- (void) drawInteriorWithFrame: (NSRect)f
|
|
|
|
inView: (NSView *)v
|
|
|
|
{
|
|
|
|
NSString *string = [[_url path] lastPathComponent];
|
|
|
|
NSRect textFrame = f;
|
2020-05-03 17:07:53 +00:00
|
|
|
NSRect imgFrame = f;
|
|
|
|
NSRect arrowFrame = f;
|
|
|
|
NSImage *arrowImage = [NSImage imageNamed: @"NSMenuArrow"];
|
2020-05-03 08:17:00 +00:00
|
|
|
|
2020-05-03 17:07:53 +00:00
|
|
|
[super drawInteriorWithFrame: f inView: v];
|
|
|
|
|
2020-05-03 08:17:00 +00:00
|
|
|
// Modify positions...
|
2020-05-03 17:07:53 +00:00
|
|
|
textFrame.origin.x += 25.0; // the width of the image plus a few pixels.
|
|
|
|
textFrame.origin.y += 3.0; // center with the image...
|
2020-05-03 08:17:00 +00:00
|
|
|
imgFrame.size.width = 20.0;
|
|
|
|
imgFrame.size.height = 20.0;
|
2020-05-03 17:07:53 +00:00
|
|
|
arrowFrame.origin.x += f.size.width - 20.0;
|
|
|
|
arrowFrame.size.width = 8.0;
|
|
|
|
arrowFrame.size.height = 8.0;
|
|
|
|
arrowFrame.origin.y += 5.0;
|
2020-05-03 08:17:00 +00:00
|
|
|
|
|
|
|
// Draw the image...
|
|
|
|
[_image drawInRect: imgFrame];
|
2020-04-23 04:43:15 +00:00
|
|
|
|
2020-05-03 08:17:00 +00:00
|
|
|
// Draw the text...
|
2020-05-03 17:07:53 +00:00
|
|
|
[[NSColor textColor] set];
|
2020-05-03 08:17:00 +00:00
|
|
|
[string drawAtPoint: textFrame.origin
|
|
|
|
withAttributes: nil];
|
2020-05-03 17:07:53 +00:00
|
|
|
|
|
|
|
// Draw the arrow...
|
|
|
|
if (_lastComponent == NO)
|
|
|
|
{
|
|
|
|
[arrowImage drawInRect: arrowFrame];
|
|
|
|
}
|
2020-05-03 08:17:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@end
|