diff --git a/AppKit/CPStepper.j b/AppKit/CPStepper.j index 07458a452..6ad75afe1 100644 --- a/AppKit/CPStepper.j +++ b/AppKit/CPStepper.j @@ -34,6 +34,7 @@ @implementation CPStepper: CPControl { BOOL _valueWraps @accessors(property=valueWraps); + BOOL _autorepeat @accessors(getter=autorepeat); int _increment @accessors(property=increment); int _maxValue @accessors(property=maxValue); int _minValue @accessors(property=minValue); @@ -88,29 +89,38 @@ _minValue = 0.0; _increment = 1.0; _valueWraps = YES; + _autorepeat = YES; [self setDoubleValue:0.0]; - - _buttonUp = [[CPButton alloc] initWithFrame:_CGRectMakeZero()]; - [_buttonUp setContinuous:YES]; - [_buttonUp setTarget:self]; - [_buttonUp setAction:@selector(_buttonDidClick:)]; - [_buttonUp setAutoresizingMask:CPViewNotSizable]; - [self addSubview:_buttonUp]; - - _buttonDown = [[CPButton alloc] initWithFrame:_CGRectMakeZero()]; - [_buttonDown setContinuous:YES]; - [_buttonDown setTarget:self]; - [_buttonDown setAction:@selector(_buttonDidClick:)]; - [_buttonDown setAutoresizingMask:CPViewNotSizable]; - [self addSubview:_buttonDown]; - - [self setNeedsLayout]; + [self _init]; } return self; } +/*! @ignore */ + +- (void)_init +{ + _buttonUp = [[CPButton alloc] initWithFrame:_CGRectMakeZero()]; + [_buttonUp setContinuous:_autorepeat]; + [_buttonUp setTarget:self]; + [_buttonUp setAction:@selector(_buttonDidClick:)]; + [_buttonUp setAutoresizingMask:CPViewNotSizable]; + [self addSubview:_buttonUp]; + + _buttonDown = [[CPButton alloc] initWithFrame:_CGRectMakeZero()]; + [_buttonDown setContinuous:_autorepeat]; + [_buttonDown setTarget:self]; + [_buttonDown setAction:@selector(_buttonDidClick:)]; + [_buttonDown setAutoresizingMask:CPViewNotSizable]; + + [self setContinuous:_autorepeat]; + [self addSubview:_buttonDown]; + + [self setNeedsLayout]; +} + #pragma mark - #pragma mark Superclass overrides @@ -164,8 +174,13 @@ */ - (void)setAutorepeat:(BOOL)shouldAutoRepeat { - [_buttonUp setContinuous:shouldAutoRepeat]; - [_buttonDown setContinuous:shouldAutoRepeat]; + if (shouldAutoRepeat !== _autorepeat) + { + [_buttonUp setContinuous:shouldAutoRepeat]; + [_buttonDown setContinuous:shouldAutoRepeat]; + } + + [self setContinuous:shouldAutoRepeat]; } /*! @@ -235,19 +250,27 @@ @end +var CPStepperMinValue = @"CPStepperMinValue", + CPStepperMaxValue = @"CPStepperMaxValue", + CPStepperValueWraps = @"CPStepperValueWraps", + CPStepperAutorepeat = @"CPStepperAutorepeat", + CPStepperIncrement = @"CPStepperIncrement"; -@implementation CPStepper (CPCodingCompliance) +@implementation CPStepper (CPCoding) - (id)initWithCoder:(CPCoder)aCoder { if (self = [super initWithCoder:aCoder]) { - _maxValue = [aCoder decodeObjectForKey:@"_maxValue"]; - _minValue = [aCoder decodeObjectForKey:@"_minValue"]; - _increment = [aCoder decodeObjectForKey:@"_increment"]; - _buttonUp = [aCoder decodeObjectForKey:@"_buttonUp"]; - _buttonDown = [aCoder decodeObjectForKey:@"_buttonDown"]; + _increment = [aCoder decodeIntForKey:CPStepperIncrement]; + _minValue = [aCoder decodeIntForKey:CPStepperMinValue] || 0; + _maxValue = [aCoder decodeIntForKey:CPStepperMaxValue] || 0; + _valueWraps = [aCoder decodeBoolForKey:CPStepperValueWraps] || NO; + _autorepeat = [aCoder decodeBoolForKey:CPStepperAutorepeat] || NO; + + [self _init]; } + return self; } @@ -255,11 +278,16 @@ { [super encodeWithCoder:aCoder]; - [aCoder encodeObject:_maxValue forKey:@"_maxValue"]; - [aCoder encodeObject:_minValue forKey:@"_minValue"]; - [aCoder encodeObject:_increment forKey:@"_increment"]; - [aCoder encodeObject:_buttonUp forKey:@"_buttonUp"]; - [aCoder encodeObject:_buttonDown forKey:@"_buttonDown"]; + [aCoder encodeInt:_increment forKey:CPStepperIncrement]; + + if (_minValue) + [aCoder encodeInt:_minValue forKey:CPStepperMinValue]; + if (_maxValue) + [aCoder encodeInt:_maxValue forKey:CPStepperMaxValue]; + if (_valueWraps) + [aCoder encodeBool:_valueWraps forKey:CPStepperValueWraps]; + if (_autorepeat) + [aCoder encodeBool:_autorepeat forKey:CPStepperAutorepeat]; } @end diff --git a/Tests/Manual/CPStepperNibTest/AppController.j b/Tests/Manual/CPStepperNibTest/AppController.j new file mode 100644 index 000000000..c16e96bda --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/AppController.j @@ -0,0 +1,67 @@ +/* + * AppController.j + * CPStepperNibTest + * + * Created by cacaodev on February 7, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import + + +@implementation AppController : CPObject +{ + CPWindow theWindow; //this "outlet" is connected automatically by the Cib + @outlet CPStepper stepper; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + var contentView = [theWindow contentView]; + + [[contentView viewWithTag:1000] setIntValue:[stepper increment]]; + [[contentView viewWithTag:1001] setIntValue:[stepper minValue]]; + [[contentView viewWithTag:1002] setIntValue:[stepper maxValue]]; + [[contentView viewWithTag:1003] setState:[stepper valueWraps] ? CPOnState : CPOffState]; + [[contentView viewWithTag:1005] setState:[stepper autorepeat] ? CPOnState : CPOffState]; + [[contentView viewWithTag:1004] setIntValue:[stepper objectValue]]; + + [theWindow setFullPlatformWindow:YES]; +} + +- (IBAction)setWraps:(id)sender +{ + [stepper setValueWraps:[sender state]]; +} + +- (IBAction)setMin:(id)sender +{ + [stepper setMinValue:[sender intValue]]; +} + +- (IBAction)setMax:(id)sender +{ + [stepper setMaxValue:[sender intValue]]; +} + +- (IBAction)setIncrement:(id)sender +{ + [stepper setIncrement:[sender intValue]]; +} + +- (IBAction)setAutorepeat:(id)sender +{ + [stepper setAutorepeat:[sender state]]; +} + +@end diff --git a/Tests/Manual/CPStepperNibTest/Info.plist b/Tests/Manual/CPStepperNibTest/Info.plist new file mode 100644 index 000000000..7f3f6a9ac --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + CPStepperNibTest + + diff --git a/Tests/Manual/CPStepperNibTest/Jakefile b/Tests/Manual/CPStepperNibTest/Jakefile new file mode 100644 index 000000000..bddff968d --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * CPStepperNibTest + * + * Created by You on February 7, 2012. + * Copyright 2012, 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 ("CPStepperNibTest", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "CPStepperNibTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPStepperNibTest"); + task.setIdentifier("com.yourcompany.CPStepperNibTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPStepperNibTest"); + 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", ["CPStepperNibTest"], 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", "CPStepperNibTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "CPStepperNibTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "CPStepperNibTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "CPStepperNibTest"), FILE.join("Build", "Deployment", "CPStepperNibTest")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "CPStepperNibTest")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPStepperNibTest"), FILE.join("Build", "Desktop", "CPStepperNibTest", "CPStepperNibTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "CPStepperNibTest", "CPStepperNibTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPStepperNibTest")); + print("----------------------------"); +} diff --git a/Tests/Manual/CPStepperNibTest/Resources/MainMenu.cib b/Tests/Manual/CPStepperNibTest/Resources/MainMenu.cib new file mode 100644 index 000000000..ccc5331cc --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/Resources/MainMenu.cib @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;11E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;44E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;45E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;31E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;48E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;31E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;33E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;34E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;50E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;36E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;38E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;44E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;55E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;56E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;57E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;58E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;59E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;29E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;60E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;61E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;61E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;63E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;E;D;K;10;$classnameS;9;CPStepperK;8;$classesA;S;9;CPStepperS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;60E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;47E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;60E;K;11;$aalignmentD;K;6;CP$UIDd;2;60E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;68E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;69E;K;18;CPStepperIncrementD;K;6;CP$UIDd;2;70E;K;17;CPStepperMinValueD;K;6;CP$UIDd;2;71E;K;17;CPStepperMaxValueD;K;6;CP$UIDd;2;72E;K;19;CPStepperValueWrapsD;K;6;CP$UIDd;2;73E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;74E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;75E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;76E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;78E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;73E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;84E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;85E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;86E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;76E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;78E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;73E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;84E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;60E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;88E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;89E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;71E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;90E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;91E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;71E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;93E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;76E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;78E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;73E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;84E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;60E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;94E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;95E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;71E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;96E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;91E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;71E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;97E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;76E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;78E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;73E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;73E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;84E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;60E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;99E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;100E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;70E;K;11;$aalignmentD;K;6;CP$UIDd;2;71E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;73E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;82E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;91E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;91E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;70E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;71E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;102E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;103E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;104E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;105E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;2;68E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;60E;K;11;$aalignmentD;K;6;CP$UIDd;2;60E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;71E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;69E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;107E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;91E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;68E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;60E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;105E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;2;68E;K;6;$afontD;K;6;CP$UIDd;2;80E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;60E;K;11;$aalignmentD;K;6;CP$UIDd;2;60E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;71E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;69E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;111E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;91E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;68E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;60E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;112E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;E;E;S;8;delegateS;7;stepperS;9;theWindowS;20;takeDoubleValueFrom:S;13;setIncrement:S;7;setMin:S;7;setMax:S;9;setWraps:S;14;setAutorepeat:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{630, 338}, {480, 360}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {480, 360}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;E;E;d;2;12S;6;normalS;22;{{283, 167}, {19, 27}}S;18;{{0, 0}, {19, 27}}d;2;45d;1;3d;1;4d;1;2d;1;1d;3;100T;d;4;1004S;23;{{176, 165}, {104, 29}}S;19;{{0, 0}, {104, 29}}S;9;textfieldS;19;bezeled+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;113E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;63E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;91E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;91E;E;S;0;d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;114E;E;d;4;1000S;22;{{358, 16}, {104, 29}}d;2;33S;21;{{282, 22}, {72, 17}}S;18;{{0, 0}, {72, 17}}S;10;Increment:F;d;4;1001S;22;{{358, 46}, {104, 29}}S;21;{{284, 52}, {70, 17}}S;18;{{0, 0}, {70, 17}}S;10;Min Value:d;4;1002S;22;{{358, 73}, {104, 29}}S;21;{{280, 79}, {74, 17}}S;18;{{0, 0}, {74, 17}}S;10;Max Value:d;4;1003S;23;{{272, 105}, {109, 18}}S;19;{{0, 0}, {109, 18}}S;9;check-boxS;8;selectedS;12;wraps value:d;4;1005S;23;{{281, 129}, {100, 18}}S;19;{{0, 0}, {100, 18}}S;11;autorepeat:S;13;AppControllerS;17;Arial, sans-serifD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPStepperNibTest/Resources/MainMenu.xib b/Tests/Manual/CPStepperNibTest/Resources/MainMenu.xib new file mode 100644 index 000000000..097e40637 --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/Resources/MainMenu.xib @@ -0,0 +1,785 @@ + + + + 1050 + 11D50 + 2166 + 1138.32 + 568.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2166 + + + YES + NSTextField + NSView + NSWindowTemplate + NSCustomObject + NSTextFieldCell + NSButtonCell + NSStepperCell + NSButton + NSStepper + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{630, 330}, {480, 360}} + 1946157056 + Window + NSWindow + + + + + 268 + + YES + + + 301 + {{283, 166}, {19, 27}} + + + + _NS:1083 + YES + + 130560 + 0 + _NS:1083 + + 3 + 1 + 100 + 2 + YES + + + + + 301 + {{182, 169}, {96, 22}} + + + + _NS:9 + 1004 + YES + + -1804468671 + 272630784 + + + LucidaGrande + 13 + 1044 + + _NS:9 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 265 + {{364, 318}, {96, 22}} + + + + _NS:9 + 1000 + YES + + -1804468671 + 272630784 + + + _NS:9 + + YES + + + + + + + 265 + {{282, 321}, {72, 17}} + + + + _NS:1505 + YES + + 68288064 + 71304192 + Increment: + + _NS:1505 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + + + + 265 + {{364, 288}, {96, 22}} + + + + _NS:9 + 1001 + YES + + -1804468671 + 272630784 + + + _NS:9 + + YES + + + + + + + 265 + {{284, 291}, {70, 17}} + + + + _NS:1505 + YES + + 68288064 + 71304192 + Min Value: + + _NS:1505 + + + + + + + + 265 + {{364, 261}, {96, 22}} + + + + _NS:9 + 1002 + YES + + -1804468671 + 272630784 + + + _NS:9 + + YES + + + + + + + 265 + {{280, 264}, {74, 17}} + + + + _NS:1505 + YES + + 68288064 + 71304192 + Max Value: + + _NS:1505 + + + + + + + + 265 + {{272, 237}, {109, 18}} + + + + _NS:9 + 1003 + YES + + -2080244224 + 0 + wraps value: + + _NS:9 + + 1210864127 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 265 + {{281, 213}, {100, 18}} + + + + _NS:9 + 1005 + YES + + -2080244224 + 0 + autorepeat: + + _NS:9 + + 1210864127 + 2 + + + + + 200 + 25 + + + + {480, 360} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + YES + + + AppController + + + + + YES + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + stepper + + + + 462 + + + + setWraps: + + + + 482 + + + + setMax: + + + + 483 + + + + setMin: + + + + 484 + + + + setIncrement: + + + + 485 + + + + setAutorepeat: + + + + 491 + + + + takeDoubleValueFrom: + + + + 465 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + + + + + + 450 + + + + + 460 + + + YES + + + + + + 461 + + + + + 463 + + + YES + + + + + + 464 + + + + + 466 + + + YES + + + + + + 467 + + + + + 468 + + + YES + + + + + + 469 + + + + + 470 + + + YES + + + + + + 471 + + + YES + + + + + + 472 + + + + + 473 + + + + + 474 + + + YES + + + + + + 475 + + + YES + + + + + + 476 + + + + + 477 + + + + + 480 + + + YES + + + + + + 481 + + + + + 486 + + + YES + + + + + + 487 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 372.IBPluginDependency + 450.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 463.IBPluginDependency + 464.IBPluginDependency + 466.IBPluginDependency + 467.IBPluginDependency + 468.IBPluginDependency + 469.IBPluginDependency + 470.IBPluginDependency + 471.IBPluginDependency + 472.IBPluginDependency + 473.IBPluginDependency + 474.IBPluginDependency + 475.IBPluginDependency + 476.IBPluginDependency + 477.IBPluginDependency + 480.IBPluginDependency + 481.IBPluginDependency + 486.IBPluginDependency + 487.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 491 + + + + YES + + AppController + NSObject + + YES + + YES + setAutorepeat: + setIncrement: + setMax: + setMin: + setWraps: + + + YES + id + id + id + id + id + + + + YES + + YES + setAutorepeat: + setIncrement: + setMax: + setMin: + setWraps: + + + YES + + setAutorepeat: + id + + + setIncrement: + id + + + setMax: + id + + + setMin: + id + + + setWraps: + id + + + + + stepper + NSStepper + + + stepper + + stepper + NSStepper + + + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/Tests/Manual/CPStepperNibTest/Resources/spinner.gif b/Tests/Manual/CPStepperNibTest/Resources/spinner.gif new file mode 100644 index 000000000..06dbc2bc2 Binary files /dev/null and b/Tests/Manual/CPStepperNibTest/Resources/spinner.gif differ diff --git a/Tests/Manual/CPStepperNibTest/index-debug.html b/Tests/Manual/CPStepperNibTest/index-debug.html new file mode 100644 index 000000000..4054fd224 --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/index-debug.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + CPStepperNibTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPStepperNibTest/index.html b/Tests/Manual/CPStepperNibTest/index.html new file mode 100644 index 000000000..73a39bce6 --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + CPStepperNibTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPStepperNibTest/main.j b/Tests/Manual/CPStepperNibTest/main.j new file mode 100644 index 000000000..561361ae0 --- /dev/null +++ b/Tests/Manual/CPStepperNibTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPStepperNibTest + * + * Created by You on February 7, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tools/nib2cib/NSAppKit.j b/Tools/nib2cib/NSAppKit.j index fdb45775b..9b1f7d006 100644 --- a/Tools/nib2cib/NSAppKit.j +++ b/Tools/nib2cib/NSAppKit.j @@ -61,6 +61,7 @@ @import "NSSegmentedControl.j" @import "NSSlider.j" @import "NSSplitView.j" +@import "NSStepper.j" @import "NSTableColumn.j" @import "NSTableHeaderView.j" @import "NSTableView.j" diff --git a/Tools/nib2cib/NSStepper.j b/Tools/nib2cib/NSStepper.j new file mode 100644 index 000000000..a17a52938 --- /dev/null +++ b/Tools/nib2cib/NSStepper.j @@ -0,0 +1,91 @@ +/* + * NSStepper.j + * nib2cib + * + * Created by cacaodev. + * Copyright 2012. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + +@implementation CPStepper (CPCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + self = [super NS_initWithCoder:aCoder]; + + if (self) + { + var cell = [aCoder decodeObjectForKey:@"NSCell"]; + + _minValue = [cell minValue]; + _maxValue = [cell maxValue]; + _increment = [cell increment]; + _valueWraps = [cell valueWraps]; + _autorepeat = [cell autorepeat]; + _objectValue = [cell objectValue]; + } + + return self; +} + +@end + +@implementation NSStepper : CPStepper +{ +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPStepper class]; +} + +@end + +@implementation NSStepperCell : NSCell +{ + double _minValue @accessors(readonly, getter=minValue); + double _maxValue @accessors(readonly, getter=maxValue); + double _increment @accessors(readonly, getter=increment); + BOOL _valueWraps @accessors(readonly, getter=valueWraps); + BOOL _autorepeat @accessors(readonly, getter=autorepeat); +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + self = [super initWithCoder:aCoder]; + + if (self) + { + _objectValue = [aCoder decodeDoubleForKey:@"NSValue"]; + + _minValue = [aCoder decodeDoubleForKey:@"NSMinValue"]; + _maxValue = [aCoder decodeDoubleForKey:@"NSMaxValue"]; + _increment = [aCoder decodeDoubleForKey:@"NSIncrement"]; + _valueWraps = [aCoder decodeBoolForKey:@"NSValueWraps"]; + _autorepeat = [aCoder decodeBoolForKey:@"NSAutorepeat"]; + } + + return self; +} + +@end