mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-27 04:37:41 +00:00
Merge branch 'Aristo2' of github.mv.usa.alcatel.com:amercada/Cappuccino into Aristo2
This commit is contained in:
@@ -10,3 +10,4 @@ WebSite
|
||||
xcuserdata/
|
||||
!*.xcodeproj/project.pbxproj
|
||||
*.xCodeSupport/
|
||||
*.XcodeSupport/
|
||||
|
||||
@@ -1300,7 +1300,7 @@ var _CPAppBootstrapperActions = nil;
|
||||
var defaultThemeName = [CPApplication defaultThemeName],
|
||||
themeURL = nil;
|
||||
|
||||
if (defaultThemeName === @"Aristo2")
|
||||
if (defaultThemeName === @"Aristo" || defaultThemeName === @"Aristo2")
|
||||
themeURL = [[CPBundle bundleForClass:[CPApplication class]] pathForResource:defaultThemeName + @".blend"];
|
||||
else
|
||||
themeURL = [[CPBundle mainBundle] pathForResource:defaultThemeName + @".blend"];
|
||||
|
||||
+65
-64
@@ -55,14 +55,6 @@ CPBelowBottom = 6;
|
||||
{
|
||||
CPBoxType _boxType;
|
||||
CPBorderType _borderType;
|
||||
|
||||
CPColor _borderColor;
|
||||
CPColor _fillColor;
|
||||
|
||||
float _cornerRadius;
|
||||
float _borderWidth;
|
||||
|
||||
CPSize _contentMargin;
|
||||
CPView _contentView;
|
||||
|
||||
CPString _title @accessors(getter=title);
|
||||
@@ -85,6 +77,24 @@ CPBelowBottom = 6;
|
||||
return box;
|
||||
}
|
||||
|
||||
+ (CPString)defaultThemeClass
|
||||
{
|
||||
return @"box";
|
||||
}
|
||||
|
||||
+ (id)themeAttributes
|
||||
{
|
||||
return [CPDictionary dictionaryWithObjects:[[CPNull null], [CPNull null], 1.0, 3.0, CPSizeMakeZero(), 6.0, [CPNull null], CPSizeMakeZero()]
|
||||
forKeys:[ @"background-color",
|
||||
@"border-color",
|
||||
@"border-width",
|
||||
@"corner-radius",
|
||||
@"inner-shadow-offset",
|
||||
@"inner-shadow-size",
|
||||
@"inner-shadow-color",
|
||||
@"content-margin"]];
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CPRect)frameRect
|
||||
{
|
||||
self = [super initWithFrame:frameRect];
|
||||
@@ -92,11 +102,6 @@ CPBelowBottom = 6;
|
||||
if (self)
|
||||
{
|
||||
_borderType = CPBezelBorder;
|
||||
_fillColor = [CPColor clearColor];
|
||||
_borderColor = [CPColor blackColor];
|
||||
|
||||
_borderWidth = 1.0;
|
||||
_contentMargin = CGSizeMake(0.0, 0.0);
|
||||
|
||||
_titlePosition = CPNoTitle;
|
||||
_titleView = [CPTextField labelWithTitle:@""];
|
||||
@@ -208,57 +213,57 @@ CPBelowBottom = 6;
|
||||
|
||||
- (CPColor)borderColor
|
||||
{
|
||||
return _borderColor;
|
||||
return [self valueForThemeAttribute:@"border-color"];
|
||||
}
|
||||
|
||||
- (void)setBorderColor:(CPColor)color
|
||||
{
|
||||
if ([color isEqual:_borderColor])
|
||||
if ([color isEqual:[self borderColor]])
|
||||
return;
|
||||
|
||||
_borderColor = color;
|
||||
[self setValue:color forThemeAttribute:@"border-color"];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (float)borderWidth
|
||||
{
|
||||
return _borderWidth;
|
||||
return [self valueForThemeAttribute:@"border-width"];
|
||||
}
|
||||
|
||||
- (void)setBorderWidth:(float)width
|
||||
{
|
||||
if (width === _borderWidth)
|
||||
if (width === [self borderWidth])
|
||||
return;
|
||||
|
||||
_borderWidth = width;
|
||||
[self setValue:width forThemeAttribute:@"border-width"];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (float)cornerRadius
|
||||
{
|
||||
return _cornerRadius;
|
||||
return [self valueForThemeAttribute:@"corner-radius"];
|
||||
}
|
||||
|
||||
- (void)setCornerRadius:(float)radius
|
||||
{
|
||||
if (radius === _cornerRadius)
|
||||
if (radius === [self cornerRadius])
|
||||
return;
|
||||
|
||||
_cornerRadius = radius;
|
||||
[self setValue:radius forThemeAttribute:@"corner-radius"];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (CPColor)fillColor
|
||||
{
|
||||
return _fillColor;
|
||||
return [self valueForThemeAttribute:@"background-color"];
|
||||
}
|
||||
|
||||
- (void)setFillColor:(CPColor)color
|
||||
{
|
||||
if ([color isEqual:_fillColor])
|
||||
if ([color isEqual:[self fillColor]])
|
||||
return;
|
||||
|
||||
_fillColor = color;
|
||||
[self setValue:color forThemeAttribute:@"background-color"];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
@@ -272,7 +277,10 @@ CPBelowBottom = 6;
|
||||
if (aView === _contentView)
|
||||
return;
|
||||
|
||||
[aView setFrame:CGRectInset([self bounds], _contentMargin.width + _borderWidth, _contentMargin.height + _borderWidth)];
|
||||
var borderWidth = [self borderWidth],
|
||||
contentMargin = [self valueForThemeAttribute:@"content-margin"];
|
||||
|
||||
[aView setFrame:CGRectInset([self bounds], contentMargin.width + borderWidth, contentMargin.height + borderWidth)];
|
||||
[aView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
[self replaceSubview:_contentView with:aView];
|
||||
|
||||
@@ -281,7 +289,7 @@ CPBelowBottom = 6;
|
||||
|
||||
- (CPSize)contentViewMargins
|
||||
{
|
||||
return _contentMargin;
|
||||
return [self valueForThemeAttribute:@"content-margin"];
|
||||
}
|
||||
|
||||
- (void)setContentViewMargins:(CPSize)size
|
||||
@@ -289,15 +297,17 @@ CPBelowBottom = 6;
|
||||
if (size.width < 0 || size.height < 0)
|
||||
[CPException raise:CPGenericException reason:@"Margins must be positive"];
|
||||
|
||||
_contentMargin = CGSizeMakeCopy(size);
|
||||
[self setValue:CGSizeMakeCopy(size) forThemeAttribute:@"content-margin"];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)setFrameFromContentFrame:(CPRect)aRect
|
||||
{
|
||||
var offset = [self _titleHeightOffset];
|
||||
var offset = [self _titleHeightOffset],
|
||||
borderWidth = [self borderWidth],
|
||||
contentMargin = [self valueForThemeAttribute:@"content-margin"];
|
||||
|
||||
[self setFrame:CGRectInset(aRect, -(_contentMargin.width + _borderWidth), -(_contentMargin.height + offset[0] + _borderWidth))];
|
||||
[self setFrame:CGRectInset(aRect, -(contentMargin.width + borderWidth), -(contentMargin.height + offset[0] + borderWidth))];
|
||||
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
@@ -380,17 +390,18 @@ CPBelowBottom = 6;
|
||||
- (void)sizeToFit
|
||||
{
|
||||
var contentFrame = [_contentView frame],
|
||||
offset = [self _titleHeightOffset];
|
||||
offset = [self _titleHeightOffset],
|
||||
contentMargin = [self valueForThemeAttribute:@"content-margin"];
|
||||
|
||||
if (!contentFrame)
|
||||
return;
|
||||
|
||||
[_contentView setAutoresizingMask:CPViewNotSizable];
|
||||
[self setFrameSize:CGSizeMake(contentFrame.size.width + _contentMargin.width * 2,
|
||||
contentFrame.size.height + _contentMargin.height * 2 + offset[0])];
|
||||
[self setFrameSize:CGSizeMake(contentFrame.size.width + contentMargin.width * 2,
|
||||
contentFrame.size.height + contentMargin.height * 2 + offset[0])];
|
||||
[_contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
|
||||
[_contentView setFrameOrigin:CGPointMake(_contentMargin.width, _contentMargin.height + offset[1])];
|
||||
[_contentView setFrameOrigin:CGPointMake(contentMargin.width, contentMargin.height + offset[1])];
|
||||
}
|
||||
|
||||
- (float)_titleHeightOffset
|
||||
@@ -478,13 +489,13 @@ CPBelowBottom = 6;
|
||||
CGContextStrokePath(context);
|
||||
}
|
||||
|
||||
- (void)_drawBezelBorderInRect:(CGRect)aRect
|
||||
- (void)_drawLineBorderInRect:(CGRect)aRect
|
||||
{
|
||||
var context = [[CPGraphicsContext currentContext] graphicsPort],
|
||||
sides = [CPMinYEdge, CPMaxXEdge, CPMaxYEdge, CPMinXEdge],
|
||||
sideGray = 190.0 / 255.0,
|
||||
grays = [142.0 / 255.0, sideGray, sideGray, sideGray],
|
||||
borderWidth = _borderWidth;
|
||||
borderWidth = [self borderWidth];
|
||||
|
||||
while (borderWidth--)
|
||||
aRect = CPDrawTiledRects(aRect, aRect, sides, grays);
|
||||
@@ -493,29 +504,36 @@ CPBelowBottom = 6;
|
||||
CGContextFillRect(context, aRect);
|
||||
}
|
||||
|
||||
- (void)_drawLineBorderInRect:(CGRect)aRect
|
||||
- (void)_drawBezelBorderInRect:(CGRect)aRect
|
||||
{
|
||||
var context = [[CPGraphicsContext currentContext] graphicsPort];
|
||||
var context = [[CPGraphicsContext currentContext] graphicsPort],
|
||||
cornerRadius = [self cornerRadius],
|
||||
borderWidth = [self borderWidth],
|
||||
shadowOffset = [self valueForThemeAttribute:@"inner-shadow-offset"],
|
||||
shadowSize = [self valueForThemeAttribute:@"inner-shadow-size"],
|
||||
shadowColor = [self valueForThemeAttribute:@"inner-shadow-color"];
|
||||
|
||||
aRect = CGRectInset(aRect, _borderWidth / 2.0, _borderWidth / 2.0);
|
||||
aRect = CGRectInset(aRect, borderWidth / 2.0, borderWidth / 2.0);
|
||||
|
||||
// clip the canvas to the actual content view in order to only display inner shadow
|
||||
CGContextBeginPath(context);
|
||||
CGContextAddPath(context, CGPathWithRoundedRectangleInRect(aRect, cornerRadius, cornerRadius, YES, YES, YES, YES));
|
||||
CGContextClip(context);
|
||||
|
||||
CGContextSetFillColor(context, [self fillColor]);
|
||||
CGContextSetStrokeColor(context, [self borderColor]);
|
||||
|
||||
CGContextSetLineWidth(context, _borderWidth);
|
||||
CGContextFillRoundedRectangleInRect(context, aRect, _cornerRadius, YES, YES, YES, YES);
|
||||
CGContextStrokeRoundedRectangleInRect(context, aRect, _cornerRadius, YES, YES, YES, YES);
|
||||
CGContextSetShadowWithColor(context, shadowOffset, shadowSize, shadowColor);
|
||||
CGContextSetLineWidth(context, borderWidth);
|
||||
CGContextFillRoundedRectangleInRect(context, aRect, cornerRadius, YES, YES, YES, YES);
|
||||
CGContextStrokeRoundedRectangleInRect(context, aRect, cornerRadius, YES, YES, YES, YES);
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPBoxTypeKey = @"CPBoxTypeKey",
|
||||
CPBoxBorderTypeKey = @"CPBoxBorderTypeKey",
|
||||
CPBoxBorderColorKey = @"CPBoxBorderColorKey",
|
||||
CPBoxFillColorKey = @"CPBoxFillColorKey",
|
||||
CPBoxCornerRadiusKey = @"CPBoxCornerRadiusKey",
|
||||
CPBoxBorderWidthKey = @"CPBoxBorderWidthKey",
|
||||
CPBoxContentMarginKey = @"CPBoxContentMarginKey",
|
||||
CPBoxTitle = @"CPBoxTitle",
|
||||
CPBoxTitlePosition = @"CPBoxTitlePosition",
|
||||
CPBoxTitleView = @"CPBoxTitleView";
|
||||
@@ -531,14 +549,6 @@ var CPBoxTypeKey = @"CPBoxTypeKey",
|
||||
_boxType = [aCoder decodeIntForKey:CPBoxTypeKey];
|
||||
_borderType = [aCoder decodeIntForKey:CPBoxBorderTypeKey];
|
||||
|
||||
_borderColor = [aCoder decodeObjectForKey:CPBoxBorderColorKey];
|
||||
_fillColor = [aCoder decodeObjectForKey:CPBoxFillColorKey];
|
||||
|
||||
_cornerRadius = [aCoder decodeFloatForKey:CPBoxCornerRadiusKey];
|
||||
_borderWidth = [aCoder decodeFloatForKey:CPBoxBorderWidthKey];
|
||||
|
||||
_contentMargin = [aCoder decodeSizeForKey:CPBoxContentMarginKey];
|
||||
|
||||
_title = [aCoder decodeObjectForKey:CPBoxTitle];
|
||||
_titlePosition = [aCoder decodeIntForKey:CPBoxTitlePosition];
|
||||
_titleView = [aCoder decodeObjectForKey:CPBoxTitleView] || [CPTextField labelWithTitle:_title];
|
||||
@@ -560,18 +570,9 @@ var CPBoxTypeKey = @"CPBoxTypeKey",
|
||||
|
||||
[aCoder encodeInt:_boxType forKey:CPBoxTypeKey];
|
||||
[aCoder encodeInt:_borderType forKey:CPBoxBorderTypeKey];
|
||||
|
||||
[aCoder encodeObject:_borderColor forKey:CPBoxBorderColorKey];
|
||||
[aCoder encodeObject:_fillColor forKey:CPBoxFillColorKey];
|
||||
|
||||
[aCoder encodeFloat:_cornerRadius forKey:CPBoxCornerRadiusKey];
|
||||
[aCoder encodeFloat:_borderWidth forKey:CPBoxBorderWidthKey];
|
||||
|
||||
[aCoder encodeObject:_title forKey:CPBoxTitle];
|
||||
[aCoder encodeInt:_titlePosition forKey:CPBoxTitlePosition];
|
||||
[aCoder encodeObject:_titleView forKey:CPBoxTitleView];
|
||||
|
||||
[aCoder encodeSize:_contentMargin forKey:CPBoxContentMarginKey];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -310,11 +310,18 @@ function CPBrowserStyleProperty(aProperty)
|
||||
break;
|
||||
default:
|
||||
var prefixes = ["Webkit", "Moz", "O", "ms"],
|
||||
capProperty = [aProperty capitalizedString];
|
||||
strippedProperty = aProperty.split('-').join(' '),
|
||||
capProperty = [strippedProperty capitalizedString].split(' ').join('');
|
||||
|
||||
for (var i = 0; i < prefixes.length; i++)
|
||||
{
|
||||
if (prefixes[i] + capProperty in testElement.style)
|
||||
// First check if the property is already valid without being formatted, otherwise try the capitalized property
|
||||
if (prefixes[i] + aProperty in testElement.style)
|
||||
{
|
||||
r = prefixes[i] + aProperty;
|
||||
break;
|
||||
}
|
||||
else if (prefixes[i] + capProperty in testElement.style)
|
||||
{
|
||||
r = prefixes[i] + capProperty;
|
||||
break;
|
||||
@@ -352,9 +359,21 @@ function CPBrowserCSSProperty(aProperty)
|
||||
{
|
||||
if (browserProperty.substring(0, prefix.length) == prefix)
|
||||
{
|
||||
return prefixes[prefix] + browserProperty.substring(prefix.length).toLowerCase();
|
||||
var browserPropertyWithoutPrefix = browserProperty.substring(prefix.length),
|
||||
parts = browserPropertyWithoutPrefix.match(/[A-Z][a-z]+/g);
|
||||
|
||||
// If there were any capitalized words in the browserProperty, insert a "-" between each one
|
||||
if (parts && parts.length > 0)
|
||||
browserPropertyWithoutPrefix = parts.join("-");
|
||||
|
||||
return prefixes[prefix] + browserPropertyWithoutPrefix.toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
var parts = browserProperty.match(/[A-Z][a-z]+/g);
|
||||
|
||||
if (parts && parts.length > 0)
|
||||
browserProperty = parts.join("-");
|
||||
|
||||
return browserProperty.toLowerCase();
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@import "_CPMenuWindow.j"
|
||||
|
||||
|
||||
var MENUBAR_HEIGHT = 28.0,
|
||||
var MENUBAR_HEIGHT = 30.0,
|
||||
MENUBAR_MARGIN = 10.0,
|
||||
MENUBAR_LEFT_MARGIN = 10.0,
|
||||
MENUBAR_RIGHT_MARGIN = 10.0;
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
* Copyright (c) 2011 Pear, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
@import @"CPPopUpButton.j"
|
||||
|
||||
var GRADIENT_START_COLOR = "#fcfcfc",
|
||||
GRADIENT_END_COLOR = "#dfdfdf",
|
||||
BORDER_COLOR = "#BDBDBD";
|
||||
|
||||
@@ -115,13 +115,15 @@ CPSegmentSwitchTrackingMomentary = 2;
|
||||
if (_selectedSegment >= _segments.length)
|
||||
_selectedSegment = -1;
|
||||
|
||||
// Make space for/remove space used by dividers.
|
||||
var thickness = [self currentValueForThemeAttribute:@"divider-thickness"],
|
||||
delta = thickness * (dividersAfter - dividersBefore),
|
||||
frame = [self frame];
|
||||
frame = [self frame],
|
||||
widthOfAllSegments = 0,
|
||||
dividerExtraSpace = ([_segments count] - 1) * thickness;
|
||||
|
||||
if (delta)
|
||||
[self setFrameSize:CGSizeMake(frame.size.width + delta, frame.size.height)];
|
||||
for (var i = 0; i < [_segments count]; i++)
|
||||
widthOfAllSegments += [_segments[i] width];
|
||||
|
||||
[self setFrameSize:CGSizeMake(widthOfAllSegments + dividerExtraSpace, frame.size.height)];
|
||||
|
||||
[self tileWithChangedSegment:0];
|
||||
}
|
||||
|
||||
@@ -1865,9 +1865,16 @@ CPTexturedBackgroundWindowMask
|
||||
*/
|
||||
- (BOOL)canBecomeKeyWindow
|
||||
{
|
||||
// In Cocoa only resizable or titled windows return YES here by default. But the main browser window in Cappuccino
|
||||
// doesn't have these masks even that it's both titled and resizable, so we return YES when isFullPlatformWindow too.
|
||||
return (_styleMask & CPTitledWindowMask) || (_styleMask & CPResizableWindowMask) || [self isFullPlatformWindow];
|
||||
/*
|
||||
In Cocoa only titled windows return YES here by default. But the main browser
|
||||
window in Cappuccino doesn't have a title bar even that it's both titled and
|
||||
resizable, so we return YES when isFullPlatformWindow too.
|
||||
|
||||
Note that Cocoa will return NO for a non-titled, resizable window. The Cocoa documention
|
||||
says it will return YES if there is a "resize bar", but in practice
|
||||
that is not the same as the resizable mask.
|
||||
*/
|
||||
return (_styleMask & CPTitledWindowMask) || [self isFullPlatformWindow];
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -2231,11 +2238,12 @@ CPTexturedBackgroundWindowMask
|
||||
*/
|
||||
- (BOOL)canBecomeMainWindow
|
||||
{
|
||||
// FIXME: Also check if we can resize and titlebar.
|
||||
if ([self isVisible])
|
||||
return YES;
|
||||
|
||||
return NO;
|
||||
// Note that the Cocoa documentation says that this method returns YES if
|
||||
// the window is visible and has a title bar or a "resize mechanism". It turns
|
||||
// out a "resize mechanism" is not the same as having the resize mask set.
|
||||
// In practice a window must have a title bar to become main, but we make
|
||||
// an exception for a full platform window.
|
||||
return ([self isVisible] && ((_styleMask & CPTitledWindowMask) || _isFullPlatformWindow));
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
@@ -52,6 +52,9 @@ task ("Theme", [$BUILD_CJS_CAPPUCCINO_APPKIT], function()
|
||||
{
|
||||
subjake(["Themes"], "build");
|
||||
|
||||
cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo.blend'), FILE.join($BUILD_PATH, 'Resources', 'Aristo.blend'));
|
||||
cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo.blend'), FILE.join($BUILD_CJS_CAPPUCCINO_APPKIT, "Resources", "Aristo.blend"));
|
||||
|
||||
cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo2.blend'), FILE.join($BUILD_PATH, 'Resources', 'Aristo2.blend'));
|
||||
cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo2.blend'), FILE.join($BUILD_CJS_CAPPUCCINO_APPKIT, "Resources", "Aristo2.blend"));
|
||||
});
|
||||
|
||||
BIN
Binary file not shown.
@@ -1683,6 +1683,41 @@ var themedButtonValues = nil,
|
||||
return modalWindowView;
|
||||
}
|
||||
|
||||
+ (CPBox)themedBox
|
||||
{
|
||||
var box = [[CPBox alloc] initWithFrame:CGRectMake(0,0,100,100)];
|
||||
|
||||
var backgroundColor = PatternColor(
|
||||
[
|
||||
["cpbox-background-1.png", 6.0, 6.0],
|
||||
["cpbox-background-2.png", 1.0, 6.0],
|
||||
["cpbox-background-3.png", 6.0, 6.0],
|
||||
["cpbox-background-4.png", 6.0, 1.0],
|
||||
["cpbox-background-5.png", 1.0, 1.0],
|
||||
["cpbox-background-6.png", 6.0, 1.0],
|
||||
["cpbox-background-7.png", 6.0, 6.0],
|
||||
["cpbox-background-8.png", 1.0, 6.0],
|
||||
["cpbox-background-9.png", 6.0, 6.0]
|
||||
]),
|
||||
|
||||
themeValues =
|
||||
[
|
||||
[@"background-color", [CPColor colorWithHexString:@"E4E4E4"]],
|
||||
[@"border-width", 1.0],
|
||||
[@"border-color", [CPColor colorWithHexString:@"B7B7B7"]],
|
||||
[@"corner-radius", 3.0],
|
||||
[@"inner-shadow-offset", CPSizeMakeZero()],
|
||||
[@"inner-shadow-color", [CPColor blackColor]],
|
||||
[@"inner-shadow-size", 6.0],
|
||||
[@"content-margin", CPSizeMake(10.0, 10.0)]
|
||||
];
|
||||
|
||||
[self registerThemeValues:themeValues forView:box];
|
||||
|
||||
return box;
|
||||
}
|
||||
|
||||
|
||||
+ (_CPHUDWindowView)themedHUDWindowView
|
||||
{
|
||||
var HUDWindowView = [[_CPHUDWindowView alloc] initWithFrame:CGRectMake(0,0,250,150) styleMask:CPHUDBackgroundWindowMask | CPClosableWindowMask];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
require("../../common.jake");
|
||||
|
||||
subtasks(["BlendKit", "CommonJS", "Aristo2"], ["build", "clean", "clobber"]);
|
||||
subtasks(["BlendKit", "CommonJS", "Aristo", "Aristo2"], ["build", "clean", "clobber"]);
|
||||
|
||||
@@ -389,6 +389,14 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
return YES;
|
||||
}
|
||||
|
||||
/*!
|
||||
Normally untitled windows cannot become main, but popovers can.
|
||||
*/
|
||||
- (BOOL)canBecomeMainWindow
|
||||
{
|
||||
return [self isVisible];
|
||||
}
|
||||
|
||||
/*!
|
||||
Called when the window is losing focus.
|
||||
*/
|
||||
|
||||
@@ -116,7 +116,7 @@ function main(args)
|
||||
var defaultThemeName = [CPApplication defaultThemeName],
|
||||
bundle = nil;
|
||||
|
||||
if (defaultThemeName === @"Aristo2")
|
||||
if (defaultThemeName === @"Aristo" || defaultThemeName === @"Aristo2")
|
||||
bundle = [CPBundle bundleForClass:[CPApplication class]];
|
||||
else
|
||||
bundle = [CPBundle mainBundle];
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ function press(rootPath, outputPath, options) {
|
||||
var themeName = outputInfoPlist.valueForKey("CPDefaultTheme") || "Aristo2",
|
||||
themePath = nil;
|
||||
|
||||
if (themeName === "Aristo2")
|
||||
if (themeName === "Aristo" || themeName === "Aristo2")
|
||||
themePath = FILE.join(outputPath, options.frameworks, "AppKit", "Resources", themeName+".blend");
|
||||
else
|
||||
themePath = FILE.join(outputPath, "Resources", themeName + ".blend");
|
||||
|
||||
@@ -375,7 +375,14 @@ var CPRunLoopLastNativeRunLoop = 0;
|
||||
|
||||
//initiate a new window.setTimeout if there are any timers
|
||||
if (_nextTimerFireDatesForModes[aMode] !== nil)
|
||||
_nativeTimersForModes[aMode] = window.setNativeTimeout(function() { _effectiveDate = nextFireDate; _nativeTimersForModes[aMode] = nil; ++CPRunLoopLastNativeRunLoop; [self limitDateForMode:aMode]; _effectiveDate = nil; }, MAX(0, [nextFireDate timeIntervalSinceNow] * 1000));
|
||||
_nativeTimersForModes[aMode] = window.setNativeTimeout(function()
|
||||
{
|
||||
_effectiveDate = nextFireDate;
|
||||
_nativeTimersForModes[aMode] = nil;
|
||||
++CPRunLoopLastNativeRunLoop;
|
||||
[self limitDateForMode:aMode];
|
||||
_effectiveDate = nil;
|
||||
}, MAX(0, [nextFireDate timeIntervalSinceNow] * 1000));
|
||||
}
|
||||
|
||||
// Run loop performers
|
||||
|
||||
+16
-2
@@ -245,13 +245,27 @@ var _CPTimerBridgeTimer = function(codeOrFunction, aDelay, shouldRepeat, functio
|
||||
theFunction = nil;
|
||||
|
||||
if (typeof codeOrFunction === "string")
|
||||
theFunction = function() { new Function(codeOrFunction)(); if (!shouldRepeat) CPTimersForTimeoutIDs[timeoutID] = nil; }
|
||||
{
|
||||
theFunction = function()
|
||||
{
|
||||
new Function(codeOrFunction)();
|
||||
|
||||
if (!shouldRepeat)
|
||||
CPTimersForTimeoutIDs[timeoutID] = nil;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!functionArgs)
|
||||
functionArgs = [];
|
||||
|
||||
theFunction = function() { codeOrFunction.apply(window, functionArgs); if (!shouldRepeat) CPTimersForTimeoutIDs[timeoutID] = nil; }
|
||||
theFunction = function()
|
||||
{
|
||||
codeOrFunction.apply(window, functionArgs);
|
||||
|
||||
if (!shouldRepeat)
|
||||
CPTimersForTimeoutIDs[timeoutID] = nil;
|
||||
}
|
||||
}
|
||||
|
||||
// A call such as setTimeout(f) is technically invalid but browsers seem to treat it as setTimeout(f, 0), so so will we.
|
||||
|
||||
+2
-2
@@ -254,8 +254,8 @@ var CPURLURLStringKey = @"CPURLURLStringKey",
|
||||
|
||||
- (void)encodeWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
[aCoder encodeObject:_baseURL forKey:CPURLBaseURLKey];
|
||||
[aCoder encodeObject:_string forKey:CPURLURLStringKey];
|
||||
[aCoder encodeObject:self._baseURL forKey:CPURLBaseURLKey];
|
||||
[aCoder encodeObject:self._string forKey:CPURLURLStringKey];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -91,10 +91,10 @@ task ("clean-sprites", function()
|
||||
|
||||
task ("clobber-theme", function()
|
||||
{
|
||||
var f = new FileList(FILE.join(SYSTEM.env.CAPP_BUILD, "**/Aristo2.blend")),
|
||||
var f = new FileList(FILE.join(SYSTEM.env.CAPP_BUILD, "**/Aristo.blend"), FILE.join(SYSTEM.env.CAPP_BUILD, "**/Aristo2.blend")),
|
||||
paths = f.items();
|
||||
|
||||
f = new FileList(FILE.join(SYSTEM.env.CAPP_BUILD, "Aristo2.build"));
|
||||
f = new FileList(FILE.join(SYSTEM.env.CAPP_BUILD, "Aristo.build"), FILE.join(SYSTEM.env.CAPP_BUILD, "Aristo2.build"));
|
||||
paths = paths.concat(f.items());
|
||||
|
||||
paths.forEach(function(path)
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
|
||||
- (IBAction)click:(id)sender
|
||||
{
|
||||
[box1 setFrameFromContentFrame:CPRectMake(30, 30, 100, 100)];
|
||||
[box1 setFrameFromContentFrame:CPRectMake(18, 81, 326, 133)];
|
||||
}
|
||||
|
||||
- (IBAction)click2:(id)sender
|
||||
{
|
||||
[box1 setFrameFromContentFrame:CPRectMake(30, 30, 300, 300)];
|
||||
[box1 setFrameFromContentFrame:CPRectMake(18, 81, 300, 250)];
|
||||
}
|
||||
|
||||
- (IBAction)change:(id)aSender
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPSegmentedControlTest
|
||||
*
|
||||
* Created by You on January 4, 2013.
|
||||
* Copyright 2013, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
@outlet CPSegmentedControl segmentedControl1;
|
||||
@outlet CPSegmentedControl segmentedControl2;
|
||||
|
||||
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
|
||||
}
|
||||
|
||||
- (void)awakeFromCib
|
||||
{
|
||||
[theWindow setFullPlatformWindow:YES];
|
||||
}
|
||||
|
||||
|
||||
- (IBAction)addSegment:(id)aSender
|
||||
{
|
||||
var n = [segmentedControl1 segmentCount];
|
||||
|
||||
[segmentedControl1 setSegmentCount:n + 1];
|
||||
[segmentedControl1 setLabel:@"" + n + 1 forSegment:n];
|
||||
|
||||
[segmentedControl2 setSegmentCount:n + 1];
|
||||
[segmentedControl2 setLabel:@"" + n + 1 forSegment:n];
|
||||
}
|
||||
|
||||
- (IBAction)addSegmentWithFixedSize:(id)aSender
|
||||
{
|
||||
var n = [segmentedControl1 segmentCount];
|
||||
|
||||
[segmentedControl1 setSegmentCount:n + 1];
|
||||
[segmentedControl1 setLabel:@"" + n + 1 forSegment:n];
|
||||
[segmentedControl1 setWidth:100 forSegment:n];
|
||||
|
||||
[segmentedControl2 setSegmentCount:n + 1];
|
||||
[segmentedControl2 setLabel:@"" + n + 1 forSegment:n];
|
||||
[segmentedControl2 setWidth:100 forSegment:n];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)removeSegment:(id)aSender
|
||||
{
|
||||
var n = [segmentedControl1 segmentCount];
|
||||
|
||||
[segmentedControl1 setSegmentCount:n - 1];
|
||||
[segmentedControl2 setSegmentCount:n - 1];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,500 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>archiveVersion</key>
|
||||
<string>1</string>
|
||||
<key>classes</key>
|
||||
<dict/>
|
||||
<key>objectVersion</key>
|
||||
<string>46</string>
|
||||
<key>objects</key>
|
||||
<dict>
|
||||
<key>031E4C438E885E73CAF8F095</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>516D43C09BCF54EA7B027D03</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>name</key>
|
||||
<string>Sources</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>078D4BE08F1637A95D02423E</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>sourcecode.c.h</string>
|
||||
<key>name</key>
|
||||
<string>xcc_general_include.h</string>
|
||||
<key>path</key>
|
||||
<string>.XcodeSupport/xcc_general_include.h</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SOURCE_ROOT</string>
|
||||
</dict>
|
||||
<key>32F240828F06C24BACC9C62B</key>
|
||||
<dict>
|
||||
<key>fileRef</key>
|
||||
<string>B7B84A02A45ECE89FFB2D63E</string>
|
||||
<key>isa</key>
|
||||
<string>PBXBuildFile</string>
|
||||
</dict>
|
||||
<key>516D43C09BCF54EA7B027D03</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>?</string>
|
||||
<key>name</key>
|
||||
<string>AppController.j</string>
|
||||
<key>path</key>
|
||||
<string>AppController.j</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SOURCE_ROOT</string>
|
||||
</dict>
|
||||
<key>574D4419AEFA1A577855B344</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>sourcecode.c.h</string>
|
||||
<key>name</key>
|
||||
<string>_Users_Tonio_Desktop_CPSegmentedControlTest_AppController.h</string>
|
||||
<key>path</key>
|
||||
<string>.XcodeSupport/_Users_Tonio_Desktop_CPSegmentedControlTest_AppController.h</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SOURCE_ROOT</string>
|
||||
</dict>
|
||||
<key>9EEC4488135749D200615446</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>9EEC44CB13574A0B00615446</string>
|
||||
<string>9EEC4496135749D200615446</string>
|
||||
<string>FC904786B1947C20F37E2DA1</string>
|
||||
<string>031E4C438E885E73CAF8F095</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>9EEC448A135749D200615446</key>
|
||||
<dict>
|
||||
<key>attributes</key>
|
||||
<dict>
|
||||
<key>LastUpgradeCheck</key>
|
||||
<string>0440</string>
|
||||
<key>ORGANIZATIONNAME</key>
|
||||
<string>280 North, Inc.</string>
|
||||
</dict>
|
||||
<key>buildConfigurationList</key>
|
||||
<string>9EEC448D135749D200615446</string>
|
||||
<key>compatibilityVersion</key>
|
||||
<string>Xcode 3.2</string>
|
||||
<key>developmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>hasScannedForEncodings</key>
|
||||
<string>0</string>
|
||||
<key>isa</key>
|
||||
<string>PBXProject</string>
|
||||
<key>knownRegions</key>
|
||||
<array>
|
||||
<string>en</string>
|
||||
</array>
|
||||
<key>mainGroup</key>
|
||||
<string>9EEC4488135749D200615446</string>
|
||||
<key>productRefGroup</key>
|
||||
<string>9EEC4494135749D200615446</string>
|
||||
<key>projectDirPath</key>
|
||||
<string></string>
|
||||
<key>projectRoot</key>
|
||||
<string></string>
|
||||
<key>targets</key>
|
||||
<array>
|
||||
<string>9EEC4492135749D200615446</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>9EEC448D135749D200615446</key>
|
||||
<dict>
|
||||
<key>buildConfigurations</key>
|
||||
<array>
|
||||
<string>9EEC44C3135749D300615446</string>
|
||||
<string>9EEC44C4135749D300615446</string>
|
||||
</array>
|
||||
<key>defaultConfigurationIsVisible</key>
|
||||
<string>0</string>
|
||||
<key>defaultConfigurationName</key>
|
||||
<string>Release</string>
|
||||
<key>isa</key>
|
||||
<string>XCConfigurationList</string>
|
||||
</dict>
|
||||
<key>9EEC448F135749D200615446</key>
|
||||
<dict>
|
||||
<key>buildActionMask</key>
|
||||
<string>2147483647</string>
|
||||
<key>files</key>
|
||||
<array>
|
||||
<string>32F240828F06C24BACC9C62B</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXSourcesBuildPhase</string>
|
||||
<key>runOnlyForDeploymentPostprocessing</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>9EEC4490135749D200615446</key>
|
||||
<dict>
|
||||
<key>buildActionMask</key>
|
||||
<string>2147483647</string>
|
||||
<key>files</key>
|
||||
<array>
|
||||
<string>9EEC4498135749D200615446</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXFrameworksBuildPhase</string>
|
||||
<key>runOnlyForDeploymentPostprocessing</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>9EEC4491135749D200615446</key>
|
||||
<dict>
|
||||
<key>buildActionMask</key>
|
||||
<string>2147483647</string>
|
||||
<key>files</key>
|
||||
<array>
|
||||
<string>9EEC44CC13574A0B00615446</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXResourcesBuildPhase</string>
|
||||
<key>runOnlyForDeploymentPostprocessing</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>9EEC4492135749D200615446</key>
|
||||
<dict>
|
||||
<key>buildConfigurationList</key>
|
||||
<string>9EEC44C5135749D300615446</string>
|
||||
<key>buildPhases</key>
|
||||
<array>
|
||||
<string>9EEC448F135749D200615446</string>
|
||||
<string>9EEC4490135749D200615446</string>
|
||||
<string>9EEC4491135749D200615446</string>
|
||||
</array>
|
||||
<key>buildRules</key>
|
||||
<array/>
|
||||
<key>dependencies</key>
|
||||
<array/>
|
||||
<key>isa</key>
|
||||
<string>PBXNativeTarget</string>
|
||||
<key>name</key>
|
||||
<string>Another</string>
|
||||
<key>productName</key>
|
||||
<string>Another</string>
|
||||
<key>productReference</key>
|
||||
<string>9EEC4493135749D200615446</string>
|
||||
<key>productType</key>
|
||||
<string>com.apple.product-type.application</string>
|
||||
</dict>
|
||||
<key>9EEC4493135749D200615446</key>
|
||||
<dict>
|
||||
<key>explicitFileType</key>
|
||||
<string>wrapper.application</string>
|
||||
<key>includeInIndex</key>
|
||||
<string>0</string>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>path</key>
|
||||
<string>Another.app</string>
|
||||
<key>sourceTree</key>
|
||||
<string>BUILT_PRODUCTS_DIR</string>
|
||||
</dict>
|
||||
<key>9EEC4494135749D200615446</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>9EEC4493135749D200615446</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>name</key>
|
||||
<string>Products</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>9EEC4496135749D200615446</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>9EEC4497135749D200615446</string>
|
||||
<string>9EEC4499135749D300615446</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>name</key>
|
||||
<string>Frameworks</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>9EEC4497135749D200615446</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>wrapper.framework</string>
|
||||
<key>name</key>
|
||||
<string>Cocoa.framework</string>
|
||||
<key>path</key>
|
||||
<string>System/Library/Frameworks/Cocoa.framework</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SDKROOT</string>
|
||||
</dict>
|
||||
<key>9EEC4498135749D200615446</key>
|
||||
<dict>
|
||||
<key>fileRef</key>
|
||||
<string>9EEC4497135749D200615446</string>
|
||||
<key>isa</key>
|
||||
<string>PBXBuildFile</string>
|
||||
</dict>
|
||||
<key>9EEC4499135749D300615446</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>9EEC449A135749D300615446</string>
|
||||
<string>9EEC449B135749D300615446</string>
|
||||
<string>9EEC449C135749D300615446</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>name</key>
|
||||
<string>Other Frameworks</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>9EEC449A135749D300615446</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>wrapper.framework</string>
|
||||
<key>name</key>
|
||||
<string>AppKit.framework</string>
|
||||
<key>path</key>
|
||||
<string>System/Library/Frameworks/AppKit.framework</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SDKROOT</string>
|
||||
</dict>
|
||||
<key>9EEC449B135749D300615446</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>wrapper.framework</string>
|
||||
<key>name</key>
|
||||
<string>CoreData.framework</string>
|
||||
<key>path</key>
|
||||
<string>System/Library/Frameworks/CoreData.framework</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SDKROOT</string>
|
||||
</dict>
|
||||
<key>9EEC449C135749D300615446</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>wrapper.framework</string>
|
||||
<key>name</key>
|
||||
<string>Foundation.framework</string>
|
||||
<key>path</key>
|
||||
<string>System/Library/Frameworks/Foundation.framework</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SDKROOT</string>
|
||||
</dict>
|
||||
<key>9EEC44C3135749D300615446</key>
|
||||
<dict>
|
||||
<key>buildSettings</key>
|
||||
<dict>
|
||||
<key>ARCHS</key>
|
||||
<string>$(ARCHS_STANDARD_32_64_BIT)</string>
|
||||
<key>GCC_C_LANGUAGE_STANDARD</key>
|
||||
<string>gnu99</string>
|
||||
<key>GCC_OPTIMIZATION_LEVEL</key>
|
||||
<string>0</string>
|
||||
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
||||
<string>DEBUG</string>
|
||||
<key>GCC_SYMBOLS_PRIVATE_EXTERN</key>
|
||||
<string>NO</string>
|
||||
<key>GCC_VERSION</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>GCC_WARN_64_TO_32_BIT_CONVERSION</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_WARN_ABOUT_RETURN_TYPE</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_WARN_UNUSED_VARIABLE</key>
|
||||
<string>YES</string>
|
||||
<key>MACOSX_DEPLOYMENT_TARGET</key>
|
||||
<string>10.6</string>
|
||||
<key>ONLY_ACTIVE_ARCH</key>
|
||||
<string>YES</string>
|
||||
<key>SDKROOT</key>
|
||||
<string>macosx</string>
|
||||
</dict>
|
||||
<key>isa</key>
|
||||
<string>XCBuildConfiguration</string>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</dict>
|
||||
<key>9EEC44C4135749D300615446</key>
|
||||
<dict>
|
||||
<key>buildSettings</key>
|
||||
<dict>
|
||||
<key>ARCHS</key>
|
||||
<string>$(ARCHS_STANDARD_32_64_BIT)</string>
|
||||
<key>GCC_C_LANGUAGE_STANDARD</key>
|
||||
<string>gnu99</string>
|
||||
<key>GCC_VERSION</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>GCC_WARN_64_TO_32_BIT_CONVERSION</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_WARN_ABOUT_RETURN_TYPE</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_WARN_UNUSED_VARIABLE</key>
|
||||
<string>YES</string>
|
||||
<key>MACOSX_DEPLOYMENT_TARGET</key>
|
||||
<string>10.6</string>
|
||||
<key>SDKROOT</key>
|
||||
<string>macosx</string>
|
||||
</dict>
|
||||
<key>isa</key>
|
||||
<string>XCBuildConfiguration</string>
|
||||
<key>name</key>
|
||||
<string>Release</string>
|
||||
</dict>
|
||||
<key>9EEC44C5135749D300615446</key>
|
||||
<dict>
|
||||
<key>buildConfigurations</key>
|
||||
<array>
|
||||
<string>9EEC44C6135749D300615446</string>
|
||||
<string>9EEC44C7135749D300615446</string>
|
||||
</array>
|
||||
<key>defaultConfigurationIsVisible</key>
|
||||
<string>0</string>
|
||||
<key>defaultConfigurationName</key>
|
||||
<string>Release</string>
|
||||
<key>isa</key>
|
||||
<string>XCConfigurationList</string>
|
||||
</dict>
|
||||
<key>9EEC44C6135749D300615446</key>
|
||||
<dict>
|
||||
<key>buildSettings</key>
|
||||
<dict>
|
||||
<key>ALWAYS_SEARCH_USER_PATHS</key>
|
||||
<string>NO</string>
|
||||
<key>COMBINE_HIDPI_IMAGES</key>
|
||||
<string>YES</string>
|
||||
<key>COPY_PHASE_STRIP</key>
|
||||
<string>NO</string>
|
||||
<key>GCC_DYNAMIC_NO_PIC</key>
|
||||
<string>NO</string>
|
||||
<key>GCC_ENABLE_OBJC_EXCEPTIONS</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_PREFIX_HEADER</key>
|
||||
<string>Another/Another-Prefix.pch</string>
|
||||
<key>INFOPLIST_FILE</key>
|
||||
<string>Another/Another-Info.plist</string>
|
||||
<key>PRODUCT_NAME</key>
|
||||
<string>$(TARGET_NAME)</string>
|
||||
<key>WRAPPER_EXTENSION</key>
|
||||
<string>app</string>
|
||||
</dict>
|
||||
<key>isa</key>
|
||||
<string>XCBuildConfiguration</string>
|
||||
<key>name</key>
|
||||
<string>Debug</string>
|
||||
</dict>
|
||||
<key>9EEC44C7135749D300615446</key>
|
||||
<dict>
|
||||
<key>buildSettings</key>
|
||||
<dict>
|
||||
<key>ALWAYS_SEARCH_USER_PATHS</key>
|
||||
<string>NO</string>
|
||||
<key>COMBINE_HIDPI_IMAGES</key>
|
||||
<string>YES</string>
|
||||
<key>COPY_PHASE_STRIP</key>
|
||||
<string>YES</string>
|
||||
<key>DEBUG_INFORMATION_FORMAT</key>
|
||||
<string>dwarf-with-dsym</string>
|
||||
<key>GCC_ENABLE_OBJC_EXCEPTIONS</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_PRECOMPILE_PREFIX_HEADER</key>
|
||||
<string>YES</string>
|
||||
<key>GCC_PREFIX_HEADER</key>
|
||||
<string>Another/Another-Prefix.pch</string>
|
||||
<key>INFOPLIST_FILE</key>
|
||||
<string>Another/Another-Info.plist</string>
|
||||
<key>PRODUCT_NAME</key>
|
||||
<string>$(TARGET_NAME)</string>
|
||||
<key>WRAPPER_EXTENSION</key>
|
||||
<string>app</string>
|
||||
</dict>
|
||||
<key>isa</key>
|
||||
<string>XCBuildConfiguration</string>
|
||||
<key>name</key>
|
||||
<string>Release</string>
|
||||
</dict>
|
||||
<key>9EEC44CB13574A0B00615446</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>folder</string>
|
||||
<key>name</key>
|
||||
<string>CappuccinoResources</string>
|
||||
<key>path</key>
|
||||
<string>Resources</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
<key>9EEC44CC13574A0B00615446</key>
|
||||
<dict>
|
||||
<key>fileRef</key>
|
||||
<string>9EEC44CB13574A0B00615446</string>
|
||||
<key>isa</key>
|
||||
<string>PBXBuildFile</string>
|
||||
</dict>
|
||||
<key>B7B84A02A45ECE89FFB2D63E</key>
|
||||
<dict>
|
||||
<key>isa</key>
|
||||
<string>PBXFileReference</string>
|
||||
<key>lastKnownFileType</key>
|
||||
<string>sourcecode.c.objc</string>
|
||||
<key>name</key>
|
||||
<string>_Users_Tonio_Desktop_CPSegmentedControlTest_AppController.m</string>
|
||||
<key>path</key>
|
||||
<string>.XcodeSupport/_Users_Tonio_Desktop_CPSegmentedControlTest_AppController.m</string>
|
||||
<key>sourceTree</key>
|
||||
<string>SOURCE_ROOT</string>
|
||||
</dict>
|
||||
<key>FC904786B1947C20F37E2DA1</key>
|
||||
<dict>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<string>078D4BE08F1637A95D02423E</string>
|
||||
<string>574D4419AEFA1A577855B344</string>
|
||||
<string>B7B84A02A45ECE89FFB2D63E</string>
|
||||
</array>
|
||||
<key>isa</key>
|
||||
<string>PBXGroup</string>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>sourceTree</key>
|
||||
<string><group></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rootObject</key>
|
||||
<string>9EEC448A135749D200615446</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:CPSegmentedControlTest.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Main cib file base name</key>
|
||||
<string>MainMenu.cib</string>
|
||||
<key>CPBundleName</key>
|
||||
<string>CPSegmentedControlTest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Jakefile
|
||||
* CPSegmentedControlTest
|
||||
*
|
||||
* Created by You on January 4, 2013.
|
||||
* Copyright 2013, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
var ENV = require("system").env,
|
||||
FILE = require("file"),
|
||||
JAKE = require("jake"),
|
||||
task = JAKE.task,
|
||||
FileList = JAKE.FileList,
|
||||
app = require("cappuccino/jake").app,
|
||||
configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug",
|
||||
OS = require("os");
|
||||
|
||||
app ("CPSegmentedControlTest", function(task)
|
||||
{
|
||||
task.setBuildIntermediatesPath(FILE.join("Build", "CPSegmentedControlTest.build", configuration));
|
||||
task.setBuildPath(FILE.join("Build", configuration));
|
||||
|
||||
task.setProductName("CPSegmentedControlTest");
|
||||
task.setIdentifier("com.yourcompany.CPSegmentedControlTest");
|
||||
task.setVersion("1.0");
|
||||
task.setAuthor("Your Company");
|
||||
task.setEmail("feedback @nospam@ yourcompany.com");
|
||||
task.setSummary("CPSegmentedControlTest");
|
||||
task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**")));
|
||||
task.setResources(new FileList("Resources/**"));
|
||||
task.setIndexFilePath("index.html");
|
||||
task.setInfoPlistPath("Info.plist");
|
||||
task.setNib2CibFlags("-R Resources/");
|
||||
|
||||
if (configuration === "Debug")
|
||||
task.setCompilerFlags("-DDEBUG -g");
|
||||
else
|
||||
task.setCompilerFlags("-O");
|
||||
});
|
||||
|
||||
task ("default", ["CPSegmentedControlTest"], function()
|
||||
{
|
||||
printResults(configuration);
|
||||
});
|
||||
|
||||
task ("build", ["default"]);
|
||||
|
||||
task ("debug", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Debug";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("release", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Release";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("run", ["debug"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Debug", "CPSegmentedControlTest", "index.html")]);
|
||||
});
|
||||
|
||||
task ("run-release", ["release"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Release", "CPSegmentedControlTest", "index.html")]);
|
||||
});
|
||||
|
||||
task ("deploy", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Deployment", "CPSegmentedControlTest"));
|
||||
OS.system(["press", "-f", FILE.join("Build", "Release", "CPSegmentedControlTest"), FILE.join("Build", "Deployment", "CPSegmentedControlTest")]);
|
||||
printResults("Deployment")
|
||||
});
|
||||
|
||||
task ("desktop", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Desktop", "CPSegmentedControlTest"));
|
||||
require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPSegmentedControlTest"), FILE.join("Build", "Desktop", "CPSegmentedControlTest", "CPSegmentedControlTest.app"));
|
||||
printResults("Desktop")
|
||||
});
|
||||
|
||||
task ("run-desktop", ["desktop"], function()
|
||||
{
|
||||
OS.system([FILE.join("Build", "Desktop", "CPSegmentedControlTest", "CPSegmentedControlTest.app", "Contents", "MacOS", "NativeHost"), "-i"]);
|
||||
});
|
||||
|
||||
function printResults(configuration)
|
||||
{
|
||||
print("----------------------------");
|
||||
print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPSegmentedControlTest"));
|
||||
print("----------------------------");
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index-debug.html
|
||||
CPSegmentedControlTest
|
||||
|
||||
Created by You on January 4, 2013.
|
||||
Copyright 2013, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPSegmentedControlTest</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
OBJJ_INCLUDE_PATHS = ["Frameworks/Debug", "Frameworks", "SomethingElse"];
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="Frameworks/Debug/Objective-J/Objective-J.js" charset="UTF-8"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
objj_msgSend_reset();
|
||||
|
||||
// DEBUG OPTIONS:
|
||||
|
||||
// Uncomment to enable printing of backtraces on exceptions:
|
||||
//objj_msgSend_decorate(objj_backtrace_decorator);
|
||||
|
||||
// Uncomment to supress exceptions that take place inside a message
|
||||
//objj_msgSend_decorate(objj_supress_exceptions_decorator)
|
||||
|
||||
// Uncomment to enable runtime type checking:
|
||||
//objj_msgSend_decorate(objj_typecheck_decorator);
|
||||
|
||||
// Uncomment (along with both above) to print backtraces on type check errors:
|
||||
//objj_typecheck_prints_backtrace = true;
|
||||
|
||||
// Uncomment to disable the default logger (CPLogConsole if window.console exists, CPLogPopup otherwise):
|
||||
//CPLogUnregister(CPLogDefault);
|
||||
|
||||
// Uncomment to enable a specific logger:
|
||||
//CPLogRegister(CPLogConsole);
|
||||
//CPLogRegister(CPLogPopup);
|
||||
|
||||
// Tag view DOM elements with a "data-cappuccino-view" attribute that contains
|
||||
// the class name of the view that created them. Comment this or set to false to disable.
|
||||
appkit_tag_dom_elements = true;
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPSegmentedControlTest...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index.html
|
||||
CPSegmentedControlTest
|
||||
|
||||
Created by You on January 4, 2013.
|
||||
Copyright 2013, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPSegmentedControlTest</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="Frameworks/Objective-J/Objective-J.js" charset="UTF-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPSegmentedControlTest...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPSegmentedControlTest
|
||||
*
|
||||
* Created by You on January 4, 2013.
|
||||
* Copyright 2013, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/Foundation.j>
|
||||
@import <AppKit/AppKit.j>
|
||||
|
||||
@import "AppController.j"
|
||||
|
||||
|
||||
function main(args, namedArgs)
|
||||
{
|
||||
CPApplicationMain(args, namedArgs);
|
||||
}
|
||||
+18
-5
@@ -33,13 +33,26 @@
|
||||
_boxType = [aCoder decodeIntForKey:@"NSBoxType"];
|
||||
_borderType = [aCoder decodeIntForKey:@"NSBorderType"];
|
||||
|
||||
_borderColor = [aCoder decodeObjectForKey:@"NSBorderColor2"] || [CPColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.42];
|
||||
_fillColor = [aCoder decodeObjectForKey:@"NSFillColor2"] || [CPColor clearColor];
|
||||
var borderColor = [aCoder decodeObjectForKey:@"NSBorderColor2"],
|
||||
fillColor = [aCoder decodeObjectForKey:@"NSFillColor2"],
|
||||
cornerRadius = [aCoder decodeFloatForKey:@"NSCornerRadius2"],
|
||||
borderWidth = [aCoder decodeFloatForKey:@"NSBorderWidth2"],
|
||||
contentMargin = [aCoder decodeSizeForKey:@"NSOffsets"];
|
||||
|
||||
_cornerRadius = [aCoder decodeFloatForKey:@"NSCornerRadius2"];
|
||||
_borderWidth = [aCoder decodeFloatForKey:@"NSBorderWidth2"] || 1.0;
|
||||
if (borderColor)
|
||||
[self setBorderColor:borderColor];
|
||||
|
||||
_contentMargin = [aCoder decodeSizeForKey:@"NSOffsets"];
|
||||
if (fillColor)
|
||||
[self setFillColor:fillColor];
|
||||
|
||||
if (cornerRadius)
|
||||
[self setCornerRadius:cornerRadius];
|
||||
|
||||
if (borderWidth)
|
||||
[self setBorderWidth:borderWidth];
|
||||
|
||||
if (contentMargin)
|
||||
[self setContentViewMargins:contentMargin];
|
||||
|
||||
_title = [[aCoder decodeObjectForKey:@"NSTitleCell"] objectValue] || @"";
|
||||
_titlePosition = [aCoder decodeObjectForKey:@"NSTitlePosition"];
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
|
||||
// Adjust for differences between Cocoa and Cappuccino widget framing.
|
||||
frame.origin.x += 4;
|
||||
frame.size.height += 1;
|
||||
frame.size.width = originalWidth;
|
||||
[self setFrame:frame];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user