- (id)_menuImpl;
@end
+extern void _NSGetMenuItemForCommandKeyEvent (NSMenu *menu, void *chicken, void *taco, void *food);
extern MenuRef _NSGetCarbonMenu( NSMenu *menu);
@implementation NSMenu (ITCategory)
- (void)indentItem:(NSMenuItem *)item {
- [self indentItem:item toLevel:2];
+ [self indentItem:item toLevel:1];
}
- (void)indentItemAtIndex:(int)index {
- [self indentItemAtIndex:index toLevel:2];
+ [self indentItemAtIndex:index toLevel:1];
}
- (void)indentItem:(NSMenuItem *)item toLevel:(int)indentLevel {
}
- (void)indentItemAtIndex:(int)index toLevel:(int)indentLevel {
- MenuRef carbonMenu = [self menuRef];
-
- if (carbonMenu) {
- SetMenuItemIndent(carbonMenu, index, indentLevel);
+ if ([[self itemAtIndex:index] respondsToSelector:@selector(setIndentationLevel:)]) {
+ [[self itemAtIndex:index] 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)] ) {
[self _menuImpl];
return nil;
}
+ _NSGetMenuItemForCommandKeyEvent(self, NULL, &w00t, &m00f);
carbonMenu = _NSGetCarbonMenu(self);
return carbonMenu;
}