{
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
- (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 {
NSLog(@"ITWindowEffect does not implement cancelVanish.");
}
+- (void)releaseWhenIdle;
+{
+ if ( __idle ) {
+ [self release];
+ } else {
+ __shouldReleaseWhenIdle = YES;
+ }
+}
+
- (void)dealloc
{
[_window release];