Removing the use of private CoreGraphics APIs to draw shadows, and replacing with...
[ITKit.git] / ITCategory-NSMenu.m
old mode 100755 (executable)
new mode 100644 (file)
index 80501bf..5ec05a8
@@ -1,50 +1,56 @@
 #import "ITCategory-NSMenu.h"
 
-@interface NSMenu (HACKHACKHACKHACK)
+extern void _NSGetMenuItemForCommandKeyEvent(NSMenu *menu, void *chicken, void *taco, void *food); 
+extern MenuRef _NSGetCarbonMenu(NSMenu *menu);
+
+@interface NSMenu (ITKitCategoryHacks)
 - (id)_menuImpl;
 @end
 
-extern void _NSGetMenuItemForCommandKeyEvent (NSMenu *menu, void *chicken, void *taco, void *food); 
-extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
+@protocol _ITKitCategoryNSMenuItemPantherCompatability <NSMenuItem>
+- (int)indentationLevel;
+- (void)setIndentationLevel:(int)indentationLevel;
+@end
 
-@implementation NSMenu (ITCategory)
+@implementation NSMenu (ITKitCategory)
 
 - (void)indentItem:(id <NSMenuItem>)item {
-    [self indentItem:item toLevel:1];
+       [self indentItem:item toLevel:1];
 }
 
 - (void)indentItemAtIndex:(int)index {
-    [self indentItemAtIndex:index toLevel:1];
+       [self indentItemAtIndex:index toLevel:1];
 }
 
 - (void)indentItem:(id <NSMenuItem>)item toLevel:(int)indentLevel {
-    [self indentItemAtIndex:[self indexOfItem:item] toLevel:indentLevel];
+       [self indentItemAtIndex:[self indexOfItem:item] toLevel:indentLevel];
 }
 
 - (void)indentItemAtIndex:(int)index toLevel:(int)indentLevel {
-    if ([[self itemAtIndex:index] respondsToSelector:@selector(setIndentationLevel:)]) {
-        (void)[[self itemAtIndex:index] setIndentationLevel:indentLevel];
-    } else {
-        MenuRef carbonMenu = [self menuRef];
-        if (carbonMenu) {
-            SetMenuItemIndent(carbonMenu, index + 1, indentLevel);
-        }
-    }
+       id <NSMenuItem> theItem = [self itemAtIndex:index];
+       if ([theItem respondsToSelector:@selector(setIndentationLevel:)]) {
+           [(id <_ITKitCategoryNSMenuItemPantherCompatability>)theItem setIndentationLevel:indentLevel];
+       } else {
+           MenuRef carbonMenu = [self menuRef];
+           if (carbonMenu) {
+               SetMenuItemIndent(carbonMenu, index + 1, indentLevel);
+           }
+       }
 }
 
 - (MenuRef)menuRef {
-    MenuRef carbonMenu;
-    int w00t, m00f;
-    
-    if( [self respondsToSelector:@selector(_menuImpl)] ) {
-        (void)[self _menuImpl];
-    } else {
-        return nil;
-    }
-    
-    _NSGetMenuItemForCommandKeyEvent(self, NULL, &w00t, &m00f); 
-    carbonMenu = _NSGetCarbonMenu(self);
-    return carbonMenu;
+       MenuRef carbonMenu;
+       int w00t, m00f;
+       
+       if ([self respondsToSelector:@selector(_menuImpl)]) {
+           (void)[self _menuImpl];
+       } else {
+           return nil;
+       }
+       
+       _NSGetMenuItemForCommandKeyEvent(self, NULL, &w00t, &m00f); 
+       carbonMenu = _NSGetCarbonMenu(self);
+       return carbonMenu;
 }
 
 - (void)removeAllItems {
@@ -57,4 +63,4 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
        }
 }
 
-@end
+@end
\ No newline at end of file