-//
-// 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)
@implementation NSMenu (ITCategory)
-- (void)indentItem:(NSMenuItem *)item {
+- (void)indentItem:(id <NSMenuItem>)item {
[self indentItem:item toLevel:1];
}
[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);
+ }
}
}
int w00t, m00f;
if( [self respondsToSelector:@selector(_menuImpl)] ) {
- [self _menuImpl];
+ (void)[self _menuImpl];
} else {
return nil;
}
return carbonMenu;
}
+- (void)removeAllItems {
+ int numOfItems = [self numberOfItems];
+ int i = numOfItems;
+
+ while (i != 0) {
+ [self removeItemAtIndex:(i-1)];
+ i--;
+ }
+}
+
@end