X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/ca27dcbdf19a0b76ef78b3f6124bd011600a6502..b27aba7ff5351d788e6250b7dd0e38c15a001817:/StatusWindow.m?ds=sidebyside diff --git a/StatusWindow.m b/StatusWindow.m index ef0f878..6e4768f 100755 --- a/StatusWindow.m +++ b/StatusWindow.m @@ -19,8 +19,6 @@ #define SW_BUTTON_DIV 12.00 #define SW_BUTTON_EXTRA_W 8.00 #define SW_SHADOW_SAT 1.25 -#define SMALL_DIVISOR 1.33333 -#define MINI_DIVISOR 1.66667 @interface StatusWindow (Private) - (NSRect)setupWindowWithDataSize:(NSSize)dataSize; @@ -53,7 +51,7 @@ - (void)dealloc { - [_image release]; + [_image release]; [super dealloc]; } @@ -80,7 +78,6 @@ _sizing = newSizing; } - /*************************************************************************/ #pragma mark - #pragma mark INSTANCE METHODS @@ -123,7 +120,7 @@ ITImageView *imageView; BOOL shouldAnimate = ( ! (([self visibilityState] == ITWindowAppearingState) || ([self visibilityState] == ITWindowVanishingState)) ); - + if ( _sizing == ITTransientStatusWindowSmall ) { divisor = SMALL_DIVISOR; } else if ( _sizing == ITTransientStatusWindowMini ) { @@ -196,7 +193,7 @@ dataHeight); } -- (void)buildTextWindowWithString:(NSString *)text +- (void)buildTextWindowWithString:(id)text { if ( ! _locked ) { @@ -204,9 +201,9 @@ float dataWidth = 0.0; float dataHeight = 0.0; NSRect dataRect; - NSArray *lines = [text componentsSeparatedByString:@"\n"]; + NSArray *lines = [(([text isKindOfClass:[NSString class]]) ? text : [text mutableString]) componentsSeparatedByString:@"\n"]; id oneLine = nil; - NSEnumerator *lineEnum = [lines objectEnumerator]; + NSEnumerator *lineEnum = [lines objectEnumerator]; float baseFontSize = 18.0; ITTextField *textField; NSFont *font; @@ -217,10 +214,10 @@ } else if ( _sizing == ITTransientStatusWindowMini ) { divisor = MINI_DIVISOR; } - - font = [NSFont fontWithName:@"Lucida Grande Bold" size:(baseFontSize / divisor)]; - attr = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; - + + font = [NSFont fontWithName:@"LucidaGrande-Bold" size:(baseFontSize / divisor)]; + attr = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; + // Iterate over each line to get text width and height while ( (oneLine = [lineEnum nextObject]) ) { // Get the width of one line, adding 8.0 because Apple sucks donkey rectum. @@ -247,13 +244,19 @@ [textField setTextColor:[NSColor whiteColor]]; [textField setCastsShadow:YES]; [[textField cell] setWraps:NO]; - [textField setStringValue:text]; + + if ([text isKindOfClass:[NSString class]]) { + [textField setStringValue:text]; + } else { + [textField setAttributedStringValue:text]; + } + [textField setShadowSaturation:SW_SHADOW_SAT]; [[self contentView] addSubview:textField]; // Display the window. [[self contentView] setNeedsDisplay:YES]; - + _textField = textField; } } @@ -285,7 +288,7 @@ divisor = MINI_DIVISOR; } - font = [NSFont fontWithName:@"Lucida Grande Bold" size:( size / divisor )]; + font = [NSFont fontWithName:@"AppleGothic" size:( size / divisor )]; attr = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; charSize = [character sizeWithAttributes:attr]; cellHeight = ( charSize.height + 4.0 ); // Add 4.0 for shadow @@ -375,9 +378,9 @@ divisor = MINI_DIVISOR; } - font = [NSFont fontWithName:@"Lucida Grande Bold" size:(baseFontSize / divisor)]; + font = [NSFont fontWithName:@"LucidaGrande-Bold" size:(baseFontSize / divisor)]; attr = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; - buttonFont = [NSFont fontWithName:@"Lucida Grande Bold" size:(14 / divisor)]; + buttonFont = [NSFont fontWithName:@"LucidaGrande-Bold" size:(14 / divisor)]; buttonAttr = [NSDictionary dictionaryWithObjectsAndKeys: buttonFont , NSFontAttributeName, textColor , NSForegroundColorAttributeName, @@ -405,8 +408,8 @@ } // Make the buttons, set the titles, and size them to fit their titles - okButton = [[ITButton alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)]; - cancelButton = [[ITButton alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)]; + okButton = [[[ITButton alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)] autorelease]; + cancelButton = [[[ITButton alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)] autorelease]; [okButton setTarget:target]; [cancelButton setTarget:target]; [okButton setAction:okAction]; @@ -477,7 +480,9 @@ wideButtonW, 24.0)]; [[self contentView] addSubview:okButton]; - [[self contentView] addSubview:cancelButton]; + if (alternateTitle) { + [[self contentView] addSubview:cancelButton]; + } [self setIgnoresMouseEvents:NO]; @@ -486,6 +491,14 @@ } } +- (void)updateTime:(NSString *)time range:(NSRange)range +{ + NSMutableAttributedString *string = [[_textField attributedStringValue] mutableCopy]; + [string replaceCharactersInRange:range withString:time]; + [_textField setAttributedStringValue:[string autorelease]]; + [[self contentView] setNeedsDisplay:YES]; +} + - (NSTimeInterval)animationResizeTime:(NSRect)newFrame { return (NSTimeInterval)0.25;