Added preference saving for what screen you want.
authorKent Sutherland <ksuther@ithinksw.com>
Wed, 1 Dec 2004 03:02:27 +0000 (03:02 +0000)
committerKent Sutherland <ksuther@ithinksw.com>
Wed, 1 Dec 2004 03:02:27 +0000 (03:02 +0000)
Showing prefs will only recenter the window if it isn't visible.

MenuTunes.xcode/project.pbxproj
PreferencesController.m
StatusWindowController.m

index b7e959c..4f52a96 100755 (executable)
                                7C95A0E205A929F400B4F576,
                                7C331F9B05A921E10088905B,
                                7C331F9C05A921E10088905B,
-                               7C331F9F05A921E10088905B,
                                7C331FA005A921E10088905B,
-                               7C331FA105A921E10088905B,
+                               7C331F9F05A921E10088905B,
                                7C331F9D05A921E10088905B,
-                               7C331F9A05A921E10088905B,
+                               7C331FA105A921E10088905B,
                                7C331FA205A921E10088905B,
-                               7C331F9E05A921E10088905B,
+                               7C331F9A05A921E10088905B,
                                7C331F9905A921E10088905B,
+                               7C331F9E05A921E10088905B,
                                7C331FA305A921E10088905B,
                                7C331FA405A921E10088905B,
                                7C331FB105A922210088905B,
                                7C331FB205A922210088905B,
-                               7C331FB305A922210088905B,
-                               7C331FB405A922210088905B,
                                7C331FB505A922210088905B,
+                               7C331FB405A922210088905B,
                                7C331FB605A922210088905B,
+                               7C331FB305A922210088905B,
                                7C331FBD05A922490088905B,
                                7C331FBE05A922490088905B,
                                7C331FC205A9225A0088905B,
index 8d74cc7..8ad7630 100755 (executable)
@@ -42,6 +42,7 @@
 - (void)setupCustomizationTables;
 - (void)setupMenuItems;
 - (void)setupUI;
+- (void)setupScreenPopup;
 - (void)setStatusWindowEntryEffect:(Class)effectClass;
 - (void)setStatusWindowExitEffect:(Class)effectClass;
 - (void)setCustomColor:(NSColor *)color updateWell:(BOOL)update;
@@ -220,7 +221,9 @@ static PreferencesController *prefs = nil;
     [self resetRemotePlayerTextFields];
     [launchAtLoginCheckbox becomeFirstResponder];
     [NSApp activateIgnoringOtherApps:YES];
-    [window center];
+       if (![window isVisible]) {
+               [window center];
+       }
     [window orderFrontRegardless];
     [window makeKeyWindow];
 }
@@ -465,6 +468,7 @@ static PreferencesController *prefs = nil;
     
         // Update screen selection.
                [[StatusWindow sharedWindow] setScreen:[[NSScreen screens] objectAtIndex:[sender indexOfSelectedItem]]];
+               [df setInteger:[sender indexOfSelectedItem] forKey:@"statusWindowScreenIndex"];
         [(MainController *)controller showCurrentTrackInfo];
                
     } else if ( [sender tag] == 2030) {
@@ -575,6 +579,7 @@ static PreferencesController *prefs = nil;
     [df setFloat:4.0 forKey:@"statusWindowVanishDelay"];
     [df setInteger:(int)ITWindowPositionBottom forKey:@"statusWindowVerticalPosition"];
     [df setInteger:(int)ITWindowPositionLeft forKey:@"statusWindowHorizontalPosition"];
+       [df setInteger:0 forKey:@"statusWindowScreenIndex"];
     [[StatusWindow sharedWindow] setVerticalPosition:(int)ITWindowPositionBottom];
     [[StatusWindow sharedWindow] setHorizontalPosition:(int)ITWindowPositionLeft];
     [df setBool:YES forKey:@"showSongInfoOnChange"];
@@ -783,7 +788,6 @@ static PreferencesController *prefs = nil;
     NSData         *colorData;
     int selectedBGStyle;
     id anItem;
-    NSArray *screens = [NSScreen screens];
        
     [df setInteger:MT_CURRENT_VERSION forKey:@"appVersion"];
     
@@ -803,17 +807,8 @@ static PreferencesController *prefs = nil;
         }
     }
     
-       ITDebugLog(@"Setting up screen popup");
-       if ([screens count] > 1) {
-               int i;
-               [screenPopup setEnabled:YES];
-               for (i = 0; i < [screens count]; i++) {
-                       NSScreen *screen = [screens objectAtIndex:i];
-                       if (![screen isEqual:[NSScreen mainScreen]]) {
-                               [screenPopup addItemWithTitle:[NSString stringWithFormat:@"Screen %i", i + 1]];
-                       }
-               }
-       }
+       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setupScreenPopup) name:NSApplicationDidChangeScreenParametersNotification object:nil];
+       [self setupScreenPopup];
        
     ITDebugLog(@"Setting up track info checkboxes.");
     // Check current track info buttons
@@ -938,6 +933,30 @@ static PreferencesController *prefs = nil;
     }
 }
 
+- (void)setupScreenPopup
+{
+       ITDebugLog(@"Setting up screen popup");
+       NSArray *screens = [NSScreen screens];
+       if ([screens count] > 1) {
+               int i, index = [df integerForKey:@"statusWindowScreenIndex"];
+               [screenPopup setEnabled:YES];
+               for (i = 0; i < [screens count]; i++) {
+                       NSScreen *screen = [screens objectAtIndex:i];
+                       if (![screen isEqual:[NSScreen mainScreen]]) {
+                               [screenPopup addItemWithTitle:[NSString stringWithFormat:@"Screen %i", i + 1]];
+                       }
+               }
+               [screenPopup selectItemAtIndex:index];
+               [[StatusWindow sharedWindow] setScreen:[[NSScreen screens] objectAtIndex:index]];
+       } else {
+               while ([screenPopup numberOfItems] > 1) {
+                       [screenPopup removeItemAtIndex:1];
+               }
+               [screenPopup setEnabled:NO];
+               [[StatusWindow sharedWindow] setScreen:[NSScreen mainScreen]];
+       }
+}
+
 - (void)setStatusWindowEntryEffect:(Class)effectClass
 {
     StatusWindow *sw = [StatusWindow sharedWindow];
@@ -1235,6 +1254,7 @@ static PreferencesController *prefs = nil;
 
 - (void)dealloc
 {
+       [[NSNotificationCenter defaultCenter] removeObserver:self];
     [hotKeysArray release];
     [hotKeysDictionary release];
     [effectClasses release];
index b89d4e4..5533c5f 100755 (executable)
@@ -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)];