-//
-// ITCategory-NSMenu.h
-// ITKit
-//
-// Created by Joseph Spiros on Sat Sep 27 2003.
-// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
-//
+/*
+ * ITKit
+ * ITCategory-NSMenu.h
+ * Category which extends NSMenu
+ *
+ * Original Author : Joseph Spiros <joseph.spiros@ithinksw.com>
+ * Responsibility : Matt Judy <mjudy@ithinksw.com>
+ * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ *
+ * Copyright (c) 2002 - 2003 iThink Software.
+ * All Rights Reserved
+ *
+ */
+
#import <Cocoa/Cocoa.h>
#import <Carbon/Carbon.h>
@implementation ITCutWindowEffect
++ (NSString *)effectName
+{
+ return @"Cut";
+}
+
++ (NSDictionary *)supportedPositions
+{
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Bottom" , nil];
+}
+
+
/*************************************************************************/
#pragma mark -
#pragma mark APPEAR METHODS
@implementation ITDissolveWindowEffect
++ (NSString *)effectName
+{
+ return @"Dissolve";
+}
+
++ (NSDictionary *)supportedPositions
+{
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Bottom" , nil];
+}
+
+
/*************************************************************************/
#pragma mark -
#pragma mark APPEAR METHODS
children = (
7C992DE4054F5179000B93EA,
7C992DD3054F5179000B93EA,
- 7C992DFD054F5179000B93EA,
);
isa = PBXGroup;
name = Headers;
7C992DFA054F5179000B93EA,
7C992DD8054F5179000B93EA,
7C992DD9054F5179000B93EA,
+ 7C992DFD054F5179000B93EA,
7C99305B054F687D000B93EA,
);
isa = PBXGroup;
7C992DD5054F5179000B93EA,
7C992DD6054F5179000B93EA,
7C992DD7054F5179000B93EA,
- 7C992DE9054F5179000B93EA,
- 7C992DEA054F5179000B93EA,
7C992DEB054F5179000B93EA,
7C992DEC054F5179000B93EA,
+ 7C992DE9054F5179000B93EA,
+ 7C992DEA054F5179000B93EA,
7C992DE7054F5179000B93EA,
7C992DE8054F5179000B93EA,
);
@implementation ITPivotWindowEffect
++ (NSString *)effectName
+{
+ return @"Pivot";
+}
+
++ (NSDictionary *)supportedPositions
+{
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:NO], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Bottom" , nil];
+}
+
+
/*************************************************************************/
#pragma mark -
#pragma mark APPEAR METHODS
@implementation ITSlideHorizontallyWindowEffect
++ (NSString *)effectName
+{
+ return @"Slide Horizontally";
+}
+
++ (NSDictionary *)supportedPositions
+{
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Bottom" , nil];
+}
+
+
/*************************************************************************/
#pragma mark -
#pragma mark APPEAR METHODS
@implementation ITSlideVerticallyWindowEffect
++ (NSString *)effectName
+{
+ return @"Slide Vertically";
+}
+
++ (NSDictionary *)supportedPositions
+{
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:NO], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"Left",
+ [NSNumber numberWithBool:YES], @"Center",
+ [NSNumber numberWithBool:YES], @"Right", nil] , @"Bottom" , nil];
+}
+
+
/*************************************************************************/
#pragma mark -
#pragma mark APPEAR METHODS
@protocol ITWindowEffect
++ (NSString *)effectName;
++ (NSDictionary *)supportedPositions;
- (void)performAppear;
- (void)performVanish;
- (void)cancelAppear;
BOOL __shouldReleaseWhenIdle;
}
-+ (NSArray *)effectsInfo;
++ (NSArray *)effectClasses;
// Designated initializer
- (id)initWithWindow:(NSWindow *)window;
@implementation ITWindowEffect
-+ (NSArray *)effectsInfo
++ (NSArray *)effectClasses
{
- int ce;
- NSMutableArray *finalArray = [[[NSMutableArray alloc] initWithCapacity:5] autorelease];
-
- NSArray *effectKeys = [NSArray arrayWithObjects:
- @"Name",
- @"Class",
- @"Positions",
- nil];
-
- NSArray *effectNames = [NSArray arrayWithObjects:
- @"Cut",
- @"Dissolve",
- @"Slide Horizontally",
- @"Slide Vertically",
- @"Pivot",
- nil];
-
- NSArray *classNames = [NSArray arrayWithObjects:
- @"ITCutWindowEffect",
- @"ITDissolveWindowEffect",
- @"ITSlideHorizontallyWindowEffect",
- @"ITSlideVerticallyWindowEffect",
- @"ITPivotWindowEffect",
- nil];
-
- NSArray *positionKeys = [NSArray arrayWithObjects:
- @"TopLeft",
- @"TopCenter",
- @"TopRight",
- @"MiddleLeft",
- @"MiddleCenter",
- @"MiddleRight",
- @"BottomLeft",
- @"BottomCenter",
- @"BottomRight",
+ NSArray *classes = [NSArray arrayWithObjects:
+ NSClassFromString(@"ITCutWindowEffect"),
+ NSClassFromString(@"ITDissolveWindowEffect"),
+ NSClassFromString(@"ITSlideHorizontallyWindowEffect"),
+ NSClassFromString(@"ITSlideVerticallyWindowEffect"),
+ NSClassFromString(@"ITPivotWindowEffect"),
nil];
- NSArray *cutPositionValues = [NSArray arrayWithObjects:
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- nil];
-
- NSArray *dissolvePositionValues = [NSArray arrayWithObjects:
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- nil];
-
- NSArray *slideVerticallyPositionValues = [NSArray arrayWithObjects:
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- nil];
-
- NSArray *slideHorizontallyPositionValues = [NSArray arrayWithObjects:
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- nil];
-
- NSArray *pivotPositionValues = [NSArray arrayWithObjects:
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- [NSNumber numberWithBool:NO],
- [NSNumber numberWithBool:YES],
- nil];
-
- NSArray *positionDicts = [NSArray arrayWithObjects:
- [NSDictionary dictionaryWithObjects:cutPositionValues
- forKeys:positionKeys],
- [NSDictionary dictionaryWithObjects:dissolvePositionValues
- forKeys:positionKeys],
- [NSDictionary dictionaryWithObjects:slideVerticallyPositionValues
- forKeys:positionKeys],
- [NSDictionary dictionaryWithObjects:slideHorizontallyPositionValues
- forKeys:positionKeys],
- [NSDictionary dictionaryWithObjects:pivotPositionValues
- forKeys:positionKeys],
- nil];
-
- for ( ce = 0 ; ce < [effectNames count] ; ce++ ) {
-
- NSArray *entryValues = [NSArray arrayWithObjects:
- [effectNames objectAtIndex:ce],
- [classNames objectAtIndex:ce],
- [positionDicts objectAtIndex:ce],
- nil];
-
- NSDictionary *entryDict = [NSDictionary dictionaryWithObjects:entryValues
- forKeys:effectKeys];
- [finalArray addObject:entryDict];
- }
-
- return finalArray;
+ return classes;
}
- (id)initWithWindow:(NSWindow *)window
{
if ( (self = [super init]) ) {
-
_window = [window retain];
_effectTime = DEFAULT_EFFECT_TIME;
_effectTimer = nil;
_effectTime = newTime;
}
++ (NSString *)effectName
+{
+ NSLog(@"ITWindowEffect does not implement +effectName.");
+ return nil;
+}
+
++ (NSDictionary *)supportedPositions
+{
+ NSLog(@"ITWindowEffect does not implement +supportedPositions.");
+
+// Below is an example dictionary. Modify it appropriately when subclassing.
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:NO], @"Right", nil] , @"Top" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:NO], @"Right", nil] , @"Middle" ,
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], @"Left",
+ [NSNumber numberWithBool:NO], @"Center",
+ [NSNumber numberWithBool:NO], @"Right", nil] , @"Bottom" , nil];
+}
+
- (void)performAppear
{
NSLog(@"ITWindowEffect does not implement performAppear.");