diff --git a/Tests/Manual/CPBrowserTest/AppController.j b/Tests/Manual/CPBrowserTest/AppController.j new file mode 100644 index 000000000..ec2d3aabd --- /dev/null +++ b/Tests/Manual/CPBrowserTest/AppController.j @@ -0,0 +1,132 @@ +/* + * AppController.j + * CPBrowserTest + * + * Created by Ross Boucher on March 23, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +@import +@import "CPBrowser.j" + +@implementation Node : CPObject +{ + id value; +} + ++ (id)withValue:(id)aValue +{ + var a = [[self alloc] init]; + a.value = aValue; + return a; +} + +- (id)value +{ + return value; +} + +- (CPArray)children +{ + return [[Node withValue:1], + [Node withValue:2], + [Node withValue:3], + [Node withValue:4]]; +} + +@end + +@implementation AppController : CPObject +{ +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask], + contentView = [theWindow contentView]; + + var box = [[CPBox alloc] initWithFrame:CGRectMake(0,0,500,300)]; + browser = [[CPBrowser alloc] initWithFrame:CGRectMake(0,0,500,300)]; + + [browser setWidth:300 ofColumn:1]; + [box setContentView:browser]; + [box setBorderType:CPBezelBorder]; + + [box setCenter:[contentView center]]; + [contentView addSubview:box]; + + [theWindow orderFront:self]; + + [browser setDelegate:self]; + + [browser setTarget:self]; + [browser setAction:@selector(browserClicked:)]; + [browser setDoubleAction:@selector(dblClicked:)]; + [browser registerForDraggedTypes:["Type"]]; + + //[browser setAllowsMultipleSelection:NO]; +} + +- (BOOL)browser:(CPBrowser)aBrowser writeRowsWithIndexes:(CPIndexSet)indexes inColumn:(int)column toPasteboard:(CPPasteboard)pboard +{ + var encodedData = [CPKeyedArchiver archivedDataWithRootObject:"Foo"]; + [pboard declareTypes:["Type"] owner:self]; + [pboard setData:encodedData forType:"Type"]; + return YES; +} + +- (BOOL)browser:(id)aBrowser validateDrop:(id)info proposedRow:(int)row column:(int)column dropOperation:(id)op +{ + return CPDragOperationMove; +} +- (BOOL)browser:(id)aBrowser acceptDrop:(id)info atRow:(int)row column:(int)column dropOperation:(id)op +{ + return YES; +} + +- (void)browserClicked:(id)sender +{ + console.log("selected column: "+[browser selectedColumn]+" row: "+[browser selectedRowInColumn:[browser selectedColumn]]); +} + +- (void)dblClicked:(id)sender +{ + alert("DOUBLE"); +} + +/*- (id)rootItemForBrowser:(id)aBrowser +{ + return [Node withValue:0]; +}*/ + +- (id)browser:(id)aBrowser numberOfChildrenOfItem:(id)anItem +{ + if (anItem === nil) + return 4; + return [[anItem children] count]; +} + +- (id)browser:(id)aBrowser child:(int)index ofItem:(id)anItem +{ + if (!anItem) + return [[[Node withValue:0] children] objectAtIndex:index]; + + return [[anItem children] objectAtIndex:index]; +} + +- (id)browser:(id)aBrowser imageValueForItem:(id)anItem +{ + return [[CPImage alloc] initWithContentsOfFile:"http://cappuccino.org/images/favicon.png" size:CGSizeMake(16, 16)]; +} + +- (id)browser:(id)aBrowser objectValueForItem:(id)anItem +{ + return [anItem value]; +} + +- (id)browser:(id)aBrowser isLeafItem:(id)anItem +{ + return ![[anItem children] count] || [anItem value] === 4; +} + +@end diff --git a/Tests/Manual/CPBrowserTest/CPBrowser.j b/Tests/Manual/CPBrowserTest/CPBrowser.j new file mode 120000 index 000000000..00538b439 --- /dev/null +++ b/Tests/Manual/CPBrowserTest/CPBrowser.j @@ -0,0 +1 @@ +../../../AppKit/CPBrowser.j \ No newline at end of file diff --git a/Tests/Manual/CPBrowserTest/Info.plist b/Tests/Manual/CPBrowserTest/Info.plist new file mode 100644 index 000000000..244eb9c81 --- /dev/null +++ b/Tests/Manual/CPBrowserTest/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + CPBrowserTest + CPPrincipalClass + CPApplication + + diff --git a/Tests/Manual/CPBrowserTest/Jakefile b/Tests/Manual/CPBrowserTest/Jakefile new file mode 100644 index 000000000..542de14fd --- /dev/null +++ b/Tests/Manual/CPBrowserTest/Jakefile @@ -0,0 +1,81 @@ +/* + * Jakefile + * CPBrowserTest + * + * Created by Ross Boucher on March 23, 2010. + * Copyright 2010, 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 ("CPBrowserTest", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "CPBrowserTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPBrowserTest"); + task.setIdentifier("com.yourcompany.CPBrowserTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPBrowserTest"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/*")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPBrowserTest")); + print("----------------------------"); +} + +task ("default", ["CPBrowserTest"], 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", "CPBrowserTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "CPBrowserTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "CPBrowserTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "CPBrowserTest"), FILE.join("Build", "Deployment", "CPBrowserTest")]); + printResults("Deployment") +}); diff --git a/Tests/Manual/CPBrowserTest/Resources/browser-leaf-highlighted.png b/Tests/Manual/CPBrowserTest/Resources/browser-leaf-highlighted.png new file mode 100644 index 000000000..c786c820b Binary files /dev/null and b/Tests/Manual/CPBrowserTest/Resources/browser-leaf-highlighted.png differ diff --git a/Tests/Manual/CPBrowserTest/Resources/browser-leaf.png b/Tests/Manual/CPBrowserTest/Resources/browser-leaf.png new file mode 100644 index 000000000..196afdcb6 Binary files /dev/null and b/Tests/Manual/CPBrowserTest/Resources/browser-leaf.png differ diff --git a/Tests/Manual/CPBrowserTest/Resources/browser-resize-control.png b/Tests/Manual/CPBrowserTest/Resources/browser-resize-control.png new file mode 100644 index 000000000..c335460de Binary files /dev/null and b/Tests/Manual/CPBrowserTest/Resources/browser-resize-control.png differ diff --git a/Tests/Manual/CPBrowserTest/Resources/spinner.gif b/Tests/Manual/CPBrowserTest/Resources/spinner.gif new file mode 100644 index 000000000..06dbc2bc2 Binary files /dev/null and b/Tests/Manual/CPBrowserTest/Resources/spinner.gif differ diff --git a/Tests/Manual/CPBrowserTest/index-debug.html b/Tests/Manual/CPBrowserTest/index-debug.html new file mode 100644 index 000000000..3b53a7cb4 --- /dev/null +++ b/Tests/Manual/CPBrowserTest/index-debug.html @@ -0,0 +1,86 @@ + + + + + + + + CPBrowserTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPBrowserTest/index.html b/Tests/Manual/CPBrowserTest/index.html new file mode 100644 index 000000000..2ef787c55 --- /dev/null +++ b/Tests/Manual/CPBrowserTest/index.html @@ -0,0 +1,71 @@ + + + + + + + + CPBrowserTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + + diff --git a/Tests/Manual/CPBrowserTest/main.j b/Tests/Manual/CPBrowserTest/main.j new file mode 100644 index 000000000..6da74c521 --- /dev/null +++ b/Tests/Manual/CPBrowserTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPBrowserTest + * + * Created by Ross Boucher on March 23, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}