libs-gui/Source/NSPathComponentCell.m

91 lines
2.3 KiB
Mathematica
Raw Normal View History

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