X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/766d5d9af104b68f61f3b09abac3f4cc88839ce6..d7b837d03d47a5ffa60975081a2a7598edc839e3:/Showcase/Controller.m?ds=inline diff --git a/Showcase/Controller.m b/Showcase/Controller.m index 2d0c09a..8455cb2 100755 --- a/Showcase/Controller.m +++ b/Showcase/Controller.m @@ -1,6 +1,14 @@ #import "Controller.h" #import "ITTransientStatusWindow.h" +#import "ITTSWBackgroundView.h" #import "ITTextField.h" +#import "ITBevelView.h" +#import "ITCutWindowEffect.h" +#import "ITDissolveWindowEffect.h" +#import "ITSlideHorizontallyWindowEffect.h" +#import "ITSlideVerticallyWindowEffect.h" +#import "ITPivotWindowEffect.h" + #define SW_PAD 24.0 #define SW_SPACE 24.0 @@ -8,6 +16,7 @@ #define SW_BORDER 32.0 #define SW_IMAGE @"Library" + @interface Controller (ITStatusItemSupport) - (void)createStatusItem; - (void)removeStatusItem; @@ -19,10 +28,21 @@ - (void)awakeFromNib { [self createStatusItem]; + [button setBezelStyle:1001]; + [button setFont:[NSFont fontWithName:@"Lucida Grande Bold" size:14]]; + [button setTitle:@"Launch Manually"]; + [button sizeToFit]; + [button setFrameSize:NSMakeSize([button frame].size.width + 8, 24)]; [testTextField setCastsShadow:YES]; [tabView setAllowsDragging:YES]; + [bevelView setBevelDepth:10]; statusWindow = [ITTransientStatusWindow sharedWindow]; + [statusWindow setEntryEffect:[[ITCutWindowEffect alloc] initWithWindow:statusWindow]]; + [statusWindow setExitEffect:[[ITDissolveWindowEffect alloc] initWithWindow:statusWindow]]; + [[statusWindow entryEffect] setEffectTime:[swEntrySpeedSlider floatValue]]; + [[statusWindow exitEffect] setEffectTime:[swExitSpeedSlider floatValue]]; // [tabView setAllowsDragging:YES]; + [[NSColorPanel sharedColorPanel] setShowsAlpha:YES]; } /*************************************************************************/ @@ -48,6 +68,10 @@ } [statusItem setMenu:statusItemMenu]; + + [statusItemMenu addItemWithTitle:[NSString stringWithUTF8String:"★★★★★"] + action:nil + keyEquivalent:@""]; } - (void)removeStatusItem @@ -162,14 +186,14 @@ // 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]; + [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. @@ -200,40 +224,90 @@ [[statusWindow contentView] setNeedsDisplay:YES]; } -- (IBAction)showStatusWindow:(id)sender +- (IBAction)toggleStatusWindow:(id)sender { - [[statusWindow contentView] setNeedsDisplay:YES]; -/* - [statusWindow setFrame:NSMakeRect( (0.0 - NSWidth([statusWindow frame])), - SW_BORDER, - NSWidth([statusWindow frame]), - NSHeight([statusWindow frame]) ) - display:YES]; -*/ - [statusWindow orderFront:self]; -/* - [statusWindow setFrame:NSMakeRect( SW_BORDER, - SW_BORDER, - NSWidth([statusWindow frame]), - NSHeight([statusWindow frame]) ) - display:YES - animate:YES]; -*/ + if ( ([statusWindow visibilityState] == ITWindowHiddenState) || + ([statusWindow visibilityState] == ITWindowVanishingState) ) { + [[statusWindow contentView] setNeedsDisplay:YES]; + [statusWindow appear:self]; + } else { + [statusWindow vanish:self]; + } } -- (IBAction)hideStatusWindow:(id)sender +- (IBAction)changeWindowSetting:(id)sender { - [statusWindow orderOut:self]; + if ( [sender tag] == 3010 ) { + + if ( [sender indexOfSelectedItem] == 0) { + [statusWindow setExitMode:ITTransientStatusWindowExitAfterDelay]; + } else if ( [sender indexOfSelectedItem] == 1) { + [statusWindow setExitMode:ITTransientStatusWindowExitOnCommand]; + } + + } else if ( [sender tag] == 3020 ) { + // Not yet supported + } else if ( [sender tag] == 3030 ) { + [statusWindow setExitDelay:[sender floatValue]]; + } else if ( [sender tag] == 3040 ) { + [statusWindow setVerticalPosition:[sender indexOfSelectedItem]]; + } else if ( [sender tag] == 3050 ) { + [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 ) { + + if ( [sender indexOfSelectedItem] == 0 ) { + [statusWindow setEntryEffect:[[[ITCutWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; + } else if ( [sender indexOfSelectedItem] == 1 ) { + [statusWindow setEntryEffect:[[[ITDissolveWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; + } else if ( [sender indexOfSelectedItem] == 2 ) { + [statusWindow setEntryEffect:[[[ITSlideVerticallyWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; + } else if ( [sender indexOfSelectedItem] == 3 ) { + [statusWindow setEntryEffect:[[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; + } else if ( [sender indexOfSelectedItem] == 4 ) { + [statusWindow setEntryEffect:[[[ITPivotWindowEffect alloc] initWithWindow:statusWindow] autorelease]]; + } + + [[statusWindow entryEffect] setEffectTime:[swEntrySpeedSlider floatValue]]; + + } else if ( [sender tag] == 3080 ) { + + if ( [sender indexOfSelectedItem] == 0 ) { + [statusWindow setExitEffect:[[ITCutWindowEffect alloc] initWithWindow:statusWindow]]; + } else if ( [sender indexOfSelectedItem] == 1 ) { + [statusWindow setExitEffect:[[ITDissolveWindowEffect alloc] initWithWindow:statusWindow]]; + } else if ( [sender indexOfSelectedItem] == 2 ) { + [statusWindow setExitEffect:[[ITSlideVerticallyWindowEffect alloc] initWithWindow:statusWindow]]; + } else if ( [sender indexOfSelectedItem] == 3 ) { + [statusWindow setExitEffect:[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:statusWindow]]; + } else if ( [sender indexOfSelectedItem] == 4 ) { + [statusWindow setExitEffect:[[ITPivotWindowEffect alloc] initWithWindow:statusWindow]]; + } + + [[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]]; + } } -- (IBAction)setRotation:(id)sender -{ - [statusWindow setPivot:[sender floatValue]]; -} /*************************************************************************/ #pragma mark - -#pragma mark ITTransientStatusWindow SUPPORT +#pragma mark ITTabView SUPPORT /*************************************************************************/ - (IBAction)toggleTabDragging:(id)sender @@ -266,6 +340,24 @@ { } + +/*************************************************************************/ +#pragma mark - +#pragma mark ITBevelView SUPPORT +/*************************************************************************/ + +- (IBAction)changeBevelViewSetting:(id)sender +{ + [bevelView setBevelDepth:[sender intValue]]; +} + + +/*************************************************************************/ +#pragma mark - +#pragma mark ITButton SUPPORT +/*************************************************************************/ + + /*************************************************************************/ #pragma mark - #pragma mark NSWindow DELEGATE METHODS