From fde18bba2ea76fb6a0ed781b5d99a8e910657e1b Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Tue, 17 May 2011 19:30:42 +0200 Subject: [PATCH] Correct button positionning. This patch makes nib2cib dealing with NSButtons much more better by setting particular offsets according the the kind of button. --- Tools/nib2cib/NSButton.j | 45 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 7a1c5ac4f..1cbda554e 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -62,7 +62,10 @@ var NSButtonIsBorderedMask = 0x00800000, if (self) { var cell = [aCoder decodeObjectForKey:@"NSCell"], - alternateImage = [cell alternateImage]; + alternateImage = [cell alternateImage], + positionOffsetSizeWidth = 0, + positionOffsetOriginX = 0, + positionOffsetOriginY = 0; if ([alternateImage isKindOfClass:[NSButtonImageSource class]]) { @@ -90,27 +93,59 @@ var NSButtonIsBorderedMask = 0x00800000, [self setBordered:[cell isBordered]]; _bezelStyle = [cell bezelStyle]; + // clean up: switch (_bezelStyle) { // implemented: case CPRoundedBezelStyle: + positionOffsetOriginY = 6; + positionOffsetOriginX = 4; + positionOffsetSizeWidth = -12; + break; case CPTexturedRoundedBezelStyle: + positionOffsetOriginY = 2; + positionOffsetOriginX = -2; + positionOffsetSizeWidth = 0; + break; case CPHUDBezelStyle: break; // approximations: case CPRoundRectBezelStyle: + positionOffsetOriginY = -3; + positionOffsetOriginX = -2; + positionOffsetSizeWidth = 0; _bezelStyle = CPRoundedBezelStyle; break; case CPSmallSquareBezelStyle: + positionOffsetOriginX = -2; + positionOffsetSizeWidth = 0; + _bezelStyle = CPTexturedRoundedBezelStyle; + break; case CPThickSquareBezelStyle: case CPThickerSquareBezelStyle: case CPRegularSquareBezelStyle: + positionOffsetOriginY = 3; + positionOffsetOriginX = 0; + 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 @@ -131,7 +166,13 @@ var NSButtonIsBorderedMask = 0x00800000, { CPLog.debug("NSButton [%s]: adjusting height from %d to %d", _title == null ? "" : '"' + _title + '"', _frame.size.height, CPButtonDefaultHeight); _frame.size.height = CPButtonDefaultHeight; - _frame.origin.y += 4.0; + + // Reposition the buttons according to its particular offsets + _frame.origin.x += positionOffsetOriginX; + _frame.origin.y += positionOffsetOriginY; + _frame.size.width += positionOffsetSizeWidth; + _bounds.size.width += positionOffsetSizeWidth; + _bounds.size.height = CPButtonDefaultHeight; }