4 * Protocal and abstract superclass for performing effects on windows.
6 * Original Author : Matt Judy <mjudy@ithinksw.com>
7 * Responsibility : Matt Judy <mjudy@ithinksw.com>
9 * Copyright (c) 2002 - 2003 iThink Software.
15 #import <Cocoa/Cocoa.h>
16 #import "ITWindowPositioning.h"
19 #define EFFECT_FPS 30.0
20 #define DEFAULT_EFFECT_TIME 0.75
24 ITTransientStatusWindowHiddenState,
25 ITTransientStatusWindowAppearingState,
26 ITTransientStatusWindowVisibleState,
27 ITTransientStatusWindowVanishingState
28 } ITWindowVisibilityState;
31 @protocol ITWindowEffect
32 - (void)performAppear;
33 - (void)performVanish;
39 @protocol ITWindowVisibility
40 - (ITWindowVisibilityState)visibilityState;
41 - (void)setVisibilityState:(ITWindowVisibilityState)newState;
45 @interface ITWindowEffect : NSObject <ITWindowEffect>
49 double _effectProgress;
50 ITVerticalWindowPosition _verticalPosition;
51 ITHorizontalWindowPosition _horizontalPosition;
52 NSTimer *_effectTimer;
55 // Designated initializer
56 - (id)initWithWindow:(NSWindow *)window;
60 - (void)setWindow:(NSWindow *)newWindow;
62 - (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState;