+
+ if ( rebuildRequired ) {
+ [controller rebuildMenu];
+ // redraw song info status window, or upcoming songs here
+ }
+
+ [df synchronize];
+}
+
+- (IBAction)changeStatusWindowSetting:(id)sender
+{
+ if ( [sender tag] == 2010) {
+ [df setInteger:[sender selectedRow] forKey:@"statusWindowVerticalPosition"];
+ [df setInteger:[sender selectedColumn] forKey:@"statusWindowHorizontalPosition"];
+ // update the window's position here
+ } else if ( [sender tag] == 2020) {
+ // update screen selection
+ } else if ( [sender tag] == 2030) {
+ // Update appearance effect
+ } else if ( [sender tag] == 2040) {
+ // Update Vanish Effect
+ } else if ( [sender tag] == 2050) {
+ // Update appearance speed
+ } else if ( [sender tag] == 2060) {
+ // Update vanish speed
+ } else if ( [sender tag] == 2070) {
+ // Update vanish delay
+ } else if ( [sender tag] == 2080) {
+ // Update "Song Info window when song changes" setting.
+ [df setBool:SENDER_STATE forKey:@"showSongInfoOnChange"];
+ }
+}
+
+- (IBAction)changeHotKey:(id)sender
+{
+ switch ([sender tag])
+ {
+ case 4010:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"PlayPause"]];
+ [self setCurrentHotKey:@"PlayPause"];
+ break;
+ case 4020:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"NextTrack"]];
+ [self setCurrentHotKey:@"NextTrack"];
+ break;
+ case 4030:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"PrevTrack"]];
+ [self setCurrentHotKey:@"PrevTrack"];
+ break;
+ case 4035:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"ToggleVisualizer"]];
+ [self setCurrentHotKey:@"ToggleVisualizer"];
+ break;
+ case 4040:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"ToggleLoop"]];
+ [self setCurrentHotKey:@"ToggleLoop"];
+ break;
+ case 4050:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"ToggleShuffle"]];
+ [self setCurrentHotKey:@"ToggleShuffle"];
+ break;
+ case 4060:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"TrackInfo"]];
+ [self setCurrentHotKey:@"TrackInfo"];
+ break;
+ case 4070:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"UpcomingSongs"]];
+ [self setCurrentHotKey:@"UpcomingSongs"];
+ break;
+ case 4080:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"IncrementVolume"]];
+ [self setCurrentHotKey:@"IncrementVolume"];
+ break;
+ case 4090:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"DecrementVolume"]];
+ [self setCurrentHotKey:@"DecrementVolume"];
+ break;
+ case 4100:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"IncrementRating"]];
+ [self setCurrentHotKey:@"IncrementRating"];
+ break;
+ case 4110:
+ [self setKeyCombo:[hotKeysDictionary objectForKey:@"DecrementRating"]];
+ [self setCurrentHotKey:@"DecrementRating"];
+ break;