diff --git a/AppKit/CPMenuItem.j b/AppKit/CPMenuItem.j index 995d121bc..75d52da19 100644 --- a/AppKit/CPMenuItem.j +++ b/AppKit/CPMenuItem.j @@ -92,6 +92,7 @@ _isEnabled = YES; + _tag = 0; _state = CPOffState; _keyEquivalent = aKeyEquivalent || @""; @@ -749,6 +750,8 @@ var CPMenuItemTitleKey = @"CPMenuItemTitleKey", CPMenuItemIsEnabledKey = @"CPMenuItemIsEnabledKey", CPMenuItemIsHiddenKey = @"CPMenuItemIsHiddenKey", + CPMenuItemTagKey = @"CPMenuItemTagKey", + CPMenuItemImageKey = @"CPMenuItemImageKey", CPMenuItemAlternateImageKey = @"CPMenuItemAlternateImageKey", @@ -779,7 +782,8 @@ var CPMenuItemTitleKey = @"CPMenuItemTitleKey", _isEnabled = [aCoder decodeObjectForKey:CPMenuItemIsEnabledKey]; _isHidden = [aCoder decodeObjectForKey:CPMenuItemIsHiddenKey]; -// int _tag; + _tag = [aCoder containsValueForKey:CPMenuItemTagKey] ? [aCoder decodeObjectForKey:CPMenuItemTagKey] : 0; + // int _state; _image = [aCoder decodeObjectForKey:CPMenuItemImageKey]; @@ -823,6 +827,9 @@ var CPMenuItemTitleKey = @"CPMenuItemTitleKey", [aCoder encodeObject:_isEnabled forKey:CPMenuItemIsEnabledKey]; [aCoder encodeObject:_isHidden forKey:CPMenuItemIsHiddenKey]; + if (_tag !== 0) + [aCoder encodeObject:_tag forKey:CPMenuItemTagKey]; + [aCoder encodeObject:_image forKey:CPMenuItemImageKey]; [aCoder encodeObject:_alternateImage forKey:CPMenuItemAlternateImageKey]; diff --git a/Foundation/CPString.j b/Foundation/CPString.j index 3de11401b..13bc0a889 100644 --- a/Foundation/CPString.j +++ b/Foundation/CPString.j @@ -23,6 +23,7 @@ @import "CPObject.j" @import "CPException.j" @import "CPSortDescriptor.j" +@import "CPValue.j" /*! @@ -640,4 +641,24 @@ var CPStringHashes = new objj_dictionary(); @end +@implementation CPString (JSON) + +/*! + Returns a string representing the supplied JavaScript object encoded as JSON. +*/ ++ (CPString)JSONFromObject:(JSObject)anObject +{ + return CPJSObjectCreateJSON(anObject); +} + +/*! + Returns a JavaScript object decoded from the string's JSON representation. +*/ +- (JSObject)objectFromJSON +{ + return CPJSObjectCreateWithJSON(self); +} + +@end + String.prototype.isa = CPString;