X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/bbb399e28121ac71152cef5fc21e106c4b941cbc..5e2815af6cd3f5dffaca2e8d1876c0a355209859:/Showcase/Controller.m diff --git a/Showcase/Controller.m b/Showcase/Controller.m index df393b0..49e9e35 100755 --- a/Showcase/Controller.m +++ b/Showcase/Controller.m @@ -1,5 +1,7 @@ #import "Controller.h" -#import "ITTransientStatusWindow.h" +//#import "ITTransientStatusWindow.h" +#import "ITIconAndTextStatusWindow.h" +#import "ITTSWBackgroundView.h" #import "ITTextField.h" #import "ITBevelView.h" #import "ITCutWindowEffect.h" @@ -35,13 +37,13 @@ [testTextField setCastsShadow:YES]; [tabView setAllowsDragging:YES]; [bevelView setBevelDepth:10]; - statusWindow = [ITTransientStatusWindow sharedWindow]; + statusWindow = [ITIconAndTextStatusWindow sharedWindow]; [statusWindow setEntryEffect:[[ITCutWindowEffect alloc] initWithWindow:statusWindow]]; [statusWindow setExitEffect:[[ITDissolveWindowEffect alloc] initWithWindow:statusWindow]]; - [[statusWindow entryEffect] setEffectTime:[swSpeedSlider floatValue]]; - [[statusWindow exitEffect] setEffectTime:[swSpeedSlider floatValue]]; + [[statusWindow entryEffect] setEffectTime:[swEntrySpeedSlider floatValue]]; + [[statusWindow exitEffect] setEffectTime:[swExitSpeedSlider floatValue]]; // [tabView setAllowsDragging:YES]; - + [[NSColorPanel sharedColorPanel] setShowsAlpha:YES]; } /*************************************************************************/ @@ -147,81 +149,10 @@ - (IBAction)buildStatusWindow:(id)sender { - NSImageView *imageView = nil; - ITTextField *textField = nil; NSImage *image = [NSImage imageNamed:SW_IMAGE]; - NSRect imageRect; - NSRect textRect; - - float imageWidth = 0.0; - float imageHeight = 0.0; - float textWidth = 0.0; - float textHeight = 0.0; - float contentHeight = 0.0; - float windowWidth = 0.0; - float windowHeight = 0.0; - - NSString *text = [swSampleTextView string]; - NSArray *lines = [text componentsSeparatedByString:@"\n"]; - id oneLine = nil; - NSEnumerator *lineEnum = [lines objectEnumerator]; - - NSFont *font = [NSFont fontWithName:@"Lucida Grande Bold" size:18]; - NSDictionary *attr = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; - - // Get image width and height. - imageWidth = [image size].width; - imageHeight = [image size].height; - - // 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. - float oneLineWidth = ( [oneLine sizeWithAttributes:attr].width + 8.0 ); - // Add the height of this line to the total text height - textHeight += [oneLine sizeWithAttributes:attr].height; - // If this line wider than the last one, set it as the text width. - textWidth = ( ( textWidth > oneLineWidth ) ? textWidth : oneLineWidth ); - } - - // Add 4.0 to the final textHeight to accomodate the shadow. - textHeight += 4.0; - NSLog(@"%f", textHeight); - // Set the content height to the greater of the text and image heights. - contentHeight = ( ( imageHeight > textHeight ) ? imageHeight : textHeight ); - - // Setup the Window, and remove all its contentview's subviews. - windowWidth = ( SW_PAD + imageWidth + SW_SPACE + textWidth + SW_PAD ); - windowHeight = ( SW_PAD + contentHeight + SW_PAD ); - [statusWindow setFrame:NSMakeRect(SW_BORDER, SW_BORDER, windowWidth, windowHeight) display:YES animate:YES]; - [[[statusWindow contentView] subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; - - // Setup, position, fill, and add the image view to the content view. - imageRect = NSMakeRect( SW_PAD, - (SW_PAD + ((contentHeight - imageHeight) / 2)), - imageWidth, - imageHeight ); - imageView = [[[NSImageView alloc] initWithFrame:imageRect] autorelease]; - [imageView setImage:image]; - [[statusWindow contentView] addSubview:imageView]; - - // Setup, position, fill, and add the text view to the content view. - textRect = NSMakeRect( (SW_PAD + imageWidth + SW_SPACE), - (SW_PAD + ((contentHeight - textHeight) / 2)), - textWidth, - textHeight); - textField = [[[ITTextField alloc] initWithFrame:textRect] autorelease]; - [textField setEditable:NO]; - [textField setSelectable:NO]; - [textField setBordered:NO]; - [textField setDrawsBackground:NO]; - [textField setFont:[NSFont fontWithName:@"Lucida Grande Bold" size:18]]; - [textField setTextColor:[NSColor whiteColor]]; - [textField setCastsShadow:YES]; - [textField setStringValue:text]; - [textField setShadowSaturation:[swShadowSaturation floatValue]]; - [[statusWindow contentView] addSubview:textField]; - - [[statusWindow contentView] setNeedsDisplay:YES]; + NSString *text = [swSampleTextView string]; + [statusWindow setImage:image]; + [statusWindow buildTextWindowWithString:text]; } - (IBAction)toggleStatusWindow:(id)sender @@ -255,6 +186,7 @@ [statusWindow setHorizontalPosition:[sender indexOfSelectedItem]]; } else if ( [sender tag] == 3060 ) { [[statusWindow entryEffect] setEffectTime:[sender floatValue]]; + } else if ( [sender tag] == 3061 ) { [[statusWindow exitEffect] setEffectTime:[sender floatValue]]; } else if ( [sender tag] == 3070 ) { @@ -270,7 +202,7 @@ [statusWindow setEntryEffect:[[[ITPivotWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; } - [[statusWindow entryEffect] setEffectTime:[swSpeedSlider floatValue]]; + [[statusWindow entryEffect] setEffectTime:[swEntrySpeedSlider floatValue]]; } else if ( [sender tag] == 3080 ) { @@ -286,8 +218,20 @@ [statusWindow setExitEffect:[[ITPivotWindowEffect alloc] initWithWindow:statusWindow]]; } - [[statusWindow exitEffect] setEffectTime:[swSpeedSlider floatValue]]; + [[statusWindow exitEffect] setEffectTime:[swExitSpeedSlider floatValue]]; + } else if ( [sender tag] == 3090 ) { + + if ( [sender indexOfSelectedItem] == 0 ) { + [(ITTSWBackgroundView *)[statusWindow contentView] setBackgroundMode:ITTSWBackgroundApple]; + } else if ( [sender indexOfSelectedItem] == 1 ) { + [(ITTSWBackgroundView *)[statusWindow contentView] setBackgroundMode:ITTSWBackgroundReadable]; + } else if ( [sender indexOfSelectedItem] == 2 ) { + [(ITTSWBackgroundView *)[statusWindow contentView] setBackgroundMode:ITTSWBackgroundColored]; + } + + } else if ( [sender tag] == 3100 ) { + [(ITTSWBackgroundView *)[statusWindow contentView] setBackgroundColor:[sender color]]; } }