Intermediary checkin, just to mark my place and back up, in case Panther decides...
authorMatthew Judy <mjudy@ithinksw.com>
Sun, 23 Nov 2003 10:36:48 +0000 (10:36 +0000)
committerMatthew Judy <mjudy@ithinksw.com>
Sun, 23 Nov 2003 10:36:48 +0000 (10:36 +0000)
ITCategory-NSMenu.h
ITCutWindowEffect.m
ITDissolveWindowEffect.m
ITKit.xcode/project.pbxproj
ITPivotWindowEffect.m
ITSlideHorizontallyWindowEffect.m
ITSlideVerticallyWindowEffect.m
ITWindowEffect.h
ITWindowEffect.m

index 02ebefa..ad058bd 100755 (executable)
@@ -1,10 +1,17 @@
-//
-//  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>
index 8ab95cd..2340dbf 100755 (executable)
@@ -5,6 +5,29 @@
 @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
index b058548..180f80e 100755 (executable)
 @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
index 73e0eec..b00a982 100755 (executable)
                        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,
                        );
index 7c59705..bcf4f54 100755 (executable)
 @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
index 2382cc4..26f8db7 100755 (executable)
 @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
index 023e276..d930373 100755 (executable)
 @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
index bd5985b..23fe4ad 100755 (executable)
@@ -30,6 +30,8 @@ typedef enum {
 
 
 @protocol ITWindowEffect
++ (NSString *)effectName;
++ (NSDictionary *)supportedPositions;
 - (void)performAppear;
 - (void)performVanish;
 - (void)cancelAppear;
@@ -57,7 +59,7 @@ typedef enum {
     BOOL                       __shouldReleaseWhenIdle;
 }
 
-+ (NSArray *)effectsInfo;
++ (NSArray *)effectClasses;
 
 // Designated initializer
 - (id)initWithWindow:(NSWindow *)window;
index 2b1d4fe..1e2e750 100755 (executable)
 
 @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.");