X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/e6737bc05855fb976e0126e85b436c91d19246b9..6162e11fb9ec9ca0f4add4d5838e98a31ead4a21:/StatusWindowController.m diff --git a/StatusWindowController.m b/StatusWindowController.m index 0a83819..8eaba4f 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -11,10 +11,8 @@ #import #import - static StatusWindowController *sharedController; - @implementation StatusWindowController @@ -59,7 +57,7 @@ static StatusWindowController *sharedController; [_window setHorizontalPosition:[df integerForKey:@"statusWindowHorizontalPosition"]]; [_window setVerticalPosition:[df integerForKey:@"statusWindowVerticalPosition"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; if ( [classList containsObject:NSClassFromString(entryClass)] ) { entryEffect = [[[NSClassFromString(entryClass) alloc] initWithWindow:_window] autorelease]; @@ -105,14 +103,19 @@ static StatusWindowController *sharedController; title: (NSString *)title album: (NSString *)album artist: (NSString *)artist + composer: (NSString *)composer time: (NSString *)time // FLOW: Should probably be NSDate or something. track: (NSString *)track rating: (int)rating + playCount: (int)playCount + image: (NSImage *)art { NSImage *image = nil; NSString *text = title; - if ( source == ITMTRemoteLibrarySource ) { + if ( art != nil ) { + image = art; + } else if ( source == ITMTRemoteLibrarySource ) { image = [NSImage imageNamed:@"Library"]; } else if ( source == ITMTRemoteCDSource ) { image = [NSImage imageNamed:@"CD"]; @@ -125,21 +128,27 @@ static StatusWindowController *sharedController; } else if ( source == ITMTRemoteSharedLibrarySource ) { image = [NSImage imageNamed:@"Library"]; } - + [_window setImage:image]; - + if ( album ) { text = [text stringByAppendingString:[@"\n" stringByAppendingString:album]]; } if ( artist ) { text = [text stringByAppendingString:[@"\n" stringByAppendingString:artist]]; } + if ( composer ) { + text = [text stringByAppendingString:[@"\n" stringByAppendingString:composer]]; + } if ( time ) { text = [text stringByAppendingString:[@"\n" stringByAppendingString:time]]; } if ( track ) { text = [text stringByAppendingString:[@"\n" stringByAppendingString:track]]; } + if (playCount > -1) { + text = [text stringByAppendingString:[NSString stringWithFormat:@"\nPlay Count: %i", playCount]]; + } if ( rating > -1 ) { NSString *ratingString = [NSString string]; @@ -159,8 +168,7 @@ static StatusWindowController *sharedController; text = [text stringByAppendingString:[@"\n" stringByAppendingString:ratingString]]; } - - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildTextWindowWithString:text]; [_window appear:self]; } @@ -171,7 +179,7 @@ static StatusWindowController *sharedController; NSString *bull = [NSString stringWithUTF8String:"♪ "]; NSString *end = [@"\n" stringByAppendingString:bull]; [_window setImage:[NSImage imageNamed:@"Upcoming"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildTextWindowWithString:[bull stringByAppendingString:[titleStrings componentsJoinedByString:end]]]; [_window appear:self]; } @@ -179,7 +187,7 @@ static StatusWindowController *sharedController; - (void)showVolumeWindowWithLevel:(float)level { [_window setImage:[NSImage imageNamed:@"Volume"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildMeterWindowWithCharacter:[NSString stringWithUTF8String:"▊"] size:18 count:10 @@ -190,7 +198,7 @@ static StatusWindowController *sharedController; - (void)showRatingWindowWithRating:(float)rating { [_window setImage:[NSImage imageNamed:@"Rating"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildMeterWindowWithCharacter:[NSString stringWithUTF8String:"★"] size:48 count:5 @@ -201,7 +209,7 @@ static StatusWindowController *sharedController; - (void)showShuffleWindow:(BOOL)shuffle { [_window setImage:[NSImage imageNamed:@"Shuffle"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildTextWindowWithString:( shuffle ? @"Shuffle On" : @"Shuffle Off")]; [_window appear:self]; } @@ -219,7 +227,7 @@ static StatusWindowController *sharedController; } [_window setImage:[NSImage imageNamed:@"Repeat"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildTextWindowWithString:string]; [_window appear:self]; } @@ -229,7 +237,7 @@ static StatusWindowController *sharedController; NSString *message = @"Would you like MenuTunes to launch\nautomatically at startup?"; [_window setImage:[NSImage imageNamed:@"Setup"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildDialogWindowWithMessage:message defaultButton:@"Launch at Startup" alternateButton:@"Launch Manually" @@ -247,7 +255,7 @@ static StatusWindowController *sharedController; NSString *message = @"Your 7-day unlimited trial period has elapsed.\nYou must register to continue using MenuTunes."; [_window setImage:[NSImage imageNamed:@"Register"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildDialogWindowWithMessage:message defaultButton:@"Register Now" alternateButton:@"Quit MenuTunes" @@ -261,10 +269,10 @@ static StatusWindowController *sharedController; - (void)showReconnectQueryWindow { - NSString *message = @"The selected shared player is available again.\nWould you like to reconnect to it?."; - - [_window setImage:[NSImage imageNamed:@"Register"]]; - [_window setSizing:(StatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + NSString *message = @"The selected shared player is available again.\nWould you like to reconnect to it?"; + [_window setLocked:NO]; + [_window setImage:[NSImage imageNamed:@"Setup"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildDialogWindowWithMessage:message defaultButton:@"Reconnect" alternateButton:@"Ignore" @@ -276,4 +284,38 @@ static StatusWindowController *sharedController; [_window setLocked:YES]; } +- (void)showNetworkErrorQueryWindow +{ + NSString *message = @"The remote MenuTunes server is unreachable.\nMenuTunes will revert back to the local player."; + + [_window setImage:[NSImage imageNamed:@"Setup"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window buildDialogWindowWithMessage:message + defaultButton:@" OK " + alternateButton:nil + target:[MainController sharedController] + defaultAction:@selector(cancelReconnect) + alternateAction:nil]; + + [_window appear:self]; + [_window setLocked:YES]; +} + +- (void)showPreferencesUpdateWindow +{ + NSString *message = @"The new features in this version of MenuTunes\nrequire you to reconfigure your preferences."; + + [_window setImage:[NSImage imageNamed:@"Setup"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window buildDialogWindowWithMessage:message + defaultButton:@"Show Preferences" + alternateButton:@"OK" + target:[MainController sharedController] + defaultAction:@selector(showPreferencesAndClose) + alternateAction:@selector(cancelReconnect)]; + + [_window appear:self]; + [_window setLocked:YES]; +} + @end \ No newline at end of file