+
+- (id)init
+{
+ if ( ( self = [super init] ) ) {
+
+ float exitDelay;
+ int entryTag;
+ int exitTag;
+ float entrySpeed;
+ float exitSpeed;
+
+ ITWindowEffect *entryEffect;
+ ITWindowEffect *exitEffect;
+
+ _window = [[StatusWindow sharedWindow] retain];
+ df = [[NSUserDefaults standardUserDefaults] retain];
+
+ exitDelay = [df floatForKey:@"statusWindowVanishDelay"];
+ entryTag = [df integerForKey:@"statusWindowAppearanceEffect"];
+ exitTag = [df integerForKey:@"statusWindowVanishEffect"];
+ entrySpeed = [df floatForKey:@"statusWindowAppearanceSpeed"];
+ exitSpeed = [df floatForKey:@"statusWindowVanishSpeed"];
+
+ [_window setExitMode:ITTransientStatusWindowExitAfterDelay];
+ [_window setExitDelay:(exitDelay ? exitDelay : 4.0)];
+
+ if ( entryTag == 2101 ) {
+ entryEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( entryTag == 2102 ) {
+ entryEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( entryTag == 2103 ) {
+ entryEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( entryTag == 2104 ) {
+ entryEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else {
+ entryEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease];
+ }
+
+ [_window setEntryEffect:entryEffect];
+
+ if ( exitTag == 2100 ) {
+ exitEffect = [[[ITCutWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( exitTag == 2102 ) {
+ exitEffect = [[[ITSlideVerticallyWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( exitTag == 2103 ) {
+ exitEffect = [[[ITSlideHorizontallyWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else if ( exitTag == 2104 ) {
+ exitEffect = [[[ITPivotWindowEffect alloc] initWithWindow:_window] autorelease];
+ } else {
+ exitEffect = [[[ITDissolveWindowEffect alloc] initWithWindow:_window] autorelease];
+ }
+
+ [_window setExitEffect:exitEffect];
+
+ [[_window entryEffect] setEffectTime:(entrySpeed ? entrySpeed : 0.8)];
+ [[_window exitEffect] setEffectTime:(exitSpeed ? exitSpeed : 0.8)];
+ }
+
+ return self;