X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/7c89200521dd8c6cb8fc8a17c633ac80d4b18bd2..63956bb9f9984a26dc8147615be854e93ccc6b50:/ITWindowEffect.m diff --git a/ITWindowEffect.m b/ITWindowEffect.m index 752742b..1e2e750 100755 --- a/ITWindowEffect.m +++ b/ITWindowEffect.m @@ -4,14 +4,27 @@ @implementation ITWindowEffect ++ (NSArray *)effectClasses +{ + NSArray *classes = [NSArray arrayWithObjects: + NSClassFromString(@"ITCutWindowEffect"), + NSClassFromString(@"ITDissolveWindowEffect"), + NSClassFromString(@"ITSlideHorizontallyWindowEffect"), + NSClassFromString(@"ITSlideVerticallyWindowEffect"), + NSClassFromString(@"ITPivotWindowEffect"), + nil]; + + return classes; +} - (id)initWithWindow:(NSWindow *)window { if ( (self = [super init]) ) { - - _window = [window retain]; - _effectTime = DEFAULT_EFFECT_TIME; - _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 @@ -57,6 +70,32 @@ _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]; +} + - (void)performAppear { NSLog(@"ITWindowEffect does not implement performAppear."); @@ -77,6 +116,15 @@ NSLog(@"ITWindowEffect does not implement cancelVanish."); } +- (void)releaseWhenIdle; +{ + if ( __idle ) { + [self release]; + } else { + __shouldReleaseWhenIdle = YES; + } +} + - (void)dealloc { [_window release];