From dd9a7dd8dd7d77b949d2548fb763c9b968c69cea Mon Sep 17 00:00:00 2001 From: Matthew Judy Date: Tue, 28 Jan 2003 14:40:46 +0000 Subject: [PATCH] Progress Check In ITCoreGraphicsHacks.h Added a few more definitions to the file. ITTransientStatusWindow.* Proof-of-concept for the pivot effect. Added a temporary support method which will be removed later (setRotation:). Showcase/Controller.* Proof-of-concept for the pivot effect. Showcase/English.lproj/MainMenu.nib/* Proof-of-concept for the pivot effect. Goodnight! --- ITCoreGraphicsHacks.h | 9 ++- ITTransientStatusWindow.h | 30 +++++--- ITTransientStatusWindow.m | 72 ++++++++++++------ Showcase/Controller.h | 1 + Showcase/Controller.m | 41 ++-------- .../English.lproj/MainMenu.nib/classes.nib | 1 + .../MainMenu.nib/keyedobjects.nib | Bin 29817 -> 34030 bytes 7 files changed, 85 insertions(+), 69 deletions(-) diff --git a/ITCoreGraphicsHacks.h b/ITCoreGraphicsHacks.h index a6ac460..72069dc 100755 --- a/ITCoreGraphicsHacks.h +++ b/ITCoreGraphicsHacks.h @@ -43,5 +43,10 @@ extern void CGStyleRelease(CGStyleRef style); extern CGStyleRef CGStyleCreateShadow(const CGShadowStyle *shadow); extern CGSValueObj CGSCreateCString(const char *string); extern CGSValueObj CGSCreateBoolean(CGSBoolean boolean); -extern CGError CGSSetWindowProperty(const CGSConnectionID cid, - CGSWindowID wid, const CGSValueObj key, const CGSValueObj value); +extern CGError CGSSetWindowProperty(const CGSConnectionID cid, CGSWindowID wid, const CGSValueObj key, const CGSValueObj value); + +extern CGAffineTransform CGAffineTransformMakeRotation(float angle); +extern CGAffineTransform CGAffineTransformMakeScale(float sx, float sy); +extern CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, float tx, float ty); +extern CGError CGSSetWindowWarp(const CGSConnectionID cid, CGSWindowID wid, int w,int h, float *mesh); +extern CGError CGSSetWindowTransform(const CGSConnectionID cid, CGSWindowID wid, CGAffineTransform transform); diff --git a/ITTransientStatusWindow.h b/ITTransientStatusWindow.h index 1d1a218..9592601 100755 --- a/ITTransientStatusWindow.h +++ b/ITTransientStatusWindow.h @@ -18,11 +18,12 @@ #import -@class ITTextField; -@class ITGrayRoundedView; +#define DEFAULT_EXIT_DELAY 3.0 +#define DEFAULT_EFFECT_TIME 0.33 -#define DEFAULT_EXIT_DELAY 3.0 +@class ITTextField; +@class ITGrayRoundedView; typedef enum { @@ -61,19 +62,23 @@ typedef enum { // Note: Entry effects descri ITTransientStatusWindowEffectDissolve, // Fades in. ITTransientStatusWindowEffectSlideVertically, // Slides vertically onto the screen from the nearest edge ITTransientStatusWindowEffectSlideHorizontally // Slides horizontally onto the screen from the nearest edge + ITTransientStatusWindowEffectPivot // Rotate into place from perpendicular edge } ITTransientStatusWindowEffect; @interface ITTransientStatusWindow : NSWindow { - ITTransientStatusWindowVisibilityState _visibilityState; - ITTransientStatusWindowExitMode _exitMode; - float _exitDelay; - ITTransientStatusWindowBackgroundType _backgroundType; - ITTransientStatusWindowEffect _entryEffect; - ITTransientStatusWindowEffect _exitEffect; - ITTransientStatusWindowPosition _verticalPosition; - ITTransientStatusWindowPosition _horizontalPosition; + ITTransientStatusWindowVisibilityState _visibilityState; + ITTransientStatusWindowExitMode _exitMode; + float _exitDelay; + ITTransientStatusWindowBackgroundType _backgroundType; + ITTransientStatusWindowEffect _entryEffect; + ITTransientStatusWindowEffect _exitEffect; + float _effectTime; + ITTransientStatusWindowPosition _verticalPosition; + ITTransientStatusWindowPosition _horizontalPosition; + + BOOL _reallyIgnoresEvents; NSTimer *_delayTimer; NSTimer *_fadeTimer; @@ -106,4 +111,7 @@ typedef enum { // Note: Entry effects descri - (ITTransientStatusWindowEffect)exitEffect; - (void)setExitEffect:(ITTransientStatusWindowEffect)newEffect; +- (void)setRotation:(float)angle; + + @end diff --git a/ITTransientStatusWindow.m b/ITTransientStatusWindow.m index 098bd2d..e44f703 100755 --- a/ITTransientStatusWindow.m +++ b/ITTransientStatusWindow.m @@ -71,10 +71,7 @@ static ITTransientStatusWindow *staticWindow = nil; { NSRect contentRect; - CGSValueObj key; - CGSValueObj ignore; - - // If no Content View was provided, use a generic NSImageView with the app icon. + // If no Content View was provided, use a generic NSView with the app icon. if ( ! (contentView) ) { contentView = [[[NSView alloc] initWithFrame: NSMakeRect(100.0, 100.0, 200.0, 200.0)] autorelease]; @@ -88,15 +85,16 @@ static ITTransientStatusWindow *staticWindow = nil; backing:NSBackingStoreBuffered defer:NO] ) ) { - _visibilityState = ITTransientStatusWindowHiddenState; - _exitMode = exitMode; - _exitDelay = DEFAULT_EXIT_DELAY; - _backgroundType = backgroundType; - _verticalPosition = ITTransientStatusWindowPositionBottom; - _horizontalPosition = ITTransientStatusWindowPositionLeft; - _entryEffect = ITTransientStatusWindowEffectNone; - _exitEffect = ITTransientStatusWindowEffectDissolve; - + _visibilityState = ITTransientStatusWindowHiddenState; + _exitMode = exitMode; + _exitDelay = DEFAULT_EXIT_DELAY; + _backgroundType = backgroundType; + _verticalPosition = ITTransientStatusWindowPositionBottom; + _horizontalPosition = ITTransientStatusWindowPositionLeft; + _entryEffect = ITTransientStatusWindowEffectNone; + _exitEffect = ITTransientStatusWindowEffectDissolve; + _effectTime = DEFAULT_EFFECT_TIME; + _reallyIgnoresEvents = YES; _delayTimer = nil; _fadeTimer = nil; @@ -106,16 +104,7 @@ static ITTransientStatusWindow *staticWindow = nil; // [self setContentView:contentView]; // } -// [self setIgnoresMouseEvents:YES]; - - key = CGSCreateCString("IgnoreForEvents"); - ignore = CGSCreateBoolean(kCGSTrue); - - CGSSetWindowProperty([NSApp contextID], (CGSWindowID)[self windowNumber], key, ignore); - - CGSReleaseObj(key); - CGSReleaseObj(ignore); - + [self setIgnoresMouseEvents:YES]; [self setLevel:NSScreenSaverWindowLevel]; [self setContentView:contentView]; [self rebuildWindow]; @@ -129,6 +118,38 @@ static ITTransientStatusWindow *staticWindow = nil; #pragma mark INSTANCE METHODS /*************************************************************************/ +- (void)setRotation:(float)angle +{ + CGAffineTransform transform = CGAffineTransformMakeRotation(angle); + transform.tx = -32.0; + transform.ty = [self frame].size.height + 32.0; + CGSSetWindowTransform([NSApp contextID], + (CGSWindowID)[self windowNumber], + CGAffineTransformTranslate(transform, + (([self frame].origin.x - 32.0) * -1), + (([[self screen] frame].size.height - ([self frame].origin.y) + 32.0) * -1) )); + NSLog(@"%f %f", ([self frame].origin.x * -1), ([self frame].origin.y * -1)); +} + +- (BOOL)ignoresMouseEvents +{ + return _reallyIgnoresEvents; +} + +- (void)setIgnoresMouseEvents:(BOOL)flag +{ + CGSValueObj key; + CGSValueObj ignore; + + key = CGSCreateCString("IgnoreForEvents"); + ignore = CGSCreateBoolean( (flag ? kCGSTrue : kCGSFalse) ); + CGSSetWindowProperty([NSApp contextID], (CGSWindowID)[self windowNumber], key, ignore); + CGSReleaseObj(key); + CGSReleaseObj(ignore); + + _reallyIgnoresEvents = flag; +} + - (void)orderFront:(id)sender { if ( _exitMode == ITTransientStatusWindowExitAfterDelay ) { @@ -165,6 +186,11 @@ static ITTransientStatusWindow *staticWindow = nil; } } +- (NSTimeInterval)animationResizeTime:(NSRect)newFrame +{ + return _effectTime; +} + /* - (id)contentView diff --git a/Showcase/Controller.h b/Showcase/Controller.h index 46c871d..0ce4bee 100755 --- a/Showcase/Controller.h +++ b/Showcase/Controller.h @@ -41,5 +41,6 @@ - (IBAction)buildStatusWindow:(id)sender; - (IBAction)showStatusWindow:(id)sender; - (IBAction)hideStatusWindow:(id)sender; +- (IBAction)setRotation:(id)sender; @end diff --git a/Showcase/Controller.m b/Showcase/Controller.m index 8998a38..ee2a19c 100755 --- a/Showcase/Controller.m +++ b/Showcase/Controller.m @@ -186,6 +186,8 @@ 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]]; @@ -197,39 +199,6 @@ [[statusWindow contentView] setNeedsDisplay:YES]; } -/* -- (IBAction)foo:(id)sender -{ - - maxLineHeight = ( ( maxLineHeight > [cdImage size].height ) ? maxLineHeight : [cdImage size].height ); - - totalWidth = ( ITTSWPADDING + [cdImage size].width + ITTSWSPACING + maxLineWidth + ITTSWPADDING ); - totalHeight = ( ITTSWPADDING + maxLineHeight + ITTSWPADDING ); - - totalWidth = ( ( totalWidth > ITTSWMINW ) ? totalWidth : ITTSWMINW ); - - - [statusWindow setFrame:NSMakeRect(72.0, 72.0, totalWidth, totalHeight) - display:YES]; - - textField = [[[ITTextField alloc] initWithFrame: - NSMakeRect((24.0 + [cdImage size].width + 32.0), 24.0, maxLineWidth, maxLineHeight)] autorelease]; - [[statusWindow contentView] addSubview:textField]; - [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]; - - - [[statusWindow contentView] lockFocus]; - [cdImage compositeToPoint:NSMakePoint(ITTSWPADDING, ( ITTSWPADDING + ((maxLineHeight - [cdImage size].height) / ITTSWPADDING)) ) - operation:NSCompositeSourceOver]; - [[statusWindow contentView] unlockFocus]; -} -*/ - - (IBAction)showStatusWindow:(id)sender { // [[statusWindow contentView] setNeedsDisplay:YES]; @@ -252,6 +221,12 @@ [statusWindow orderOut:self]; } +- (IBAction)setRotation:(id)sender +{ + [statusWindow setRotation:([sender floatValue] * (pi / 180))]; +} + + /*************************************************************************/ #pragma mark - #pragma mark NSWindow DELEGATE METHODS diff --git a/Showcase/English.lproj/MainMenu.nib/classes.nib b/Showcase/English.lproj/MainMenu.nib/classes.nib index e064a23..880f379 100755 --- a/Showcase/English.lproj/MainMenu.nib/classes.nib +++ b/Showcase/English.lproj/MainMenu.nib/classes.nib @@ -4,6 +4,7 @@ ACTIONS = { buildStatusWindow = id; hideStatusWindow = id; + setRotation = id; showStatusWindow = id; toggleCastsShadow = id; toggleImage = id; diff --git a/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib b/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib index c54ceb5b5482d61ab8c1a5ee26577488800ecfbd..8797e1053571d0ba255832561e2bb05824f12870 100755 GIT binary patch literal 34030 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

e#)O=B#Dt89Yg)hx<%G3 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 -- 2.20.1