#import "StatusWindowController.h"
#import "StatusItemHack.h"
+@interface NSImage (WeeAdditions)
+- (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize;
+@end
+
+@implementation NSImage (WeeAdditions)
+
+- (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize
+{
+ NSImage *newImage;
+ NSImageRep *rep = [self bestRepresentationForDevice:nil];
+
+ newImage = [[NSImage alloc] initWithSize:scaledSize];
+ [newImage lockFocus];
+ {
+ [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
+ [[NSGraphicsContext currentContext] setShouldAntialias:YES];
+ [rep drawInRect:NSMakeRect(3, 3, scaledSize.width - 6, scaledSize.height - 6)];
+ }
+ [newImage unlockFocus];
+ return [newImage autorelease];
+}
+
+@end
+
@interface MainController(Private)
- (ITMTRemote *)loadRemote;
- (void)timerUpdate;
} else {
title = NSLocalizedString(@"noSongPlaying", @"No song is playing.");
}
-
[statusWindowController showSongInfoWindowWithSource:source
title:title
album:album
time:time
track:track
rating:rating
- image:art];
+ image:[[[[NSImage alloc] initWithData:[art TIFFRepresentation]] autorelease] imageScaledSmoothlyToSize:NSMakeSize(110,110)]];
}
- (void)showUpcomingSongs
#import <ITKit/ITSlideVerticallyWindowEffect.h>
#import <ITKit/ITPivotWindowEffect.h>
-
static StatusWindowController *sharedController;
-
@implementation StatusWindowController
NSString *text = title;
if ( art != nil ) {
- NSSize oldSize, newSize;
- image = art;
- [image setScalesWhenResized:YES];
- oldSize = [image size];
- if (oldSize.width > oldSize.height) newSize = NSMakeSize(110,oldSize.height * (110.0f / oldSize.width));
- else newSize = NSMakeSize(oldSize.width * (110.0f / oldSize.height),110);
- [image setSize:newSize];
+ image = art;
} else if ( source == ITMTRemoteLibrarySource ) {
image = [NSImage imageNamed:@"Library"];
} else if ( source == ITMTRemoteCDSource ) {