Added an instance method to NSMenu that will remove all of the items in
[ITKit.git] / ITCategory-NSMenu.m
index ad3904e..80501bf 100755 (executable)
@@ -1,11 +1,3 @@
-//
-//  ITCategory-NSMenu.m
-//  ITKit
-//
-//  Created by Joseph Spiros on Sat Sep 27 2003.
-//  Copyright (c) 2003 __MyCompanyName__. All rights reserved.
-//
-
 #import "ITCategory-NSMenu.h"
 
 @interface NSMenu (HACKHACKHACKHACK)
@@ -17,7 +9,7 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
 
 @implementation NSMenu (ITCategory)
 
-- (void)indentItem:(NSMenuItem *)item {
+- (void)indentItem:(id <NSMenuItem>)item {
     [self indentItem:item toLevel:1];
 }
 
@@ -25,13 +17,13 @@ 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 {
-    if ([NSMenuItem respondsToSelector:@selector(setIndentationLevel:)]) {
-        [[self itemAtIndex:index] setIndentationLevel:indentLevel];
+    if ([[self itemAtIndex:index] respondsToSelector:@selector(setIndentationLevel:)]) {
+        (void)[[self itemAtIndex:index] setIndentationLevel:indentLevel];
     } else {
         MenuRef carbonMenu = [self menuRef];
         if (carbonMenu) {
@@ -45,7 +37,7 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
     int w00t, m00f;
     
     if( [self respondsToSelector:@selector(_menuImpl)] ) {
-        [self _menuImpl];
+        (void)[self _menuImpl];
     } else {
         return nil;
     }
@@ -55,4 +47,14 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
     return carbonMenu;
 }
 
+- (void)removeAllItems {
+       int numOfItems = [self numberOfItems];
+       int i = numOfItems;
+       
+       while (i != 0) {
+               [self removeItemAtIndex:(i-1)];
+               i--;
+       }
+}
+
 @end