From: Joseph Spiros Date: Sat, 27 Sep 2003 12:29:34 +0000 (+0000) Subject: Added category on NSMenu which supports indenting items (uses Carbon in X-Git-Tag: v0.1~34 X-Git-Url: http://git.ithinksw.org/ITKit.git/commitdiff_plain/4ff490fc75e62c7dc772093f719e8c44903e7610 Added category on NSMenu which supports indenting items (uses Carbon in the backend) --- diff --git a/ITCategory-NSMenu.h b/ITCategory-NSMenu.h new file mode 100755 index 0000000..7cdac3d --- /dev/null +++ b/ITCategory-NSMenu.h @@ -0,0 +1,16 @@ +// +// ITCategory-NSMenu.h +// ITKit +// +// Created by Joseph Spiros on Sat Sep 27 2003. +// Copyright (c) 2003 __MyCompanyName__. All rights reserved. +// + +#import +#import + +@interface NSMenu (ITCategory) + +- (MenuRef)menuRef; + +@end diff --git a/ITCategory-NSMenu.m b/ITCategory-NSMenu.m new file mode 100755 index 0000000..4e94be0 --- /dev/null +++ b/ITCategory-NSMenu.m @@ -0,0 +1,52 @@ +// +// 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) +- (id)_menuImpl; +@end + +extern MenuRef _NSGetCarbonMenu( NSMenu *menu); + +@implementation NSMenu (ITCategory) + +- (void)indentItem:(NSMenuItem *)item { + [self indentItem:item toLevel:2]; +} + +- (void)indentItemAtIndex:(int)index { + [self indentItemAtIndex:index toLevel:2]; +} + +- (void)indentItem:(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, indentLevel); + } +} + +- (MenuRef)menuRef { + MenuRef carbonMenu; + + if( [self respondsToSelector:@selector(_menuImpl)] ) { + [self _menuImpl]; + } else { + return nil; + } + + carbonMenu = _NSGetCarbonMenu(self); + return carbonMenu; +} + +@end diff --git a/ITKit.h b/ITKit.h index e76e907..e03aef2 100755 --- a/ITKit.h +++ b/ITKit.h @@ -29,3 +29,4 @@ #import #import +#import