From 3ba5be1ec650d0f0c824c471dca5f0a77bf78509 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 29 Jun 2012 11:11:07 -0700 Subject: [PATCH] nib2cib image fixes - nib2cib will now log the path and size of custom image resources in super verbose mode. - Alternate images for buttons were not being set by nib2cib, that has been fixed. - Fixed the name of the imagesize binary in the Xcode project. --- .../imagesize.xcodeproj/project.pbxproj | 4 ++-- Tools/nib2cib/NSButton.j | 17 +++++++++++++++-- Tools/nib2cib/NSCustomResource.j | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj index a97ddf15f..8b39c972c 100644 --- a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj +++ b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj @@ -151,7 +151,7 @@ AppKit, ); PREBINDING = NO; - PRODUCT_NAME = image_size; + PRODUCT_NAME = imagesize; SDKROOT = macosx10.5; SYMROOT = "$(CAPP_BUILD)/Debug/CommonJS/cappuccino/bin"; }; @@ -175,7 +175,7 @@ OBJROOT = "$(CAPP_BUILD)"; ONLY_ACTIVE_ARCH = NO; PREBINDING = NO; - PRODUCT_NAME = image_size; + PRODUCT_NAME = imagesize; SDKROOT = macosx10.5; SYMROOT = "$(CAPP_BUILD)/Release/CommonJS/cappuccino/bin"; }; diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index da8fc3518..afdc6cfa5 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -112,6 +112,7 @@ var NSButtonIsBorderedMask = 0x00800000, } _themeClass = [[self class] defaultThemeClass]; + alternateImage = nil; } NIB_CONNECTION_EQUIVALENCY_TABLE[[cell UID]] = self; @@ -122,8 +123,7 @@ var NSButtonIsBorderedMask = 0x00800000, [self setBordered:[cell isBordered]]; _bezelStyle = [cell bezelStyle]; - - // clean up: + // Map Cocoa bezel styles to Cappuccino bezel styles and adjust frame switch (_bezelStyle) { // implemented: @@ -132,13 +132,16 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetOriginX = 4; positionOffsetSizeWidth = -12; break; + case CPTexturedRoundedBezelStyle: positionOffsetOriginY = 2; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; break; + case CPHUDBezelStyle: break; + // approximations: case CPRoundRectBezelStyle: positionOffsetOriginY = -3; @@ -146,11 +149,13 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetSizeWidth = 0; _bezelStyle = CPRoundedBezelStyle; break; + case CPSmallSquareBezelStyle: positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPThickSquareBezelStyle: case CPThickerSquareBezelStyle: case CPRegularSquareBezelStyle: @@ -159,24 +164,28 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetSizeWidth = -4; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPTexturedSquareBezelStyle: positionOffsetOriginY = 4; positionOffsetOriginX = -1; positionOffsetSizeWidth = -2; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPShadowlessSquareBezelStyle: positionOffsetOriginY = 5; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPRecessedBezelStyle: positionOffsetOriginY = -3; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPHUDBezelStyle; break; + // unsupported case CPRoundedDisclosureBezelStyle: case CPHelpButtonBezelStyle: @@ -185,6 +194,7 @@ var NSButtonIsBorderedMask = 0x00800000, CPLog.warn("NSButton [%s]: unsupported bezel style: %d", _title == null ? "" : '"' + _title + '"', _bezelStyle); _bezelStyle = CPHUDBezelStyle; break; + // error: default: CPLog.warn("NSButton [%s]: unknown bezel style: %d", _title == null ? "" : '"' + _title + '"', _bezelStyle); @@ -211,6 +221,7 @@ var NSButtonIsBorderedMask = 0x00800000, _allowsMixedState = [cell allowsMixedState]; [self setImage:[cell normalImage]]; + [self setAlternateImage:alternateImage]; [self setImagePosition:[cell imagePosition]]; [self setEnabled:[cell isEnabled]]; @@ -298,6 +309,7 @@ var NSButtonIsBorderedMask = 0x00800000, _imagePosition = CPNoImage; _highlightsBy = CPNoCellMask; + if (buttonFlags & NSHighlightsByPushInCellMask) _highlightsBy |= CPPushInCellMask; if (buttonFlags & NSHighlightsByContentsCellMask) @@ -308,6 +320,7 @@ var NSButtonIsBorderedMask = 0x00800000, _highlightsBy |= CPChangeBackgroundCellMask; _showsStateBy = CPNoCellMask; + if (buttonFlags & NSShowsStateByContentsCellMask) _showsStateBy |= CPContentsCellMask; if (buttonFlags & NSShowsStateByChangeGrayCellMask) diff --git a/Tools/nib2cib/NSCustomResource.j b/Tools/nib2cib/NSCustomResource.j index 2c6c1dff2..998a3a121 100644 --- a/Tools/nib2cib/NSCustomResource.j +++ b/Tools/nib2cib/NSCustomResource.j @@ -59,11 +59,13 @@ var FILE = require("file"), if (!resourcePath) CPLog.warn("Resource \"" + _resourceName + "\" not found in the resources path: " + [aCoder resourcesPath]); else - size = imageSize(FILE.canonical(resourcePath)); + size = imageSize(FILE.canonical(resourcePath)) || CGSizeMakeZero(); // Account for the fact that an extension may have been inferred. if (resourcePath && FILE.extension(resourcePath) !== FILE.extension(_resourceName)) _resourceName += FILE.extension(resourcePath); + + CPLog.debug("Image path: %s\nImage size: %dx%d", FILE.canonical(resourcePath), size.width, size.height); } _properties = [CPDictionary dictionaryWithObject:size forKey:@"size"];