diff --git a/AppKit/Cib/_CPCibCustomResource.j b/AppKit/Cib/_CPCibCustomResource.j index 995cbef67..3daf2f0bd 100644 --- a/AppKit/Cib/_CPCibCustomResource.j +++ b/AppKit/Cib/_CPCibCustomResource.j @@ -83,7 +83,14 @@ var _CPCibCustomResourceClassNameKey = @"_CPCibCustomResourceClassNameKey", if ([aCoder respondsToSelector:@selector(bundle)] && (![aCoder respondsToSelector:@selector(awakenCustomResources)] || [aCoder awakenCustomResources])) if (_className === @"CPImage") + { + if (_resourceName == "CPAddTemplate") + return [[CPImage alloc] initWithContentsOfFile:[[CPBundle bundleForClass:[CPButtonBar class]] pathForResource:@"plus_button.png"] size:CGSizeMake(11, 12)]; + else if (_resourceName == "CPRemoveTemplate") + return [[CPImage alloc] initWithContentsOfFile:[[CPBundle bundleForClass:[CPButtonBar class]] pathForResource:@"minus_button.png"] size:CGSizeMake(11, 4)]; + return [[CPImage alloc] initWithContentsOfFile:[[aCoder bundle] pathForResource:_resourceName] size:_properties.valueForKey(@"size")]; + } return self; } diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 1fb108cde..8f3f87b73 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -196,6 +196,7 @@ var NSButtonIsBorderedMask = 0x00800000, _keyEquivalentModifierMask = [cell keyEquivalentModifierMask]; _allowsMixedState = [cell allowsMixedState]; + [self setImage:[cell normalImage]]; [self setImagePosition:[cell imagePosition]]; return self; @@ -223,6 +224,7 @@ var NSButtonIsBorderedMask = 0x00800000, int _bezelStyle @accessors(readonly, getter=bezelStyle); CPString _title @accessors(readonly, getter=title); + CPImage _normalImage @accessors(readonly, getter=normalImage); CPImage _alternateImage @accessors(readonly, getter=alternateImage); BOOL _allowsMixedState @accessors(readonly, getter=allowsMixedState); @@ -251,6 +253,7 @@ var NSButtonIsBorderedMask = 0x00800000, // ... and _objectValue is _state _objectValue = [self state]; + _normalImage = [aCoder decodeObjectForKey:@"NSNormalImage"]; _alternateImage = [aCoder decodeObjectForKey:@"NSAlternateImage"]; _allowsMixedState = (cellFlags2 & NSButtonAllowsMixedStateMask) ? YES : NO; diff --git a/Tools/nib2cib/NSCustomResource.j b/Tools/nib2cib/NSCustomResource.j index 5656f2fbd..6d716f36b 100644 --- a/Tools/nib2cib/NSCustomResource.j +++ b/Tools/nib2cib/NSCustomResource.j @@ -40,8 +40,17 @@ var FILE = require("file"); var size = CGSizeMakeZero(); - if (![[aCoder resourcesPath] length]) + if (_resourceName == "NSSwitch") + return nil; + else if (_resourceName == "NSAddTemplate" || _resourceName == "NSRemoveTemplate") + { + // Defer resolving this path until runtime. + _resourceName = _resourceName.replace("NS", "CP"); + } + else if (![[aCoder resourcesPath] length]) + { CPLog.warn("Resources found in nib, but no resources path specified with -R option."); + } else { var resourcePath = [aCoder resourcePathForName:_resourceName];