X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/1b0ba3083ee35fbe9b66a69dc66b7cfc84f9d484..e3ecd39c1d3a4803b8d4c051846ad6ad7b059d6f:/ITCategory-NSMenu.m diff --git a/ITCategory-NSMenu.m b/ITCategory-NSMenu.m index fab2497..78470cc 100755 --- a/ITCategory-NSMenu.m +++ b/ITCategory-NSMenu.m @@ -17,7 +17,7 @@ extern MenuRef _NSGetCarbonMenu( NSMenu *menu); @implementation NSMenu (ITCategory) -- (void)indentItem:(NSMenuItem *)item { +- (void)indentItem:(id )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 )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; }