From d705af8965d490969ef3cdd55fe4563f8f0c6809 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Wed, 2 Dec 2009 20:41:52 -0800 Subject: [PATCH] Added support for indentation levels in menu items. Reviewed by me. --- AppKit/CPMenuItem/CPMenuItem.j | 15 ++++++++++++--- Tools/nib2cib/NSMenuItem.j | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/AppKit/CPMenuItem/CPMenuItem.j b/AppKit/CPMenuItem/CPMenuItem.j index b11024918..0c482a92e 100644 --- a/AppKit/CPMenuItem/CPMenuItem.j +++ b/AppKit/CPMenuItem/CPMenuItem.j @@ -109,7 +109,9 @@ _keyEquivalent = aKeyEquivalent || @""; _keyEquivalentModifierMask = CPPlatformActionKeyMask; - + + _indentationLevel = 0; + _mnemonicLocation = CPNotFound; } @@ -675,7 +677,7 @@ CPControlKeyMask - (void)setIndentationLevel:(unsigned)aLevel { if (aLevel < 0) - [CPException raise:CPInvalidArgumentException reason:"setIndentationLevel: argument must be greater than 0."]; + [CPException raise:CPInvalidArgumentException reason:"setIndentationLevel: argument must be greater than or equal to 0."]; _indentationLevel = MIN(15, aLevel); } @@ -802,6 +804,8 @@ var CPMenuItemIsSeparatorKey = @"CPMenuItemIsSeparatorKey", CPMenuItemKeyEquivalentKey = @"CPMenuItemKeyEquivalentKey", CPMenuItemKeyEquivalentModifierMaskKey = @"CPMenuItemKeyEquivalentModifierMaskKey", + CPMenuItemIndentationLevelKey = @"CPMenuItemIndentationLevelKey", + CPMenuItemRepresentedObjectKey = @"CPMenuItemRepresentedObjectKey", CPMenuItemViewKey = @"CPMenuItemViewKey"; @@ -851,7 +855,9 @@ var CPMenuItemIsSeparatorKey = @"CPMenuItemIsSeparatorKey", // int _mnemonicLocation; // BOOL _isAlternate; -// int _indentationLevel; + + // Default is 0. + [self setIndentationLevel:[aCoder decodeIntForKey:CPMenuItemIndentationLevelKey] || 0]; // CPString _toolTip; @@ -894,6 +900,9 @@ var CPMenuItemIsSeparatorKey = @"CPMenuItemIsSeparatorKey", if (_keyEquivalentModifierMask) [aCoder encodeObject:_keyEquivalentModifierMask forKey:CPMenuItemKeyEquivalentModifierMaskKey]; + if (_indentationLevel > 0) + [aCoder encodeInt:_indentationLevel forKey:CPMenuItemIndentationLevelKey]; + ENCODE_IFNOT(CPMenuItemRepresentedObjectKey, _representedObject, nil); ENCODE_IFNOT(CPMenuItemViewKey, _view, nil); } diff --git a/Tools/nib2cib/NSMenuItem.j b/Tools/nib2cib/NSMenuItem.j index 17e611004..292cbb815 100644 --- a/Tools/nib2cib/NSMenuItem.j +++ b/Tools/nib2cib/NSMenuItem.j @@ -64,7 +64,7 @@ // _mnemonicLocation = [aCoder decodeObjectForKey:"NSMnemonicLoc"]; // _isAlternate = [aCoder decodeBoolForKey:"NSIsAlternate"]; -// _indentationLevel = [aCoder decodeBoolForKey:"NSIndent"]; + _indentationLevel = [aCoder decodeIntForKey:"NSIndent"]; // _toolTip;