From 97a58d16b59657d99b396a9d7e3ef2eadb357fa8 Mon Sep 17 00:00:00 2001 From: Matthew Judy Date: Fri, 12 Sep 2003 22:12:01 +0000 Subject: [PATCH] STATUS WINDOWS NOW EXIST IN MENUTUNES. Some work left to do on them, then positioning, but they're in, and they're hot. --- English.lproj/Preferences.nib/info.nib | 4 +- .../Preferences.nib/keyedobjects.nib | Bin 40148 -> 40280 bytes MainController.m | 21 ++-- PreferencesController.m | 70 ++++++++++++-- StatusWindowController.h | 17 ++-- StatusWindowController.m | 90 ++++++++++++++++-- 6 files changed, 169 insertions(+), 33 deletions(-) diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index 4b7fcb4..2aff2c8 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -3,9 +3,9 @@ IBDocumentLocation - 4 45 356 240 0 0 1152 746 + 4 4 356 240 0 0 1056 770 IBFramework Version - 291.0 + 286.0 IBGroupedObjects 0 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 5d1895ef5f8eadb4949ccf0715a6d41ae44d95f3..62f97d5fa739eb67dafa71510f19556b05264553 100755 GIT binary patch literal 40280 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 #import #import #import +#import +#import +#import +#import +#import + + #define SENDER_STATE (([sender state] == NSOnState) ? YES : NO) /*************************************************************************/ @@ -93,10 +102,10 @@ static PreferencesController *prefs = nil; [launchPlayerAtLaunchCheckbox setTitle:[NSString stringWithFormat:@"Launch %@ when MenuTunes launches", [[controller currentRemote] playerSimpleName]]]; //This isn't localized... } - [window setLevel:NSStatusWindowLevel]; +// [window setLevel:NSStatusWindowLevel]; [window center]; - [window makeKeyAndOrderFront:self]; [NSApp activateIgnoringOtherApps:YES]; + [window makeKeyAndOrderFront:self]; } - (IBAction)changeGeneralSetting:(id)sender @@ -122,11 +131,14 @@ static PreferencesController *prefs = nil; } else if ( [sender tag] == 1090) { [df setBool:SENDER_STATE forKey:@"showTrackRating"]; } + [df synchronize]; } - (IBAction)changeStatusWindowSetting:(id)sender { + StatusWindow *sw = [StatusWindow sharedWindow]; + if ( [sender tag] == 2010) { [df setInteger:[sender selectedRow] forKey:@"statusWindowVerticalPosition"]; [df setInteger:[sender selectedColumn] forKey:@"statusWindowHorizontalPosition"]; @@ -134,19 +146,61 @@ static PreferencesController *prefs = nil; } else if ( [sender tag] == 2020) { // update screen selection } else if ( [sender tag] == 2030) { - // Update appearance effect + int effectTag = [[sender selectedItem] tag]; + float time = ([df floatForKey:@"statusWindowAppearanceSpeed"] ? [df floatForKey:@"statusWindowAppearanceSpeed"] : 0.8); + [df setInteger:effectTag forKey:@"statusWindowAppearanceEffect"]; + + if ( effectTag == 2100 ) { + [sw setEntryEffect:[[[ITCutWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2101 ) { + [sw setEntryEffect:[[[ITDissolveWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2102 ) { + [sw setEntryEffect:[[[ITSlideVerticallyWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2103 ) { + [sw setEntryEffect:[[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2104 ) { + NSLog(@"dflhgldf"); + [sw setEntryEffect:[[[ITPivotWindowEffect alloc] initWithWindow:sw] autorelease]]; + } + + [[sw entryEffect] setEffectTime:time]; + } else if ( [sender tag] == 2040) { - // Update Vanish Effect + int effectTag = [[sender selectedItem] tag]; + float time = ([df floatForKey:@"statusWindowVanishSpeed"] ? [df floatForKey:@"statusWindowVanishSpeed"] : 0.8); + + [df setInteger:[[sender selectedItem] tag] forKey:@"statusWindowVanishEffect"]; + + if ( effectTag == 2100 ) { + [sw setExitEffect:[[[ITCutWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2101 ) { + [sw setExitEffect:[[[ITDissolveWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2102 ) { + [sw setExitEffect:[[[ITSlideVerticallyWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2103 ) { + [sw setExitEffect:[[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:sw] autorelease]]; + } else if ( effectTag == 2104 ) { + [sw setExitEffect:[[[ITPivotWindowEffect alloc] initWithWindow:sw] autorelease]]; + } + + [[sw exitEffect] setEffectTime:time]; + } else if ( [sender tag] == 2050) { - // Update appearance speed + float newTime = (-([sender floatValue])); + [df setFloat:newTime forKey:@"statusWindowAppearanceSpeed"]; + [[sw entryEffect] setEffectTime:newTime]; } else if ( [sender tag] == 2060) { - // Update vanish speed + float newTime = (-([sender floatValue])); + [df setFloat:newTime forKey:@"statusWindowVanishSpeed"]; + [[sw exitEffect] setEffectTime:newTime]; } else if ( [sender tag] == 2070) { - // Update vanish delay + [df setFloat:[sender floatValue] forKey:@"statusWindowVanishDelay"]; + [sw setExitDelay:[sender floatValue]]; } else if ( [sender tag] == 2080) { - // Update "Song Info window when song changes" setting. [df setBool:SENDER_STATE forKey:@"showSongInfoOnChange"]; } + + [df synchronize]; } - (IBAction)changeHotKey:(id)sender diff --git a/StatusWindowController.h b/StatusWindowController.h index 9f474b5..804c090 100755 --- a/StatusWindowController.h +++ b/StatusWindowController.h @@ -13,6 +13,7 @@ #import +#import "ITMTRemote.h" @class StatusWindow; @@ -32,15 +33,17 @@ typedef enum { @interface StatusWindowController : NSObject { StatusWindow *_window; + NSUserDefaults *df; } -- (void)showSongWindowWithTitle:(NSString *)title - album:(NSString *)album - artist:(NSString *)artist - time:(NSString *)time // FLOW: Should probably be NSDate or something. - trackNumber: (int)trackNumber - trackTotal: (int)trackTotal - rating: (int)rating; +- (void)showSongWindowWithTitle: (NSString *)title + album: (NSString *)album + artist: (NSString *)artist + time: (NSString *)time // FLOW: Should probably be NSDate or something. + trackNumber: (int)trackNumber + trackTotal: (int)trackTotal + rating: (int)rating + source:(ITMTRemotePlayerSource)source; - (void)showUpcomingSongsWithTitles:(NSArray *)titleStrings; diff --git a/StatusWindowController.m b/StatusWindowController.m index c22e2a5..146c1a8 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -7,20 +7,96 @@ // #import "StatusWindowController.h" +#import "StatusWindow.h" +#import +#import +#import +#import +#import +#import @implementation StatusWindowController -- (void)showSongWindowWithTitle:(NSString *)title - album:(NSString *)album - artist:(NSString *)artist - time:(NSString *)time // FLOW: Should probably be NSDate or something. - trackNumber: (int)trackNumber - trackTotal: (int)trackTotal - rating: (int)rating +- (id)init { + if ( ( self = [super init] ) ) { + + float exitDelay; + int entryTag; + int exitTag; + float entrySpeed; + float exitSpeed; + + ITWindowEffect *entryEffect; + ITWindowEffect *exitEffect; + + _window = [[StatusWindow sharedWindow] retain]; + df = [[NSUserDefaults standardUserDefaults] retain]; + + exitDelay = [df floatForKey:@"statusWindowVanishDelay"]; + entryTag = [df integerForKey:@"statusWindowAppearanceEffect"]; + exitTag = [df integerForKey:@"statusWindowVanishEffect"]; + entrySpeed = [df floatForKey:@"statusWindowAppearanceSpeed"]; + exitSpeed = [df floatForKey:@"statusWindowVanishSpeed"]; + + [_window setExitMode:ITTransientStatusWindowExitAfterDelay]; + [_window setExitDelay:(exitDelay ? exitDelay : 4.0)]; + + if ( entryTag == 2101 ) { + entryEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2102 ) { + entryEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2103 ) { + entryEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( entryTag == 2104 ) { + entryEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease]; + } else { + entryEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease]; + } + + [_window setEntryEffect:entryEffect]; + + if ( exitTag == 2100 ) { + exitEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2102 ) { + exitEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2103 ) { + exitEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease]; + } else if ( exitTag == 2104 ) { + exitEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease]; + } else { + exitEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease]; + } + + [_window setExitEffect:exitEffect]; + + [[_window entryEffect] setEffectTime:(entrySpeed ? entrySpeed : 0.8)]; + [[_window exitEffect] setEffectTime:(exitSpeed ? exitSpeed : 0.8)]; + } + + return self; +} +- (void)dealloc +{ + [_window release]; + [super dealloc]; +} + +- (void)showSongWindowWithTitle: (NSString *)title + album: (NSString *)album + artist: (NSString *)artist + time: (NSString *)time // FLOW: Should probably be NSDate or something. + trackNumber: (int)trackNumber + trackTotal: (int)trackTotal + rating: (int)rating + source:(ITMTRemotePlayerSource)source +{ + [_window setImage:[NSImage imageNamed:@"Library"]]; + [_window setText:title]; + [_window appear:self]; } - (void)showUpcomingSongsWithTitles:(NSArray *)titleStrings -- 2.20.1