X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/de68e2c2064bb75d89cbad7a3992b4796520fccd..c92930f48a560adbc8f80ef106a3128cf9c176bf:/StatusWindowController.m diff --git a/StatusWindowController.m b/StatusWindowController.m index 246b911..43fdd46 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -1,77 +1,129 @@ +// +// StatusWindowController.m +// MenuTunes +// +// Created by Matthew L. Judy on Thu Apr 17 2003. +// Copyright (c) 2003 NibFile.com. All rights reserved. +// + #import "StatusWindowController.h" #import "StatusWindow.h" +#import +#import +#import +#import +#import +#import + @implementation StatusWindowController -- (id)init -{ - if ( (self = [super init]) ) { - [NSBundle loadNibNamed:@"StatusWindow" owner:self]; - [statusWindow center]; - } - return self; -} -- (void)setUpcomingSongs:(NSString *)string +- (id)init { -int size = 0, i; - NSArray *lines = [string componentsSeparatedByString:@"\n"]; + if ( ( self = [super init] ) ) { - for (i = 0; i < [lines count]; i++) { - int temp = [[lines objectAtIndex:i] sizeWithAttributes:[NSDictionary dictionaryWithObject:[NSFont fontWithName:@"Lucida Grande" size:12] forKey:NSFontAttributeName]].width; + float exitDelay; + int entryTag; + int exitTag; + float entrySpeed; + float exitSpeed; - if (temp > size) { - size = temp; + ITWindowEffect *entryEffect; + ITWindowEffect *exitEffect; + + _window = [[StatusWindow sharedWindow] retain]; + df = [[NSUserDefaults standardUserDefaults] retain]; + + exitDelay = [df floatForKey:@"statusWindowVanishDelay"]; + entryTag = [df integerForKey:@"statusWindowAppearanceEffect"]; + exitTag = [df integerForKey:@"statusWindowVanishEffect"]; + entrySpeed = [df floatForKey:@"statusWindowAppearanceSpeed"]; + exitSpeed = [df floatForKey:@"statusWindowVanishSpeed"]; + + [_window setExitMode:ITTransientStatusWindowExitAfterDelay]; + [_window setExitDelay:(exitDelay ? exitDelay : 4.0)]; + + if ( entryTag == 2101 ) { + entryEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2102 ) { + entryEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2103 ) { + entryEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2104 ) { + entryEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease]; + } else { + entryEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease]; } + + [_window setEntryEffect:entryEffect]; + + if ( exitTag == 2100 ) { + exitEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2102 ) { + exitEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2103 ) { + exitEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2104 ) { + exitEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease]; + } else { + exitEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease]; + } + + [_window setExitEffect:exitEffect]; + + [[_window entryEffect] setEffectTime:(entrySpeed ? entrySpeed : 0.8)]; + [[_window exitEffect] setEffectTime:(exitSpeed ? exitSpeed : 0.8)]; } - if (size < 255) { - size = 255; - } - - [statusField setStringValue:string]; - [statusWindow setFrame:NSMakeRect(0, 0, size + 45, 40 + ([lines count] * 15)) display:NO]; - [statusWindow center]; - [statusWindow makeKeyAndOrderFront:nil]; + return self; } -- (void)setTrackInfo:(NSString *)string +- (void)dealloc { - int size = 0, i; - NSArray *lines = [string componentsSeparatedByString:@"\n"]; - - for (i = 0; i < [lines count]; i++) { - int temp = [[lines objectAtIndex:i] sizeWithAttributes:[NSDictionary dictionaryWithObject:[NSFont fontWithName:@"Lucida Grande" size:12] forKey:NSFontAttributeName]].width; - - if (temp > size) { - size = temp; - } - } - - if (size < 285) { - size = 285; - } - - [statusField setStringValue:string]; - [statusWindow setFrame:NSMakeRect(0, 0, size + 45, 40 + ([lines count] * 16)) display:NO]; - [statusWindow center]; - [statusWindow makeKeyAndOrderFront:nil]; + [_window release]; + [super dealloc]; } -- (void)fadeWindowOut +- (void)showSongWindowWithTitle: (NSString *)title + album: (NSString *)album + artist: (NSString *)artist + time: (NSString *)time // FLOW: Should probably be NSDate or something. + trackNumber: (int)trackNumber + trackTotal: (int)trackTotal + rating: (int)rating + source:(ITMTRemotePlayerSource)source { - [NSThread detachNewThreadSelector:@selector(fadeOutAux) toTarget:self withObject:nil]; + [_window setImage:[NSImage imageNamed:@"Library"]]; + [_window setText:title]; + [_window appear:self]; } -- (void)fadeOutAux +- (void)showUpcomingSongsWithTitles:(NSArray *)titleStrings { - NSAutoreleasePool *p00l = [[NSAutoreleasePool alloc] init]; - float i; - for (i = 1.0; i > 0; i -= .003) { - [statusWindow setAlphaValue:i]; - } - [statusWindow close]; - [p00l release]; + +} + +- (void)showVolumeWindowWithLevel:(float)level +{ + [_window setImage:[NSImage imageNamed:@"Volume"]]; + [_window setVolume:level]; + [_window appear:self]; +} + +- (void)showRatingWindowWithLevel:(int)level +{ + +} + +- (void)showShuffleWindowWithMode:(MTStatusWindowShuffleMode)mode +{ + +} + +- (void)showLoopWindowWithMode:(MTStatusWindowLoopMode)mode +{ + } -@end +@end \ No newline at end of file