+ [tempItem setTarget:self];
+ [tempItem setTag:MTMenuShowPlayerItem];
+ } else if ([nextObject isEqualToString:@"preferences"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"preferences", @"Preferences...")
+ action:@selector(performMainMenuAction:)
+ keyEquivalent:@""];
+ [tempItem setTag:MTMenuPreferencesItem];
+ [tempItem setTarget:self];
+ } else if ([nextObject isEqualToString:@"quit"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"quit", @"Quit")
+ action:@selector(performMainMenuAction:)
+ keyEquivalent:@""];
+ [tempItem setTag:MTMenuQuitItem];
+ [tempItem setTarget:self];
+ } else if ([nextObject isEqualToString:@"trackInfo"]) {
+ //Handle playing radio too
+ if (_currentPlaylist) {
+ NSString *title = [currentRemote currentSongTitle];
+
+ [menu addItemWithTitle:NSLocalizedString(@"nowPlaying", @"Now Playing") action:NULL keyEquivalent:@""];
+
+ if ([title length] > 0) {
+ [menu addItemWithTitle:[NSString stringWithFormat:@" %@", title]
+ action:nil
+ keyEquivalent:@""];
+ }
+
+ if ([defaults boolForKey:@"showAlbum"]) {
+ NSString *curAlbum = [currentRemote currentSongAlbum];
+ if ([curAlbum length]) {
+ [menu addItemWithTitle:[NSString stringWithFormat:@" %@", curAlbum]
+ action:nil
+ keyEquivalent:@""];
+ }
+ }
+
+ if ([defaults boolForKey:@"showArtist"]) {
+ NSString *curArtist = [currentRemote currentSongArtist];
+ if ([curArtist length]) {
+ [menu addItemWithTitle:[NSString stringWithFormat:@" %@", curArtist]
+ action:nil
+ keyEquivalent:@""];
+ }
+ }
+
+ if ([defaults boolForKey:@"showTrackNumber"]) {
+ int track = [currentRemote currentSongTrack];
+ if (track) {
+ [menu addItemWithTitle:[NSString stringWithFormat:@" %@ %i", NSLocalizedString(@"track", @"Track"), track]
+ action:nil
+ keyEquivalent:@""];
+ }
+ }
+
+ if ([defaults boolForKey:@"showTime"]) {
+ int left = [[currentRemote currentSongRemaining] intValue];
+ NSString *remaining = [NSString stringWithFormat:@"%i:%02i", left / 60, left % 60];
+ [menu addItemWithTitle:[NSString stringWithFormat:@" %@/%@", remaining, [currentRemote currentSongLength]]
+ action:nil
+ keyEquivalent:@""];
+ }
+ } else {
+ [menu addItemWithTitle:NSLocalizedString(@"noSong", @"No Song") action:NULL keyEquivalent:@""];
+ }
+ } else if ([nextObject isEqualToString:@"separator"]) {
+ [menu addItem:[NSMenuItem separatorItem]];
+ //Submenu items
+ } else if ([nextObject isEqualToString:@"songRating"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"songRating", @"Song Rating")
+ action:nil
+ keyEquivalent:@""];
+ [tempItem setSubmenu:_ratingMenu];
+ [tempItem setTag:1];
+ if (_playingRadio || !_currentPlaylist) {
+ [tempItem setEnabled:NO];
+ }
+
+ itemEnum = [[_ratingMenu itemArray] objectEnumerator];
+ while ( (tempItem = [itemEnum nextObject]) ) {
+ [tempItem setState:NSOffState];
+ }
+
+ [[_ratingMenu itemAtIndex:([currentRemote currentSongRating] * 5)] setState:NSOnState];
+ } else if ([nextObject isEqualToString:@"upcomingSongs"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"upcomingSongs", @"Upcoming Songs")
+ action:nil
+ keyEquivalent:@""];
+ [tempItem setSubmenu:_upcomingSongsMenu];
+ [tempItem setTag:2];
+ if (_playingRadio || !_currentPlaylist) {
+ [tempItem setEnabled:NO];
+ }
+ } else if ([nextObject isEqualToString:@"playlists"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"playlists", @"Playlists")
+ action:nil
+ keyEquivalent:@""];
+ [tempItem setSubmenu:_playlistsMenu];
+ [tempItem setTag:3];
+ } else if ([nextObject isEqualToString:@"eqPresets"]) {
+ tempItem = [menu addItemWithTitle:NSLocalizedString(@"eqPresets", @"EQ Presets")
+ action:nil
+ keyEquivalent:@""];
+ [tempItem setSubmenu:_eqMenu];
+ [tempItem setTag:4];
+
+ itemEnum = [[_eqMenu itemArray] objectEnumerator];
+ while ( (tempItem = [itemEnum nextObject]) ) {
+ [tempItem setState:NSOffState];