X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/74389742830709c876afb314ae07034bd675c9ac..fb7602562afcd4350ae64c7e2a81fdd7eb2b4a15:/StatusWindowController.m diff --git a/StatusWindowController.m b/StatusWindowController.m index b89d4e4..db04626 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -36,6 +36,8 @@ static StatusWindowController *sharedController; NSArray *classList = [ITWindowEffect effectClasses]; float entrySpeed; float exitSpeed; + NSArray *screens = [NSScreen screens]; + int screenIndex; NSData *colorData; @@ -50,7 +52,13 @@ static StatusWindowController *sharedController; exitClass = [df stringForKey:@"statusWindowVanishEffect"]; entrySpeed = [df floatForKey:@"statusWindowAppearanceSpeed"]; exitSpeed = [df floatForKey:@"statusWindowVanishSpeed"]; - + + screenIndex = [df integerForKey:@"statusWindowScreenIndex"]; + if (screenIndex >= [screens count]) { + screenIndex = 0; + } + [_window setScreen:[screens objectAtIndex:screenIndex]]; + [_window setExitMode:ITTransientStatusWindowExitAfterDelay]; [_window setExitDelay:(exitDelay ? exitDelay : 4.0)]; @@ -111,7 +119,7 @@ static StatusWindowController *sharedController; image: (NSImage *)art { NSImage *image = nil; - NSString *text = title; + NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:title]; if ( art != nil ) { image = art; @@ -130,31 +138,39 @@ static StatusWindowController *sharedController; } [_window setImage:image]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; if ( album ) { - text = [text stringByAppendingString:[@"\n" stringByAppendingString:album]]; + [[text mutableString] appendFormat:@"\n%@", album]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:album]]; } if ( artist ) { - text = [text stringByAppendingString:[@"\n" stringByAppendingString:artist]]; + [[text mutableString] appendFormat:@"\n%@", artist]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:artist]]; } if ( composer ) { - text = [text stringByAppendingString:[@"\n" stringByAppendingString:composer]]; + [[text mutableString] appendFormat:@"\n%@", composer]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:composer]]; } if ( time ) { - text = [text stringByAppendingString:[@"\n" stringByAppendingString:time]]; + _timeRange = NSMakeRange([[text mutableString] length] + 1, [time length]); + [[text mutableString] appendFormat:@"\n%@", time]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:time]]; } if ( track ) { - text = [text stringByAppendingString:[@"\n" stringByAppendingString:track]]; + [[text mutableString] appendFormat:@"\n%@", track]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:track]]; } if (playCount > -1) { - text = [text stringByAppendingString:[NSString stringWithFormat:@"\nPlay Count: %i", playCount]]; + [[text mutableString] appendFormat:@"\n%@: %i", NSLocalizedString(@"playCount", @"Play Count"), playCount]; + //text = [text stringByAppendingString:[NSString stringWithFormat:@"\n%@: %i", NSLocalizedString(@"playCount", @"Play Count"), playCount]]; } if ( rating > -1 ) { NSString *ratingString = [NSString string]; NSString *emptyChar = [NSString stringWithUTF8String:"☆"]; NSString *fullChar = [NSString stringWithUTF8String:"★"]; - int i; + int i, start = [[text mutableString] length], size = 18; for ( i = 1; i < 6; i++ ) { @@ -164,13 +180,20 @@ static StatusWindowController *sharedController; ratingString = [ratingString stringByAppendingString:emptyChar]; } } - - text = [text stringByAppendingString:[@"\n" stringByAppendingString:ratingString]]; + + [[text mutableString] appendFormat:@"\n%@", ratingString]; + if ([_window sizing] == ITTransientStatusWindowSmall) { + size /= SMALL_DIVISOR; + } else if ([_window sizing] == ITTransientStatusWindowMini) { + size /= MINI_DIVISOR; + } + [text setAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"AppleGothic" size:size], NSFontAttributeName, nil, nil] range:NSMakeRange(start + 1, 5)]; + //text = [text stringByAppendingString:[@"\n" stringByAppendingString:ratingString]]; } - [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; [_window buildTextWindowWithString:text]; [_window appear:self]; + [text release]; } - (void)showUpcomingSongsWindowWithTitles:(NSArray *)titleStrings @@ -210,7 +233,7 @@ static StatusWindowController *sharedController; { [_window setImage:[NSImage imageNamed:@"Shuffle"]]; [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; - [_window buildTextWindowWithString:( shuffle ? @"Shuffle On" : @"Shuffle Off")]; + [_window buildTextWindowWithString:( shuffle ? NSLocalizedString(@"shuffleOn", @"Shuffle On") : NSLocalizedString(@"shuffleOff", @"Shuffle Off"))]; [_window appear:self]; } @@ -219,11 +242,11 @@ static StatusWindowController *sharedController; NSString *string = nil; if ( mode == StatusWindowRepeatNone ) { - string = @"Repeat Off"; + string = NSLocalizedString(@"repeatOff", @"Repeat Off"); } else if ( mode == StatusWindowRepeatGroup ) { - string = @"Repeat Playlist"; + string = NSLocalizedString(@"repeatPlaylist", @"Repeat Playlist"); } else if ( mode == StatusWindowRepeatTrack ) { - string = @"Repeat One Track"; + string = NSLocalizedString(@"repeatOneTrack", @"Repeat One Track");; } [_window setImage:[NSImage imageNamed:@"Repeat"]]; @@ -232,6 +255,14 @@ static StatusWindowController *sharedController; [_window appear:self]; } +- (void)showSongShufflabilityWindow:(BOOL)shufflable +{ + [_window setImage:[NSImage imageNamed:@"Shuffle"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window buildTextWindowWithString:( !shufflable ? NSLocalizedString(@"shufflableOn", @"Current Song Skipped When Shuffling") : NSLocalizedString(@"shufflableOff", @"Current Song Not Skipped When Shuffling"))]; + [_window appear:self]; +} + - (void)showSetupQueryWindow { NSString *message = NSLocalizedString(@"autolaunch_msg", @"Would you like MenuTunes to launch\nautomatically at startup?"); @@ -318,4 +349,25 @@ static StatusWindowController *sharedController; [_window setLocked:YES]; } +- (void)showDebugModeEnabledWindow +{ + [_window setImage:[NSImage imageNamed:@"Setup"]]; + [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]]; + [_window buildDialogWindowWithMessage:NSLocalizedString(@"debugmodeenabled", @"Debug Mode Enabled") + defaultButton:@"OK" + alternateButton:nil + target:[MainController sharedController] + defaultAction:@selector(cancelReconnect) + alternateAction:nil]; + [_window appear:self]; + [_window setLocked:YES]; +} + +- (void)updateTime:(NSString *)time +{ + if (time && [time length]) { + [_window updateTime:time range:_timeRange]; + } +} + @end \ No newline at end of file