From f41e707acd7a88f6e5ec68df27ebeca2498293b4 Mon Sep 17 00:00:00 2001 From: Matthew Judy Date: Mon, 24 Nov 2003 07:45:40 +0000 Subject: [PATCH] Positioning changes are now reflected properly by the prefs. When changing positions, effects will be disabled/changed accordingly. Position prefs are now reflected when the panel opens. --- English.lproj/Preferences.nib/classes.nib | 1 + English.lproj/Preferences.nib/info.nib | 2 +- .../Preferences.nib/keyedobjects.nib | Bin 44470 -> 44538 bytes PreferencesController.h | 2 + PreferencesController.m | 192 ++++++++++++++---- libValidate.a | Bin 8032 -> 8032 bytes 6 files changed, 156 insertions(+), 41 deletions(-) diff --git a/English.lproj/Preferences.nib/classes.nib b/English.lproj/Preferences.nib/classes.nib index d4c2f15..b54969d 100755 --- a/English.lproj/Preferences.nib/classes.nib +++ b/English.lproj/Preferences.nib/classes.nib @@ -40,6 +40,7 @@ passwordPanelTextField = NSTextField; passwordPanelTitle = NSTextField; passwordTextField = NSTextField; + positionMatrix = NSMatrix; ratingCheckbox = NSButton; selectPlayerBox = NSBox; selectPlayerSheet = NSPanel; diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index 889762a..a98025e 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -3,7 +3,7 @@ IBDocumentLocation - 5 69 356 240 0 0 1056 770 + 0 3 356 240 0 0 1056 770 IBEditorPositions 634 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 1aa5ea57153106a7af8a75245b0c8a45b6a93691..c5e977696c7915ca3df6563fcd5dcf3890f399e9 100755 GIT binary patch literal 44538 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

wuM++|aDSxcGG!Q5~JAn!~0@-==CP8{~4LWGBVB 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%0AGeS%lQiaFnulYCp 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 Idyd}!0Q&Gn+5i9m diff --git a/PreferencesController.h b/PreferencesController.h index 5b01b28..58b97e5 100755 --- a/PreferencesController.h +++ b/PreferencesController.h @@ -42,6 +42,7 @@ IBOutlet NSTextField *passwordPanelTextField; IBOutlet NSTextField *passwordPanelTitle; IBOutlet NSTextField *passwordTextField; + IBOutlet NSMatrix *positionMatrix; IBOutlet NSButton *ratingCheckbox; IBOutlet NSTextField *selectedPlayerTextField; IBOutlet NSBox *selectPlayerBox; @@ -68,6 +69,7 @@ NSMutableArray *availableItems; NSMutableArray *myItems; NSArray *submenuItems; + NSArray *effectClasses; NSArray *hotKeysArray, *hotKeyNamesArray; NSMutableDictionary *hotKeysDictionary; diff --git a/PreferencesController.m b/PreferencesController.m index 96fcfea..3919848 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -39,7 +39,11 @@ - (void)setupCustomizationTables; - (void)setupMenuItems; - (void)setupUI; +- (void)setStatusWindowEntryEffect:(Class)effectClass; +- (void)setStatusWindowExitEffect:(Class)effectClass; - (void)setCustomColor:(NSColor *)color updateWell:(BOOL)update; +- (void)repopulateEffectPopupsForVerticalPosition:(ITVerticalWindowPosition)vPos horizontalPosition:(ITHorizontalWindowPosition)hPos; +- (BOOL)effect:(Class)effectClass supportsVerticalPosition:(ITVerticalWindowPosition)vPos withHorizontalPosition:(ITHorizontalWindowPosition)hPos; - (IBAction)changeMenus:(id)sender; - (void)setLaunchesAtLogin:(BOOL)flag; @end @@ -74,6 +78,9 @@ static PreferencesController *prefs = nil; if ( (self = [super init]) ) { ITDebugLog(@"Preferences initialized."); df = [[NSUserDefaults standardUserDefaults] retain]; + + effectClasses = [[ITWindowEffect effectClasses] retain]; + hotKeysArray = [[NSArray alloc] initWithObjects:@"PlayPause", @"NextTrack", @"PrevTrack", @@ -372,36 +379,64 @@ static PreferencesController *prefs = nil; { StatusWindow *sw = [StatusWindow sharedWindow]; ITDebugLog(@"Changing status window setting of tag %i", [sender tag]); + if ( [sender tag] == 2010) { + + BOOL entryEffectValid = YES; + BOOL exitEffectValid = YES; + [df setInteger:[sender selectedRow] forKey:@"statusWindowVerticalPosition"]; [df setInteger:[sender selectedColumn] forKey:@"statusWindowHorizontalPosition"]; - [sw setHorizontalPosition:[sender selectedColumn]]; [sw setVerticalPosition:[sender selectedRow]]; - // update the window's position here + [sw setHorizontalPosition:[sender selectedColumn]]; + + // Enable/disable the items in the popups. + [self repopulateEffectPopupsForVerticalPosition:[sw verticalPosition] + horizontalPosition:[sw horizontalPosition]]; + + // Make sure the effects support the new position. + entryEffectValid = ( [self effect:[[sw entryEffect] class] + supportsVerticalPosition:[sw verticalPosition] + withHorizontalPosition:[sw horizontalPosition]] ); + exitEffectValid = ( [self effect:[[sw exitEffect] class] + supportsVerticalPosition:[sw verticalPosition] + withHorizontalPosition:[sw horizontalPosition]] ); + + if ( ! entryEffectValid ) { + [appearanceEffectPopup selectItemAtIndex:[[appearanceEffectPopup menu] indexOfItemWithRepresentedObject:NSClassFromString(@"ITCutWindowEffect")]]; + [self setStatusWindowEntryEffect:NSClassFromString(@"ITCutWindowEffect")]; + } else { + [appearanceEffectPopup selectItemAtIndex:[[appearanceEffectPopup menu] indexOfItemWithRepresentedObject:[[sw entryEffect] class]]]; + } + + if ( ! exitEffectValid ) { + [vanishEffectPopup selectItemAtIndex:[[vanishEffectPopup menu] indexOfItemWithRepresentedObject:NSClassFromString(@"ITDissolveWindowEffect")]]; + [self setStatusWindowExitEffect:NSClassFromString(@"ITDissolveWindowEffect")]; + } else { + [vanishEffectPopup selectItemAtIndex:[[vanishEffectPopup menu] indexOfItemWithRepresentedObject:[[sw exitEffect] class]]]; + } + + // Update the window's position. + // Yeah, do that. + } else if ( [sender tag] == 2020) { - // update screen selection + + // Update screen selection. + } else if ( [sender tag] == 2030) { - Class selectedClass = [[sender selectedItem] representedObject]; - float time = ([df floatForKey:@"statusWindowAppearanceSpeed"] ? [df floatForKey:@"statusWindowAppearanceSpeed"] : 0.8); - [df setObject:NSStringFromClass(selectedClass) forKey:@"statusWindowAppearanceEffect"]; - - [sw setEntryEffect:[[[selectedClass alloc] initWithWindow:sw] autorelease]]; - [[sw entryEffect] setEffectTime:time]; + + [self setStatusWindowEntryEffect:[[sender selectedItem] representedObject]]; } else if ( [sender tag] == 2040) { - Class selectedClass = [[sender selectedItem] representedObject]; - float time = ([df floatForKey:@"statusWindowVanishSpeed"] ? [df floatForKey:@"statusWindowVanishSpeed"] : 0.8); - [df setObject:NSStringFromClass(selectedClass) forKey:@"statusWindowVanishEffect"]; + + [self setStatusWindowExitEffect:[[sender selectedItem] representedObject]]; - [sw setExitEffect:[[[selectedClass alloc] initWithWindow:sw] autorelease]]; - [[sw exitEffect] setEffectTime:time]; - } else if ( [sender tag] == 2050) { - float newTime = (-([sender floatValue])); + float newTime = ( -([sender floatValue]) ); [df setFloat:newTime forKey:@"statusWindowAppearanceSpeed"]; [[sw entryEffect] setEffectTime:newTime]; } else if ( [sender tag] == 2060) { - float newTime = (-([sender floatValue])); + float newTime = ( -([sender floatValue]) ); [df setFloat:newTime forKey:@"statusWindowVanishSpeed"]; [[sw exitEffect] setEffectTime:newTime]; } else if ( [sender tag] == 2070) { @@ -457,16 +492,6 @@ static PreferencesController *prefs = nil; [df synchronize]; } -- (void)setCustomColor:(NSColor *)color updateWell:(BOOL)update -{ - [(ITTSWBackgroundView *)[[StatusWindow sharedWindow] contentView] setBackgroundColor:color]; - [df setObject:[NSArchiver archivedDataWithRootObject:color] forKey:@"statusWindowBackgroundColor"]; - - if ( update ) { - [backgroundColorWell setColor:color]; - } -} - - (void)registerDefaults { BOOL found = NO; @@ -716,8 +741,6 @@ static PreferencesController *prefs = nil; NSEnumerator *keyArrayEnum; NSString *serverName; NSData *colorData; - NSArray *effectClasses = [ITWindowEffect effectClasses]; - NSEnumerator *effectEnum = [effectClasses objectEnumerator]; int selectedBGStyle; id anItem; @@ -765,18 +788,15 @@ static PreferencesController *prefs = nil; [launchPlayerAtLaunchCheckbox setState:[df boolForKey:@"LaunchPlayerWithMT"] ? NSOnState : NSOffState]; // Setup the positioning controls + [positionMatrix selectCellAtRow:[df integerForKey:@"statusWindowVerticalPosition"] + column:[df integerForKey:@"statusWindowHorizontalPosition"]]; // Setup effects controls // Populate the effects popups - [appearanceEffectPopup removeItemAtIndex:0]; - [vanishEffectPopup removeItemAtIndex:0]; - - while ( (anItem = [effectEnum nextObject]) ) { - [appearanceEffectPopup addItemWithTitle:[anItem effectName]]; - [vanishEffectPopup addItemWithTitle:[anItem effectName]]; - [[appearanceEffectPopup lastItem] setRepresentedObject:anItem]; - [[vanishEffectPopup lastItem] setRepresentedObject:anItem]; - } + [appearanceEffectPopup setAutoenablesItems:NO]; + [vanishEffectPopup setAutoenablesItems:NO]; + [self repopulateEffectPopupsForVerticalPosition:[df integerForKey:@"statusWindowVerticalPosition"] + horizontalPosition:[df integerForKey:@"statusWindowHorizontalPosition"]]; // Attempt to find the pref'd effect in the list. // If it's not there, use cut/dissolve. @@ -792,8 +812,8 @@ static PreferencesController *prefs = nil; [vanishEffectPopup selectItemAtIndex:[effectClasses indexOfObject:NSClassFromString(@"ITCutWindowEffect")]]; } - [appearanceSpeedSlider setFloatValue:-([df floatForKey:@"statusWindowAppearanceSpeed"])]; - [vanishSpeedSlider setFloatValue:-([df floatForKey:@"statusWindowVanishSpeed"])]; + [appearanceSpeedSlider setFloatValue:( -([df floatForKey:@"statusWindowAppearanceSpeed"]) )]; + [vanishSpeedSlider setFloatValue:( -([df floatForKey:@"statusWindowVanishSpeed"]) )]; [vanishDelaySlider setFloatValue:[df floatForKey:@"statusWindowVanishDelay"]]; // Setup General Controls @@ -860,6 +880,97 @@ static PreferencesController *prefs = nil; } } +- (void)setStatusWindowEntryEffect:(Class)effectClass +{ + StatusWindow *sw = [StatusWindow sharedWindow]; + + float time = ([df floatForKey:@"statusWindowAppearanceSpeed"] ? [df floatForKey:@"statusWindowAppearanceSpeed"] : 0.8); + [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowAppearanceEffect"]; + + [sw setEntryEffect:[[[effectClass alloc] initWithWindow:sw] autorelease]]; + [[sw entryEffect] setEffectTime:time]; +} + +- (void)setStatusWindowExitEffect:(Class)effectClass +{ + StatusWindow *sw = [StatusWindow sharedWindow]; + + float time = ([df floatForKey:@"statusWindowVanishSpeed"] ? [df floatForKey:@"statusWindowVanishSpeed"] : 0.8); + [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowVanishEffect"]; + + [sw setExitEffect:[[[effectClass alloc] initWithWindow:sw] autorelease]]; + [[sw exitEffect] setEffectTime:time]; +} + +- (void)setCustomColor:(NSColor *)color updateWell:(BOOL)update +{ + [(ITTSWBackgroundView *)[[StatusWindow sharedWindow] contentView] setBackgroundColor:color]; + [df setObject:[NSArchiver archivedDataWithRootObject:color] forKey:@"statusWindowBackgroundColor"]; + + if ( update ) { + [backgroundColorWell setColor:color]; + } +} + +- (void)repopulateEffectPopupsForVerticalPosition:(ITVerticalWindowPosition)vPos horizontalPosition:(ITHorizontalWindowPosition)hPos +{ + NSEnumerator *effectEnum = [effectClasses objectEnumerator]; + id anItem; + + [appearanceEffectPopup removeAllItems]; + [vanishEffectPopup removeAllItems]; + + while ( (anItem = [effectEnum nextObject]) ) { + [appearanceEffectPopup addItemWithTitle:[anItem effectName]]; + [vanishEffectPopup addItemWithTitle:[anItem effectName]]; + + [[appearanceEffectPopup lastItem] setRepresentedObject:anItem]; + [[vanishEffectPopup lastItem] setRepresentedObject:anItem]; + + if ( [self effect:anItem supportsVerticalPosition:vPos withHorizontalPosition:hPos] ) { + [[appearanceEffectPopup lastItem] setEnabled:YES]; + [[vanishEffectPopup lastItem] setEnabled:YES]; + } else { + [[appearanceEffectPopup lastItem] setEnabled:NO]; + [[vanishEffectPopup lastItem] setEnabled:NO]; + } + } + +} + +- (BOOL)effect:(Class)effectClass supportsVerticalPosition:(ITVerticalWindowPosition)vPos withHorizontalPosition:(ITHorizontalWindowPosition)hPos +{ + BOOL valid = NO; + + if ( vPos == ITWindowPositionTop ) { + if ( hPos == ITWindowPositionLeft ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Top"] objectForKey:@"Left"] boolValue] ) ; + } else if ( hPos == ITWindowPositionCenter ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Top"] objectForKey:@"Center"] boolValue] ); + } else if ( hPos == ITWindowPositionRight ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Top"] objectForKey:@"Right"] boolValue] ); + } + } else if ( vPos == ITWindowPositionMiddle ) { + if ( hPos == ITWindowPositionLeft ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Middle"] objectForKey:@"Left"] boolValue] ); + } else if ( hPos == ITWindowPositionCenter ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Middle"] objectForKey:@"Center"] boolValue] ); + } else if ( hPos == ITWindowPositionRight ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Middle"] objectForKey:@"Right"] boolValue] ); + } + } else if ( vPos == ITWindowPositionBottom ) { + if ( hPos == ITWindowPositionLeft ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Bottom"] objectForKey:@"Left"] boolValue] ); + } else if ( hPos == ITWindowPositionCenter ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Bottom"] objectForKey:@"Center"] boolValue] ); + } else if ( hPos == ITWindowPositionRight ) { + valid = ( [[[[effectClass supportedPositions] objectForKey:@"Bottom"] objectForKey:@"Right"] boolValue] ); + } + } + + return valid; +} + - (IBAction)changeMenus:(id)sender { ITDebugLog(@"Synchronizing menus"); @@ -1091,6 +1202,7 @@ static PreferencesController *prefs = nil; { [hotKeysArray release]; [hotKeysDictionary release]; + [effectClasses release]; [menuTableView setDataSource:nil]; [allTableView setDataSource:nil]; [controller release]; diff --git a/libValidate.a b/libValidate.a index b75030d2856c827cd91c55dc9fc973b690bd4fcf..49fb834bcd8e2ba568c374310313e86b89a16c53 100755 GIT binary patch delta 17 YcmaE0_rPv~44av$rIC@@MkPCW06A3!T>t<8 delta 17 YcmaE0_rPv~44bK?rIESGMkPCW06BvNV*mgE -- 2.20.1