X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/079b33aed3d1c849f1f46022040813d6394100f2..abdb0712ef9e62ff570497eb0e7072eb92b23722:/ITWindowEffect.m diff --git a/ITWindowEffect.m b/ITWindowEffect.m old mode 100755 new mode 100644 index 9eb75a6..54a73bf --- a/ITWindowEffect.m +++ b/ITWindowEffect.m @@ -4,18 +4,32 @@ @implementation ITWindowEffect ++ (NSArray *)effectClasses +{ + NSArray *classes = [NSArray arrayWithObjects: + NSClassFromString(@"ITCutWindowEffect"), + NSClassFromString(@"ITDissolveWindowEffect"), + NSClassFromString(@"ITSlideHorizontallyWindowEffect"), + NSClassFromString(@"ITSlideVerticallyWindowEffect"), + NSClassFromString(@"ITPivotWindowEffect"), + NSClassFromString(@"ITZoomWindowEffect"), + NSClassFromString(@"ITSpinWindowEffect"), + NSClassFromString(@"ITSpinAndZoomWindowEffect"), + nil]; + + return classes; +} - (id)initWithWindow:(NSWindow *)window { if ( (self = [super init]) ) { - - _window = [window retain]; - _effectTime = DEFAULT_EFFECT_TIME; - _effectProgress = 0.00; - _effectTimer = nil; + _window = [window retain]; + _effectTime = DEFAULT_EFFECT_TIME; + _effectTimer = nil; + __shouldReleaseWhenIdle = NO; + __idle = YES; if ( [window conformsToProtocol:@protocol(ITWindowPositioning)] ) { - // Casts so the compiler won't gripe _verticalPosition = (ITVerticalWindowPosition)[(ITTransientStatusWindow *)window verticalPosition]; _horizontalPosition = (ITHorizontalWindowPosition)[(ITTransientStatusWindow *)window horizontalPosition]; } else { @@ -40,7 +54,7 @@ - (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState { - if ( [_window conformsToProtocol:@protocol(ITWindowVisibility)] ) { + if ( [_window conformsToProtocol:@protocol(ITWindowMotility)] ) { // Cast so the compiler won't gripe [(ITTransientStatusWindow *)_window setVisibilityState:visibilityState]; } else { @@ -48,24 +62,75 @@ } } +- (float)effectTime +{ + return _effectTime; +} + +- (void)setEffectTime:(float)newTime +{ + _effectTime = newTime; +} + ++ (NSString *)effectName +{ + NSLog(@"ITWindowEffect does not implement +effectName."); + return nil; +} + ++ (NSDictionary *)supportedPositions +{ + NSLog(@"ITWindowEffect does not implement +supportedPositions."); + +// Below is an example dictionary. Modify it appropriately when subclassing. + return [NSDictionary dictionaryWithObjectsAndKeys: + [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:NO], @"Left", + [NSNumber numberWithBool:NO], @"Center", + [NSNumber numberWithBool:NO], @"Right", nil] , @"Top" , + [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:NO], @"Left", + [NSNumber numberWithBool:NO], @"Center", + [NSNumber numberWithBool:NO], @"Right", nil] , @"Middle" , + [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:NO], @"Left", + [NSNumber numberWithBool:NO], @"Center", + [NSNumber numberWithBool:NO], @"Right", nil] , @"Bottom" , nil]; +} + ++ (unsigned int)listOrder +{ + NSLog(@"ITWindowEffect does not implement +listOrder."); + return 0; +} + - (void)performAppear { - NSLog(@"ITWindowEffect does not implement performAppear."); + NSLog(@"ITWindowEffect does not implement -performAppear."); } - (void)performVanish { - NSLog(@"ITWindowEffect does not implement performVanish."); + NSLog(@"ITWindowEffect does not implement -performVanish."); } - (void)cancelAppear { - NSLog(@"ITWindowEffect does not implement cancelAppear."); + NSLog(@"ITWindowEffect does not implement -cancelAppear."); } - (void)cancelVanish { - NSLog(@"ITWindowEffect does not implement cancelVanish."); + NSLog(@"ITWindowEffect does not implement -cancelVanish."); +} + +- (void)releaseWhenIdle; +{ + if ( __idle ) { + [self release]; + } else { + __shouldReleaseWhenIdle = YES; + } } - (void)dealloc