#import "ITWindowEffect.h"
#import "ITTransientStatusWindow.h"
-
+#import <OpenGL/gl.h>
+#import <OpenGL/glu.h>
+#import <OpenGL/glext.h>
@implementation ITWindowEffect
+ (NSArray *)effectClasses
{
- NSArray *classes = [NSArray arrayWithObjects:
+ NSMutableArray *classes = [[NSArray arrayWithObjects:
NSClassFromString(@"ITCutWindowEffect"),
NSClassFromString(@"ITDissolveWindowEffect"),
NSClassFromString(@"ITSlideHorizontallyWindowEffect"),
NSClassFromString(@"ITSlideVerticallyWindowEffect"),
NSClassFromString(@"ITPivotWindowEffect"),
- nil];
-
- return classes;
+ NSClassFromString(@"ITZoomWindowEffect"),
+ NSClassFromString(@"ITSpinWindowEffect"),
+ NSClassFromString(@"ITSpinAndZoomWindowEffect"),
+ nil] mutableCopy];
+
+ long version;
+ if ((Gestalt(gestaltSystemVersion, &version) == noErr) && (version >= 4160) && (version < 4166)) {
+ NSOpenGLView *view = [[NSOpenGLView alloc] initWithFrame:NSMakeRect(0, 0, 1, 1) pixelFormat:[NSOpenGLView defaultPixelFormat]];
+ if ([view openGLContext]) {
+ NSString *string = [NSString stringWithCString:glGetString(GL_EXTENSIONS)];
+ NSRange result = [string rangeOfString:@"ARB_fragment_program"];
+ if (result.location != NSNotFound) {
+ [classes addObject:NSClassFromString(@"ITCoreImageWindowEffect")];
+ }
+ }
+ [view release];
+ }
+
+ return [classes autorelease];
}
- (id)initWithWindow:(NSWindow *)window
__idle = YES;
if ( [window conformsToProtocol:@protocol(ITWindowPositioning)] ) {
- // Casts so the compiler won't gripe
_verticalPosition = (ITVerticalWindowPosition)[(ITTransientStatusWindow *)window verticalPosition];
_horizontalPosition = (ITHorizontalWindowPosition)[(ITTransientStatusWindow *)window horizontalPosition];
} else {
[NSNumber numberWithBool:NO], @"Right", nil] , @"Bottom" , nil];
}
++ (unsigned int)listOrder
+{
+ NSLog(@"ITWindowEffect does not implement +listOrder.");
+ return 0;
+}
+
- (void)performAppear
{
- NSLog(@"ITWindowEffect does not implement performAppear.");
+ NSLog(@"ITWindowEffect does not implement -performAppear.");
}
- (void)performVanish
{
- NSLog(@"ITWindowEffect does not implement performVanish.");
+ NSLog(@"ITWindowEffect does not implement -performVanish.");
}
- (void)cancelAppear
{
- NSLog(@"ITWindowEffect does not implement cancelAppear.");
+ NSLog(@"ITWindowEffect does not implement -cancelAppear.");
}
- (void)cancelVanish
{
- NSLog(@"ITWindowEffect does not implement cancelVanish.");
+ NSLog(@"ITWindowEffect does not implement -cancelVanish.");
}
- (void)releaseWhenIdle;