X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/2589c16f443dd6fe9df554eb533df464b5bb919b..21d518f55b0ffbe665ccd04a53d67d2ed1d66149:/ITWindowEffect.h?ds=inline diff --git a/ITWindowEffect.h b/ITWindowEffect.h old mode 100755 new mode 100644 index bb1c3b8..8dcd15d --- a/ITWindowEffect.h +++ b/ITWindowEffect.h @@ -1,39 +1,77 @@ /* * ITKit - * ITWindowEffect - * Protocal and abstract superclass for performing effects on windows. + * ITWindowEffect.h * - * Original Author : Matt Judy - * Responsibility : Matt Judy + * Protocol and abstract superclass for performing effects on windows. * - * Copyright (c) 2002 - 2003 iThink Software. - * All Rights Reserved + * Copyright (c) 2005 by iThink Software. + * All Rights Reserved. + * + * $Id$ * */ - #import +#import + +@class ITTransientStatusWindow; +#define EFFECT_FPS 30.0 +#define DEFAULT_EFFECT_TIME 0.75 + +typedef enum { + ITWindowHiddenState, + ITWindowAppearingState, + ITWindowVisibleState, + ITWindowVanishingState +} ITWindowVisibilityState; @protocol ITWindowEffect ++ (NSString *)effectName; ++ (NSDictionary *)supportedPositions; ++ (unsigned int)listOrder; - (void)performAppear; - (void)performVanish; +- (void)cancelAppear; +- (void)cancelVanish; @end +@protocol ITWindowMotility + +- (ITWindowVisibilityState)visibilityState; +- (void)setVisibilityState:(ITWindowVisibilityState)newState; +- (float)effectProgress; +- (void)setEffectProgress:(float)newProgress; + +@end -@interface ITWindowEffect : NSObject -{ - NSWindow *_window; +@interface ITWindowEffect : NSObject { + NSWindow *_window; + float _effectTime; + float _effectSpeed; + ITVerticalWindowPosition _verticalPosition; + ITHorizontalWindowPosition _horizontalPosition; + NSTimer *_effectTimer; + BOOL __idle; + BOOL __shouldReleaseWhenIdle; } ++ (NSArray *)effectClasses; + // Designated initializer - (id)initWithWindow:(NSWindow *)window; - (NSWindow *)window; -// setWindow: does not retain or release its window. It simply references it. - (void)setWindow:(NSWindow *)newWindow; -@end +- (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState; + +- (float)effectTime; +- (void)setEffectTime:(float)newTime; + +- (void)releaseWhenIdle; + +@end \ No newline at end of file