Changed the NSMenu category from NSMenuItem * to id <NSMenuItem>
[ITKit.git] / ITCategory-NSMenu.m
index fab2497..78470cc 100755 (executable)
@@ -17,7 +17,7 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
 
 @implementation NSMenu (ITCategory)
 
-- (void)indentItem:(NSMenuItem *)item {
+- (void)indentItem:(id <NSMenuItem>)item {
     [self indentItem:item toLevel:1];
 }
 
@@ -25,14 +25,18 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
     [self indentItemAtIndex:index toLevel:1];
 }
 
-- (void)indentItem:(NSMenuItem *)item toLevel:(int)indentLevel {
+- (void)indentItem:(id <NSMenuItem>)item toLevel:(int)indentLevel {
     [self indentItemAtIndex:[self indexOfItem:item] toLevel:indentLevel];
 }
 
 - (void)indentItemAtIndex:(int)index toLevel:(int)indentLevel {
-    MenuRef carbonMenu = [self menuRef];
-    if (carbonMenu) {
-        SetMenuItemIndent(carbonMenu, index + 1, 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);
+        }
     }
 }
 
@@ -41,7 +45,7 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
     int w00t, m00f;
     
     if( [self respondsToSelector:@selector(_menuImpl)] ) {
-        [self _menuImpl];
+        (void)[self _menuImpl];
     } else {
         return nil;
     }